Skip to content

Commit

Permalink
🖌️ Docs
Browse files Browse the repository at this point in the history
  • Loading branch information
z0r0z authored Jan 2, 2024
1 parent 5f34b4f commit 4d6ffb6
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Dagon (𒀭)
> minimalist and modular governance abstraction for accounts today through singleton extensions
![MVIV](https://github.com/Moloch-Mystics/dagon/assets/92001561/671fe3dc-92ee-4c38-8004-982100203465)

Built with *[Foundry](https://github.com/foundry-rs/forge-std)* and *[Solady](https://github.com/vectorized/solady)*.

## Premise
Expand All @@ -9,9 +11,9 @@ Dagon is a contract singleton that allows any account to give any token a thresh

Chiefly, by just validating contract signature process and not dealing with execution or more opinionated proposal logic, Dagon can complement more organizations today, as well as serve as a source of record for the greater DAO ecosystem, which are all free to implement their own custom hooks and checks to Dagon validation. In V0, which is focused as a voting engine, the Dagon pattern can be used for offchain polling for any token, including `ERC-20`, `ERC-721`, `ERC-1155`, `ERC-6909`, and includes a native token mint and burn function to allow tokens to upgrade (or new tokens to be issued) under `DAGON` (itself `ERC-6909`), but can also validate onchain user operations (userOps) that submit ownership to Dagon validation using the `ERC-173` `transferOwnership` flow.

For example, <Insert> DAO might start to use Dagon in small ways as an extension to its ordinary operating system, such as to prove the results of group polls and for simple dapp display purposes, but if Dagon is also registered as the owner of a group smart account, Dagon can then work as the DAO's proposal engine, validating userOps and letting them be posted onchain. In this mode, Dagon supports both token-weighted and m/n signature schemes. Collection of Dagon signatures is gasless, and can be posted in a single transaction and block fee using `isValidSignature()` in the typical `ERC-4337` userOp flow.
For example, DAOs might use Dagon singletons in small ways to start as an extension to their ordinary operating system and governor contracts, such as to prove the results of group polls and for simple dapp display purposes, but if Dagon is also registered as the owner of a group smart account (which could be earmarked or the full treasury), Dagon can then work as the DAO's proposal engine, validating userOps and letting them be posted onchain. In this mode, Dagon supports both token-weighted and m/n signature schemes. Collection of Dagon signatures is gasless, and can be posted in a single transaction through the Dagon `isValidSignature` function in response to a typical `ERC-4337` userOp flow.

Overall, Dagon is designed with `ERC-4337` and account abstraction in mind, but works well with accounts that at least support both the `ERC-1271` (Contract Signatures) and `ERC-173` (Ownership) standard interfaces. (Even so, an EOA can nonetheless mint a Dagon personal token and authorize a threshold to sign-off for off-chain or legal purposes.) There is likely much to explore.
Overall, Dagon is designed with `ERC-4337`-enabled contracts and account abstraction in mind, but works well enough for accounts that at least support both the `ERC-1271` (Contract Signatures) and `ERC-173` (Ownership) standard interfaces. (Even so, a raw EOA can nonetheless mint a Dagon personal token and authorize a threshold to sign-off for their off-chain or legal purposes.) There is likely much to explore.

## Getting Started

Expand All @@ -25,4 +27,4 @@ Build the foundry project with `forge build`. Run contract tests with `forge tes

## License

See [LICENSE](./LICENSE) for more details.
See [LICENSE](./LICENSE) for more details.

0 comments on commit 4d6ffb6

Please sign in to comment.