Skip to content

Commit

Permalink
feat: add accounts, modules and tools
Browse files Browse the repository at this point in the history
  • Loading branch information
kopy-kat committed Jun 13, 2024
1 parent 065fd91 commit 60df3f2
Show file tree
Hide file tree
Showing 13 changed files with 168 additions and 109 deletions.
12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{
"name": "nextra-docs-template",
"name": "erc7579-docs",
"version": "0.0.1",
"description": "Nextra docs template",
"description": "ERC-7579 Docs",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"repository": {
"type": "git",
"url": "git+https://github.com/shuding/nextra-docs-template.git"
"url": "git+https://github.com/shuding/erc7579/erc7579.github.io.git"
},
"author": "Shu Ding <[email protected]>",
"author": "ERC-7579",
"license": "MIT",
"bugs": {
"url": "https://github.com/shuding/nextra-docs-template/issues"
"url": "https://github.com/erc7579/erc7579.github.io/issues"
},
"homepage": "https://github.com/shuding/nextra-docs-template#readme",
"homepage": "https://github.com/erc7579/erc7579.github.io#readme",
"dependencies": {
"next": "^13.0.6",
"nextra": "latest",
Expand Down
2 changes: 2 additions & 0 deletions pages/_meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"index": "Introduction",
"accounts": "Accounts",
"modules": "Modules",
"tooling": "Tooling",
"extensions": "Extensions",
"resources": "Resources"
Expand Down
43 changes: 43 additions & 0 deletions pages/accounts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Accounts

There are many different ERC-7579 compatible accounts and more being built. Different ERC-7579 accounts make different architectural choices, but all comply with the core interfaces of the standard. Here is a list of them:

## Kernel

**A gas efficient and feature rich modular smart account**

GitHub repo: [Kernel](https://github.com/zerodevapp/kernel)

Built by: [ZeroDev](https://zerodev.app/)

## Safe7579

**An adapter for the battle-tested Safe smart account**

GitHub repo: [Safe7579](https://github.com/rhinestonewtf/safe7579)

Built by: [Rhinestone](https://www.rhinestone.wtf/) and [Safe](https://safe.global/)

## Nexus

**Coming soon**

GitHub repo: [Nexus](https://github.com/bcnmy/nexus)

Built by: [Biconomy](https://biconomy.io/)

## Prime

**Coming soon**

GitHub repo: [Prime](https://github.com/etherspot/etherspot-prime-contracts)

Built by: [Etherspot](https://etherspot.io/)

## ERC-7579 Reference implementation

**A reference implementation of the ERC-7579 standard**

GitHub repo: [Reference implementation](https://github.com/erc7579/erc7579-implementation)

Built by: [ERC-7579](https://erc7579.com/)
77 changes: 59 additions & 18 deletions pages/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Image from "next/image";

# Introduction

Welcome to the documentation of ERC-7579. These docs aim to provide a comprehensive overview of the standard, including guides, references and overview of tooling.
Welcome to the documentation of ERC-7579. These docs aim to provide a comprehensive overview of the standard, including guides, references and overview of the ecosystem.

![Hello](/bannerv2.png)

Expand Down Expand Up @@ -34,45 +34,86 @@ The [reference implementation](https://github.com/erc7579/erc7579-implementation

## Extensions

Standardization will need to continue to happen for smart accounts and modules. This standardization might also happen for a subset of smart accounts or modules, such as, for example, further standardizing security safeguards around module usage. To encompass this, we encourage members of the community to create extensions to this standard, by creating new ERCs that extend the behavior of ERC-7579. For example, an ERC might use the title “[FEATURE] Extension for ERC-7579” to indicate that it is an extension to ERC-7579.
Standardization will need to continue to happen for smart accounts and modules. This standardization might also happen for a subset of smart accounts or modules, such as, for example, further standardizing security safeguards around module usage. To encompass this, we encourage members of the community to create extensions to this standard, by creating new ERCs that extend the behavior of ERC-7579. For example, an ERC might use the title “[FEATURE] Extension for ERC-7579” to indicate that it is an extension to ERC-7579. You can also find a list of extensions under [extensions](/extensions).

## Contributing

There are several ways to contribute to the standard:

- Follow our [Twitter](https://x.com/erc7579) to stay up to date with the latest news
- Join the [Telegram](https://t.me/+KfB9WuhKDgk5YzIx) to discuss the standard
- Give feedback on the ERC on [Ethereum Magicians](https://ethereum-magicians.org/t/erc-7579-minimal-modular-smart-accounts/17336)
- Contribute to the [reference implementation](https://github.com/erc7579/erc7579-implementation) through discussions, issues or pull requests
- Create extensions to the standard by creating new ERCs that extend the behavior of ERC-7579

## Supporters

<Cards >
<Cards>
<Card
title="Biconomy"
href="https://biconomy.io/"
icon={<Image src="/biconomy.jpeg" width={50} height={50} alt="" style={{marginRight:"5px"}}/>}
/>
<Card
title="ZeroDev"
href="https://zerodev.app/"
icon={<Image src="/zerodev.png" width={50} height={50} alt="" style={{marginRight:"5px"}}/>}
icon={
<Image
src="/biconomy.jpeg"
width={50}
height={50}
alt=""
style={{ marginRight: "5px" }}
/>
}
/>
<Card
title="Rhinestone"
title="ZeroDev"
href="https://zerodev.app/"
icon={
<Image
src="/zerodev.png"
width={50}
height={50}
alt=""
style={{ marginRight: "5px" }}
/>
}
/>
<Card
title="Rhinestone"
href="https://www.rhinestone.wtf/"
icon={<Image src="/rhinestone.png" width={50} height={50} alt="" style={{marginRight:"5px"}}/>}
icon={
<Image
src="/rhinestone.png"
width={50}
height={50}
alt=""
style={{ marginRight: "5px" }}
/>
}
/>
<Card
title="OKX"
title="OKX"
href="https://www.okx.com/"
icon={<Image src="/okx.jpeg" width={50} height={50} alt="" style={{marginRight:"5px"}}/>}
/>
icon={
<Image
src="/okx.jpeg"
width={50}
height={50}
alt=""
style={{ marginRight: "5px" }}
/>
}
/>
<Card
title="Etherspot"
href="https://etherspot.io"
icon={<Image src="/etherspot.jpg" width={50} height={50} alt="" style={{marginRight:"5px"}}/>}
/>
title="Etherspot"
href="https://etherspot.io"
icon={
<Image
src="/etherspot.jpg"
width={50}
height={50}
alt=""
style={{ marginRight: "5px" }}
/>
}
/>
</Cards>

<a
Expand Down
39 changes: 39 additions & 0 deletions pages/modules.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Modules

Modules are the building blocks of the ERC7579 standard. They are smart contracts that can be attached to a wallet to extend its functionality. Modules can be validators, executors, hooks, fallback handlers and more in the future. Here is a list of some of the modules that have been built so far:

- [AutoSavings Executor](https://docs.rhinestone.wtf/module-sdk/modules/auto-saving-executor): Automatically save a percentage of incoming funds
- [ColdStorage Hook](https://docs.rhinestone.wtf/module-sdk/modules/cold-storage-hook): Prevent funds from being withdrawn without a timelock
- [Deadman Switch Validator](https://docs.rhinestone.wtf/module-sdk/modules/deadman-switch): Prevent funds from being locked forever
- [Hook Multiplexer](https://docs.rhinestone.wtf/module-sdk/modules/hook-multi-plexer): Combine multiple hooks into one with fine-grained control over when they are called
- [MultiFactor Validator](https://docs.rhinestone.wtf/module-sdk/modules/mfa-validator): Use multiple validators in combination as a multi-factor authentication system
- [Ownable Executor](https://docs.rhinestone.wtf/module-sdk/modules/ownable-executor): Allow an account to control a subaccount and pay for its transaction fees
- [Ownable Validator](https://docs.rhinestone.wtf/module-sdk/modules/ownable-validator): Authenticate on your account with multiple ECDSA keys
- [Registry Hook](https://docs.rhinestone.wtf/module-sdk/modules/registry-hook): Query the Module Registry before installing and using modules
- [Scheduled Orders Executor](https://docs.rhinestone.wtf/module-sdk/modules/scheduled-orders): Execute swaps on a specified schedule
- [Scheduled Transfers Executor](https://docs.rhinestone.wtf/module-sdk/modules/scheduled-transfers): Transfer funds on a specified schedule
- [Social Recovery Validator](https://docs.rhinestone.wtf/module-sdk/modules/social-recovery-validator): Recover your account using a set of guardians
- [ECDSA Signer](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/signers/ecdsa): Sign transactions with an ECDSA key
- [Webauthn Signer](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/signers/webauthn): Sign transactions with a Webauthn key
- [Call Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/call-policy): Control which contracts can be called during a transaction
- [Gas Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/gas): Restrict gas usage during transations
- [RateLimit Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/ratelimit): Limit the number of transactions that can be sent in a given time period
- [Signature Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/signature-caller): Restrict who can call a function based on a signature
- [Sudo Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/sudo): Allow a sudo key to bypass all other policies
- [Timestamp Policy](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/policies/timestamp): Restrict when a transaction can be sent
- [Webauthn Validator](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/validators/webauthn): Authenticate with a Webauthn key
- [Recovery Action](https://github.com/zerodevapp/kernel-7579-plugins/tree/master/actions/recovery): Recover a validator using delegatecall
- [Only EntryPoint Hook](https://github.com/zerodevapp/kernel-7579-plugins/blob/master/hooks/onlyEntrypoint/src/OnlyEntryPointHook.sol): Only allow a call to originate from the EntryPoint contract
- [MultipleOwnerECDSAValidator](https://github.com/etherspot/etherspot-prime-contracts/blob/master/src/modular-etherspot-wallet/modules/validators/MultipleOwnerECDSAValidator.sol): Authenticate on your account with multiple ECDSA keys
- [ERC20SessionKeyValidator](https://github.com/etherspot/etherspot-prime-contracts/blob/master/src/modular-etherspot-wallet/modules/validators/ERC20SessionKeyValidator.sol): Use session keys for ERC20-related operations
- [ModuleIsolationHook](https://github.com/etherspot/etherspot-prime-contracts/blob/master/src/modular-etherspot-wallet/modules/hooks/ModuleIsolationHook.sol): Prevent modules from installing other modules
- [ERC20ActionsExecutor](https://github.com/etherspot/etherspot-prime-contracts/blob/master/src/modular-etherspot-wallet/modules/executors/ERC20Actions.sol): Execute ERC20-related actions
- [AggregatedValidator](https://github.com/rhinestonewtf/experimental-modules/tree/main/src/AggregatedValidator): Implementing a validator as an ERC-4337 aggregator
- [PermissionsHook](https://github.com/rhinestonewtf/experimental-modules/tree/main/src/PermissionsHook): A hook to enforce granular module permissions
- [FrameValidator](https://github.com/rhinestonewtf/experimental-modules/tree/main/src/FrameValidator): Validate farcaster frames signatures
- [MultiECDSAWithExpirationValidator](https://github.com/rhinestonewtf/experimental-modules/tree/main/src/MultiECDSAWithExpirationValidator): Authenticate on your account with multiple ECDSA keys with expiration
- [SpendingLimitHook](https://github.com/rhinestonewtf/experimental-modules/tree/main/src/SpendingLimitHook): Limit the amount of funds that can be spent over a period of time
- [Airdrop Claim Module](https://github.com/Destiner/module-airdrop-claim): Automate aidrop claims with a finders fee
- [Frame Validator](https://github.com/Destiner/module-frame): Validate farcaster frames signatures
- [Flashloan Callback Executor](https://github.com/kroist/flashcall-module-erc-7579/blob/main/src/executors/FlashcallFallbackExecutor.sol): Execute flashloan callbacks
- [Vault Automation Executor](https://github.com/kot2271/Automation_Module_ERC_7579): Automate vault interactions
3 changes: 1 addition & 2 deletions pages/resources/_meta.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"terms": "Terminology",
"writing": "Writings",
"talks": "Talks",
"modules": "Modules"
"talks": "Talks"
}
14 changes: 0 additions & 14 deletions pages/resources/modules.mdx

This file was deleted.

2 changes: 2 additions & 0 deletions pages/resources/talks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
- [Konrad Kopp, Co-Founder of Rhinestone](https://open.spotify.com/episode/3rlCBdKg9CBh4lsY210ko8)
- [Derek Chiang, CEO of ZeroDev](https://open.spotify.com/episode/0Y9a3SAhizJq0Lg6TzM4KO?si=b8c9ff0ff1514487)
- [Ahmed Al-Balaghi, CEO of Biconomy](https://open.spotify.com/episode/114i9xGwQiJv4WSBnkBZrM?si=afb04a6fcb39413a)
- [ERC-7579 and modular smart account interoperability](https://www.youtube.com/watch?v=fyLi7nP5lFo&ab_channel=Etherspot)
- [Composable 4337: Decoding Modular Smart Accounts](https://www.youtube.com/watch?v=yM_17boijYg&ab_channel=ERC-4337)
6 changes: 6 additions & 0 deletions pages/resources/writing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@
- [A foundational layer to modular account abstraction](https://blog.rhinestone.wtf/a-foundational-layer-to-modular-account-abstraction-e7b21ae56034)
- [Teaming up with Biconomy to launch the first module store for smart accounts](https://blog.rhinestone.wtf/teaming-up-with-biconomy-to-launch-the-first-module-store-for-smart-accounts-445233f919bc)
- [ModuleKit deep dive](https://blog.rhinestone.wtf/modulekit-deep-dive-ad84ee0797c6)
- [What is ERC-7579? Exploring the new standard for enhanced smart account interoperability](https://www.okx.com/learn/what-is-erc-7579)
- [ERC-7579: Unified Standard for Modular Smart Accounts](https://www.biconomy.io/post/erc-7579-pioneering-a-unified-standard-for-modular-smart-accounts)
- [Modular accounts with ERC-7579](https://docs.stackup.sh/docs/erc-7579)
- [How ERC-7579 works: a technical introduction](https://www.okx.com/learn/how-erc-7579-works)
- [Unlocking the Future with PillarX: The Power of ERC-7579 Modular Accounts](https://www.pillar.fi/blog/unlocking-the-future-with-pillarx-the-power-of-erc-7579-modular-accounts/)
- [Why we are building Kernel on ERC-7579 (and not ERC-6900)](https://docs.zerodev.app/blog/why-7579-over-6900)
13 changes: 10 additions & 3 deletions pages/tooling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@

In order to make the development of ERC-7579 compliant accounts and modules easier, different tools are being developed. This page lists the tools that are currently available.

## Current tools
## Application developers

- [ModuleKit](/tooling/modulekit)
- Permissionless.js (coming soon)
- [Permissionless.js](https://docs.pimlico.io/permissionless): Build with ERC-4337 smart accounts, bundlers, paymasters, and user operations
- [ZeroDev SDK](https://docs.zerodev.app/): A modular SDK for developing DApps and wallets using smart accounts
- [ModuleSDK](https://docs.rhinestone.wtf/module-sdk): A TypeScript library for using modules in applications

## Module developers

- [ModuleKit](https://docs.rhinestone.wtf/modulekit): A development kit for building and testing smart account modules
- [Module Template](https://github.com/rhinestonewtf/module-template): A Foundry template for building modules using the ModuleKit
- [Sandbox](https://docs.rhinestone.wtf/sandbox): A frontend playground building and testing smart account modules
3 changes: 0 additions & 3 deletions pages/tooling/_meta.json

This file was deleted.

62 changes: 0 additions & 62 deletions pages/tooling/modulekit.mdx

This file was deleted.

1 change: 0 additions & 1 deletion theme.config.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ const config: DocsThemeConfig = {
</a>
),
},
faviconGlyph: "📝",
};

export default config;

0 comments on commit 60df3f2

Please sign in to comment.