Skip to content

Commit

Permalink
feat: add info smart wallets (#215)
Browse files Browse the repository at this point in the history
  • Loading branch information
rtomas authored Dec 27, 2024
1 parent e3656b6 commit 2af2205
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 49 deletions.
2 changes: 1 addition & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
"qrcode", "ECDH", "ciphertext", "HMAC", "mutez", "rebranded", "clickjacking", "openupm", "walletids", "walletid", "Keyserver", "CAPI",
"Newtonsoft", "mainnets", "Netherum's", "Starscream", "lokijs", "linkining", "themself", "triggermodal", "Coinbasewallet", "bera", "UXML", "preconfigured",
"Rebalancing", "hackathons", "eviluniswap", "permissioned", "Diffie", "prioritise", "synchronise", "scriptable", "dedup", "Zora", "Fraximal", "Podspec", "Wormfare",
"johnsmith", "secp", "reimagined", "tgvideo", "solflare", "WBIPs", "xverse", "mycustomwallet"
"johnsmith", "secp", "reimagined", "tgvideo", "solflare", "WBIPs", "xverse", "mycustomwallet", "seedphrases"
]
}

108 changes: 71 additions & 37 deletions docs/appkit/features/smart-accounts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,74 @@ This update ensures a seamless and efficient experience for managing digital ass

<Button name="Try Demo" url="https://appkit-lab.reown.com/" />

## Get Started

<Wrapper
type="large"
fit={false}
items={[
{
name: 'React',
type: 'react',
description: 'Get started with AppKit in React.',
icon: reactLogo,
href: '../react/core/smart-accounts'
},
{
name: 'Next.js',
type: 'next',
description: 'Get started with AppKit in Next.js.',
icon: nextjsLogo,
href: '../next/core/smart-accounts',
isWhite: true
},
{
name: 'Vue',
type: 'vue',
description: 'Get started with AppKit in Vue.',
icon: vueLogo,
href: '../vue/core/smart-accounts'
},
{
name: 'JavaScript',
type: 'javascript',
description: 'Get started with AppKit in JavaScript.',
icon: javascriptLogo,
href: '../javascript/core/smart-accounts'
}
]}
/>
### Deployment

Smart Accounts are deployed alongside the first transaction. Until deployment, a precalculated address, known as the counterfactual address, is displayed. Despite not being deployed, the account can still sign using 6492 signatures.

### Supported Networks

Smart Accounts are available on the following networks:

- Base Sepolia
- BSC (Binance Smart Chain)
- Fraximal
- Linea
- Mode
- Optimism
- Polygon
- Polygon Mumbai
- Sepolia

### User Eligibility

Smart Accounts are exclusively available for embedded wallet users (email and social login)

## FAQ

### What is a Smart Account?

