Skip to content

Commit 8d47654

Browse files
authored
feat: edit documentation for Account Abstraction and add Smart Backend Wallets (#5516)
1 parent 1d80944 commit 8d47654

File tree

2 files changed

+65
-3
lines changed
  • apps/portal/src/app/engine/features

2 files changed

+65
-3
lines changed

apps/portal/src/app/engine/features/account-abstraction/page.mdx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createMetadata } from "@doc";
1+
import { createMetadata, Callout } from "@doc";
22

33
export const metadata = createMetadata({
44
title: "Account Abstraction | thirdweb Engine",
@@ -8,6 +8,19 @@ export const metadata = createMetadata({
88

99
# Account Abstraction
1010

11+
<Callout variant="info" title="Looking to use account abstraction for your backend operations?">
12+
Consider using [Smart Backend Wallets](/engine/features/backend-wallets#smart-backend-wallets) instead. They combine EOA and smart account management into a single wallet, with automatic deployment and simplified integration:
13+
14+
- No need to deploy or manage account factories
15+
- No separate account and backend wallet addresses to track
16+
- Works with all existing Engine endpoints without modification
17+
- Built-in transaction batching and recovery
18+
- Automatic gas management with paymaster
19+
20+
Smart backend wallets are recommended when you need account abstraction for your own backend operations. Use the approach described below when you need to manage smart accounts for your users.
21+
22+
</Callout>
23+
1124
Use Engine to deploy, manage, and transact with smart accounts on behalf of your users.
1225

1326
## Deploy an account factory

apps/portal/src/app/engine/features/backend-wallets/page.mdx

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createMetadata, Details } from "@doc";
2+
import { Callout } from "@doc";
23

34
export const metadata = createMetadata({
45
title: "Backend Wallets | thirdweb Engine",
@@ -12,6 +13,50 @@ Engine performs blockchain actions using backend wallets that you own and manage
1213

1314
There are multiple options for securing backend wallets.
1415

16+
## Smart Backend Wallets
17+
18+
Smart backend wallets are the recommended way to perform blockchain operations with Engine. Each smart backend wallet consists of an EOA (managed internally by Engine) and a smart account (using thirdweb's default account implementation).
19+
20+
### Benefits
21+
22+
Smart backend wallets inherit smart account benefits and offer several advantages over traditional EOAs:
23+
24+
- **Gas Management**: Built-in paymaster eliminates the need to maintain gas tokens. This means you never need to hold crypto or top up gas.
25+
- **Better Nonce Management**: Smart accounts use multi-dimensional nonces, which are more efficient than EOAs.
26+
- **Simple Integration**: Works with all existing Engine endpoints without any code changes.
27+
28+
### How it works
29+
30+
The smart account is automatically deployed the first time you send a transaction on a chain. You don't need to think about deploying or managing the smart account - Engine handles everything behind the scenes. All transactions are sent as UserOperations to the EntryPoint contract on chain.
31+
32+
<Details summary="How are Smart Backend Wallets different from existing engine AA features?">
33+
Unlike the [previous account abstraction implementation in
34+
Engine](account-abstraction) where you had to manage both the account address
35+
(`x-account-address`) and the backend wallet address
36+
(`x-backend-wallet-address`) separately, smart backend wallets simplify this.
37+
The backend wallet address is now the smart account address itself.
38+
</Details>
39+
40+
<Details summary="When not to use Smart Backend Wallets?">
41+
At this time, Smart Backend Wallets do not allow for importing a smart
42+
account. In use cases where you need to import a smart account (such as with
43+
session keys), you should use [Engine AA features that utilise the
44+
`x-account-address` header](account-abstraction).
45+
</Details>
46+
47+
### Configuration Types
48+
49+
- `smart:local` - Smart account backed by a local key
50+
- `smart:aws-kms` - Smart account backed by AWS KMS
51+
- `smart:gcp-kms` - Smart account backed by Google Cloud KMS
52+
53+
For AWS and Google Cloud KMS options, follow the setup instructions in the respective sections below.
54+
55+
### Pricing
56+
57+
Smart backend wallets have no additional costs to use with your Engine instance. Transactions sent from smart backend wallets follow the [same billing model as regular account abstraction transactions with thirdweb](/connect/account-abstraction/infrastructure#pricing--billing).
58+
Smart accounts need to be deployed on each chain. This costs gas and is billed to your account like any other transaction.
59+
1560
## Local wallet
1661

1762
A [local wallet](/references/wallets/v2/LocalWallet) is a wallet created or imported from a private key. Ensure your private key is backed up before transacting with a local wallet in a production environment.
@@ -31,7 +76,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
3176
- `kms:Sign`
3277
- `kms:CreateAlias`
3378
- `kms:Verify`
34-
1. On the user page, navigate to **Security credentials > Access keys**.
79+
1. On the user page, navigate to **Security credentials > Access keys**.
3580
1. Select **Create access key** to get an **Access Key** and **Secret Key**.
3681
1. In the dashboard, navigate to **Configuration > Backend Wallets**.
3782
1. Select **AWS KMS** and provide the following:
@@ -50,7 +95,6 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
5095
- AWS KMS Key ID (example: `0489da75-9830-4a5a-97e3-e4a6df7775b3`)
5196
- AWS KMS ARN (example: `arn:aws:kms:us-west-1:632186309261:key/0489da75-9830-4a5a-97e3-e4a6df7775b3`)
5297

53-
5498
## Google Cloud KMS wallet
5599

56100
#### Setup
@@ -71,6 +115,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
71115
This is the Project ID of the GCP project where the key was created.
72116

73117
**Where to find**:
118+
74119
- Navigate to the Google Cloud Console.
75120
- Click on the project dropdown at the top of the page.
76121
- The Project ID is displayed under your project's name.
@@ -82,6 +127,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
82127
This is the location where the keyring was created (e.g., us-central1, europe-west1).
83128

84129
**Where to find**:
130+
85131
- In the Google Cloud Console, go to **Security > Cryptographic Keys**.
86132
- Click on the keyring that contains your key.
87133
- The location is displayed in the Location field.
@@ -93,6 +139,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
93139
This is the ID of the keyring where your key is stored.
94140

95141
**Where to find**:
142+
96143
- In the Google Cloud Console, go to **Security > Cryptographic Keys**.
97144
- Select the keyring that contains your key.
98145
- The KeyRing ID is displayed in the list or the URL.
@@ -104,6 +151,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
104151
This is the email associated with the service account used for accessing the KMS key.
105152

106153
**Where to find**:
154+
107155
- In the Google Cloud Console, go to **IAM & Admin > Service Accounts**.
108156
- Find the service account you are using. its email will be in the format: `name@project.iam.gserviceaccount.com`
109157

@@ -114,6 +162,7 @@ An [AWS KMS Wallet](/references/wallets/v2/AwsKmsWallet) is a wallet securely st
114162
This is the private key of the service account that is used for authenticating API requests.
115163

116164
**Where to find**:
165+
117166
- Open the JSON file downloaded above.
118167
- Copy the value of the `private_key` field.
119168

0 commit comments

Comments
 (0)