A Smart Account improves the traditional account experience by replacing Externally Owned Accounts (EOAs) with a Smart Contract that follows the [ERC-4337 standard](https://eips.ethereum.org/EIPS/eip-4337). This opens up many use cases that were previously unavailable.

Smart Accounts do no require Private Keys or Seed Phrases, instead they rely on a key or multiple keys from designated signers to access the smart account and perform actions on chain. The keys can take multiple forms including passkeys and EOA signatures.

### What can I do with a Smart Account?

Smart accounts unlock a host of use cases that were previously unavailable with EOAs. Essentially anything that can be programmed into a smart contract can be used by Smart Accounts.

- **Automated Transactions:** Set up recurring payments or conditional transfers.
- **Multi-Signature Authorization:** Require multiple approvals for a transaction to increase security.
- **Delegated Transactions:** Allow a third party to execute transactions on your behalf under specific conditions.
- **Enhanced Security:** Implement complex security mechanisms such as time-locked transactions and withdrawal limits.
- **Interoperability:** Interact seamlessly with decentralized applications (dApps) and decentralized finance (DeFi) protocols.
- **Custom Logic:** Create custom transaction rules and workflows that align with personal or business requirements.

### How do I get a Smart Account?

Existing AppKit Universal Wallet Users will be given the option to upgrade their account to a smart account. Once you upgrade you will still be able to access your EOA and self-custody your account.

New AppKit Universal Wallet Users will be given smart accounts by default when they login for the first time.

### Does it cost anything?

There is a small additional cost for activating your smart account. The activation fee is added to the first transaction and covers the network fees required for deploying the new smart contract onchain.

### Can I export my Smart Account?

No, you cannot export your Smart Account. The Smart Account (SA) is deployed by the EOA and is owned by the EOA. Your EOA account will always be exportable.
Also is good to know that SA don't have seedphrases.

### Can I withdraw all my funds from my Smart Account?

Yes, you can withdraw all your funds from your Smart Account.

### What are account names?

Smart account addresses start with ’0x’ followed by 42 characters, this is the unique address of your smart account on the network. ‘0x’ addresses like this are long, unwieldy and unmemorable. AppKit allows you to assign a more memorable name for your smart account using [ENS Resolvers](https://docs.ens.domains/resolvers/ccip-read).

You can assign a name to your account and this will act as an alias for your account that can be shared publicly and provide a better user experience. AppKit account names are followed by the "reown.id" domain.

### What can I do with my account name?

As AppKit smart account addresses are the same across the supported networks by [Pimlico](https://docs.pimlico.io/infra/platform/supported-chains), you only need one account name which can then be used across the networks.

For example if you want someone to send you USDC on Polygon they can send it to “johnsmith.reown.id”. If you want someone wants to send you USDC on Optimism they can also use “johnsmith.reown.id”.
2 changes: 1 addition & 1 deletion docs/appkit/recipes/switching-to-send-calls.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ encodes the calls itself.

Typically, alongside `writeContractAsync` or similar calls, there would be a
`waitForTransactionReceipt` used to wait for the transaction. Sending calls via
the EIP 5792 standars by design does not return a transaction hash by design.
the EIP 5792 standards by design does not return a transaction hash by design.

Instead, `sendCalls` will return an identifier for the transaction which can be
queried via getting the calls' status. In Wagmi's case, this is done using
Expand Down
26 changes: 17 additions & 9 deletions docs/appkit/shared/smart-accounts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ Smart Accounts are available on the following networks:

### User Eligibility

Smart Accounts are exclusively available for users utilizing email or social logins (any Magic login)
Smart Accounts are exclusively available for embedded wallet users (email and social login)

## FAQ

### What is a Smart Account?

A Smart Account in improves the traditional account experience by replacing Externally Owned Accounts (EOAs) with a Smart Contract that follows the [ERC-4337 standard](https://eips.ethereum.org/EIPS/eip-4337). This opens up many use cases that were previously unavailable.
A Smart Account improves the traditional account experience by replacing Externally Owned Accounts (EOAs) with a Smart Contract that follows the [ERC-4337 standard](https://eips.ethereum.org/EIPS/eip-4337). This opens up many use cases that were previously unavailable.

Smart Accounts do no require Private Keys or Seed Phrases, instead they rely on a key or multiple keys from designated signers to access the smart account and perform actions on chain. The keys can take multiple forms including passkeys and EOA signatures.

Expand All @@ -57,15 +57,23 @@ New AppKit Universal Wallet Users will be given smart accounts by default when t

There is a small additional cost for activating your smart account. The activation fee is added to the first transaction and covers the network fees required for deploying the new smart contract onchain.

# What are account names?
### Can I export my Smart Account?

Smart account addresses start with ’0x’ followed by 42 characters, this is the unique address of your smart account on the network. ‘0x’ addresses like this are long, unwieldy and unmemorable. AppKit allows you to assign a more memorable name for your smart account using [ENS](https://ens.domains/).
No, you cannot export your Smart Account. The Smart Account (SA) is deployed by the EOA and is owned by the EOA. Your EOA account will always be exportable.
Also is good to know that SA don't have seedphrases.

You can assign a name to your account and this will act as an alias for your account that can be shared publicly and provide a better user experience. AppKit account names are followed by the wcn.id.

### Can I withdraw all my funds from my Smart Account?

## What can I do with my account name?
Yes, you can withdraw all your funds from your Smart Account.

As AppKit smart account addresses are the same across the supported networks, you only need one account name which can then be used across the networks.
### What are account names?

For example if you want someone to send you USDC on Polygon they can send it to “johnsmith.wcn.id”. If you want someone wants to send you USDC on Optimism they can also use “johnsmith.wcn.id”.
Smart account addresses start with ’0x’ followed by 42 characters, this is the unique address of your smart account on the network. ‘0x’ addresses like this are long, unwieldy and unmemorable. AppKit allows you to assign a more memorable name for your smart account using [ENS Resolvers](https://docs.ens.domains/resolvers/ccip-read).

You can assign a name to your account and this will act as an alias for your account that can be shared publicly and provide a better user experience. AppKit account names are followed by the "reown.id" domain.

### What can I do with my account name?

As AppKit smart account addresses are the same across the supported networks by [Pimlico](https://docs.pimlico.io/infra/platform/supported-chains), you only need one account name which can then be used across the networks.

For example if you want someone to send you USDC on Polygon they can send it to “johnsmith.reown.id”. If you want someone wants to send you USDC on Optimism they can also use “johnsmith.reown.id”.
2 changes: 1 addition & 1 deletion docs/appkit/shared/sponsored-transactions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ and other required implementation-specific context data.
### A Note on Wallets

As of right now, not many smart account wallets support paymasters, however
AppKit's embedded smart account covers full compatiblity with ERC7677 paymasters.
AppKit's embedded smart account covers full compatibility with ERC7677 paymasters.

### A Note on Paymasters

Expand Down

0 comments on commit 2af2205

Please sign in to comment.