@aomi-labs/client 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -42
- package/dist/cli.js +49 -3
- package/package.json +1 -1
- package/skills/aomi-transact/SKILL.md +81 -51
package/README.md
CHANGED
|
@@ -63,30 +63,30 @@ new Session(clientOptions: AomiClientOptions, sessionOptions?: SessionOptions)
|
|
|
63
63
|
new Session(client: AomiClient, sessionOptions?: SessionOptions)
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
| Option
|
|
67
|
-
|
|
68
|
-
| `sessionId`
|
|
69
|
-
| `namespace`
|
|
70
|
-
| `publicKey`
|
|
71
|
-
| `apiKey`
|
|
72
|
-
| `userState`
|
|
73
|
-
| `pollIntervalMs` | `500`
|
|
74
|
-
| `logger`
|
|
66
|
+
| Option | Default | Description |
|
|
67
|
+
| ---------------- | --------------------- | --------------------------------------- |
|
|
68
|
+
| `sessionId` | `crypto.randomUUID()` | Thread/session ID |
|
|
69
|
+
| `namespace` | `"default"` | Backend namespace |
|
|
70
|
+
| `publicKey` | — | Wallet address |
|
|
71
|
+
| `apiKey` | — | API key for private namespaces |
|
|
72
|
+
| `userState` | — | Arbitrary user state sent with requests |
|
|
73
|
+
| `pollIntervalMs` | `500` | Polling interval in ms |
|
|
74
|
+
| `logger` | — | Pass `console` for debug output |
|
|
75
75
|
|
|
76
76
|
#### Methods
|
|
77
77
|
|
|
78
|
-
| Method
|
|
79
|
-
|
|
80
|
-
| `send(message)`
|
|
81
|
-
| `sendAsync(message)`
|
|
82
|
-
| `resolve(id, result)`
|
|
83
|
-
| `reject(id, reason?)`
|
|
84
|
-
| `interrupt()`
|
|
85
|
-
| `close()`
|
|
86
|
-
| `getMessages()`
|
|
87
|
-
| `getTitle()`
|
|
88
|
-
| `getPendingRequests()` | Pending wallet requests
|
|
89
|
-
| `getIsProcessing()`
|
|
78
|
+
| Method | Description |
|
|
79
|
+
| ---------------------- | ----------------------------------------------------------------- |
|
|
80
|
+
| `send(message)` | Send a message, wait for completion, return `{ messages, title }` |
|
|
81
|
+
| `sendAsync(message)` | Send without waiting — poll in background, listen via events |
|
|
82
|
+
| `resolve(id, result)` | Resolve a pending wallet request |
|
|
83
|
+
| `reject(id, reason?)` | Reject a pending wallet request |
|
|
84
|
+
| `interrupt()` | Cancel current processing |
|
|
85
|
+
| `close()` | Stop polling, unsubscribe SSE, clean up |
|
|
86
|
+
| `getMessages()` | Current messages |
|
|
87
|
+
| `getTitle()` | Current session title |
|
|
88
|
+
| `getPendingRequests()` | Pending wallet requests |
|
|
89
|
+
| `getIsProcessing()` | Whether the agent is processing |
|
|
90
90
|
|
|
91
91
|
#### Events
|
|
92
92
|
|
|
@@ -119,11 +119,15 @@ When installed globally or in a project, the executable name is `aomi`.
|
|
|
119
119
|
For one-off usage, run commands via `npx @aomi-labs/client ...`.
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
+
npx @aomi-labs/client --version # print installed CLI version
|
|
122
123
|
npx @aomi-labs/client chat "swap 1 ETH for USDC" # talk to the agent
|
|
123
124
|
npx @aomi-labs/client chat "swap 1 ETH for USDC" --model claude-sonnet-4
|
|
124
125
|
npx @aomi-labs/client chat "swap 1 ETH" --verbose # stream tool calls + responses live
|
|
125
|
-
npx @aomi-labs/client
|
|
126
|
+
npx @aomi-labs/client app list # list available apps
|
|
127
|
+
npx @aomi-labs/client model list # list available models
|
|
126
128
|
npx @aomi-labs/client model set claude-sonnet-4 # switch the current session model
|
|
129
|
+
npx @aomi-labs/client secret list # list configured secret handles
|
|
130
|
+
npx @aomi-labs/client --secret ALCHEMY_API_KEY=... # ingest a secret for the active session
|
|
127
131
|
npx @aomi-labs/client log # show full conversation history
|
|
128
132
|
npx @aomi-labs/client tx # list pending + signed txs
|
|
129
133
|
npx @aomi-labs/client sign tx-1 # sign a specific pending tx
|
|
@@ -150,7 +154,7 @@ session don't need it again.
|
|
|
150
154
|
The CLI can discover and switch backend models for the active session:
|
|
151
155
|
|
|
152
156
|
```bash
|
|
153
|
-
$ npx @aomi-labs/client
|
|
157
|
+
$ npx @aomi-labs/client model list
|
|
154
158
|
claude-sonnet-4
|
|
155
159
|
gpt-5
|
|
156
160
|
|
|
@@ -164,6 +168,29 @@ $ npx @aomi-labs/client chat "hello" --model claude-sonnet-4
|
|
|
164
168
|
successful backend update. `aomi chat --model ...` applies the requested model
|
|
165
169
|
before sending the message and updates that persisted state as well.
|
|
166
170
|
|
|
171
|
+
### Secret management
|
|
172
|
+
|
|
173
|
+
The CLI supports per-session secret ingestion. This lets the backend use opaque
|
|
174
|
+
handles instead of raw secret values:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
$ npx @aomi-labs/client --secret ALCHEMY_API_KEY=sk_live_123
|
|
178
|
+
Configured 1 secret for session 7f8a...
|
|
179
|
+
ALCHEMY_API_KEY $SECRET:ALCHEMY_API_KEY
|
|
180
|
+
|
|
181
|
+
$ npx @aomi-labs/client --secret ALCHEMY_API_KEY=sk_live_123 chat "simulate a swap on Base"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
You can inspect or clear the current session's secret handles:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
$ npx @aomi-labs/client secret list
|
|
188
|
+
ALCHEMY_API_KEY $SECRET:ALCHEMY_API_KEY
|
|
189
|
+
|
|
190
|
+
$ npx @aomi-labs/client secret clear
|
|
191
|
+
Cleared all secrets for the active session.
|
|
192
|
+
```
|
|
193
|
+
|
|
167
194
|
### Transaction flow
|
|
168
195
|
|
|
169
196
|
The backend builds transactions; the CLI persists and signs them:
|
|
@@ -252,17 +279,19 @@ $ npx @aomi-labs/client log
|
|
|
252
279
|
|
|
253
280
|
All config can be passed as flags (which take priority over env vars):
|
|
254
281
|
|
|
255
|
-
| Flag
|
|
256
|
-
|
|
257
|
-
| `--backend-url`
|
|
258
|
-
| `--api-key`
|
|
259
|
-
| `--app`
|
|
260
|
-
| `--model`
|
|
261
|
-
| `--
|
|
262
|
-
| `--
|
|
263
|
-
| `--
|
|
264
|
-
| `--
|
|
265
|
-
| `--
|
|
282
|
+
| Flag | Env Variable | Default | Description |
|
|
283
|
+
| ----------------------- | ----------------- | ---------------------- | -------------------------------------------- |
|
|
284
|
+
| `--backend-url` | `AOMI_BASE_URL` | `https://api.aomi.dev` | Backend URL |
|
|
285
|
+
| `--api-key` | `AOMI_API_KEY` | — | API key for non-default apps |
|
|
286
|
+
| `--app` | `AOMI_APP` | `default` | App |
|
|
287
|
+
| `--model` | `AOMI_MODEL` | — | Model rig to apply before chat |
|
|
288
|
+
| `--secret <NAME=value>` | — | — | Ingest secret values for the active session |
|
|
289
|
+
| `--public-key` | `AOMI_PUBLIC_KEY` | — | Wallet address (tells agent your wallet) |
|
|
290
|
+
| `--private-key` | `PRIVATE_KEY` | — | Hex private key for `aomi sign` |
|
|
291
|
+
| `--rpc-url` | `CHAIN_RPC_URL` | — | RPC URL for transaction submission |
|
|
292
|
+
| `--chain` | `AOMI_CHAIN_ID` | `1` | Chain ID (1, 137, 42161, 8453, 10, 11155111) |
|
|
293
|
+
| `--verbose`, `-v` | — | — | Stream tool calls and agent responses live |
|
|
294
|
+
| `--version`, `-V` | — | — | Print the installed CLI version |
|
|
266
295
|
|
|
267
296
|
```bash
|
|
268
297
|
# Use a custom backend
|
|
@@ -293,14 +322,16 @@ The CLI is **not** a long-running process — each command starts, runs, and
|
|
|
293
322
|
exits. Conversation history lives on the backend. Between invocations, the CLI
|
|
294
323
|
persists local state under `AOMI_STATE_DIR` or `~/.aomi` by default:
|
|
295
324
|
|
|
296
|
-
| Field
|
|
297
|
-
|
|
298
|
-
| `sessionId`
|
|
299
|
-
| `
|
|
300
|
-
| `
|
|
301
|
-
| `
|
|
302
|
-
| `
|
|
303
|
-
| `
|
|
325
|
+
| Field | Purpose |
|
|
326
|
+
| --------------- | ------------------------------------------------------ |
|
|
327
|
+
| `sessionId` | Which conversation to continue |
|
|
328
|
+
| `clientId` | Stable client identity used for session secret handles |
|
|
329
|
+
| `model` | Last successfully applied model for the session |
|
|
330
|
+
| `publicKey` | Wallet address (from `--public-key`) |
|
|
331
|
+
| `chainId` | Active chain ID (from `--chain`) |
|
|
332
|
+
| `secretHandles` | Opaque handles returned for ingested secrets |
|
|
333
|
+
| `pendingTxs` | Unsigned transactions waiting for `aomi sign <id>` |
|
|
334
|
+
| `signedTxs` | Completed transactions with hashes/signatures |
|
|
304
335
|
|
|
305
336
|
```
|
|
306
337
|
$ npx @aomi-labs/client chat "hello" # creates session, saves sessionId
|
package/dist/cli.js
CHANGED
|
@@ -19,6 +19,46 @@ var __spreadValues = (a, b) => {
|
|
|
19
19
|
};
|
|
20
20
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
21
|
|
|
22
|
+
// package.json
|
|
23
|
+
var package_default = {
|
|
24
|
+
name: "@aomi-labs/client",
|
|
25
|
+
version: "0.1.14",
|
|
26
|
+
description: "Platform-agnostic TypeScript client for the Aomi backend API",
|
|
27
|
+
type: "module",
|
|
28
|
+
main: "./dist/index.cjs",
|
|
29
|
+
module: "./dist/index.js",
|
|
30
|
+
types: "./dist/index.d.ts",
|
|
31
|
+
bin: {
|
|
32
|
+
aomi: "./dist/cli.js"
|
|
33
|
+
},
|
|
34
|
+
exports: {
|
|
35
|
+
".": {
|
|
36
|
+
import: {
|
|
37
|
+
types: "./dist/index.d.ts",
|
|
38
|
+
default: "./dist/index.js"
|
|
39
|
+
},
|
|
40
|
+
require: {
|
|
41
|
+
types: "./dist/index.d.cts",
|
|
42
|
+
default: "./dist/index.cjs"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
files: [
|
|
47
|
+
"dist",
|
|
48
|
+
"skills",
|
|
49
|
+
"README.md"
|
|
50
|
+
],
|
|
51
|
+
scripts: {
|
|
52
|
+
build: "tsup",
|
|
53
|
+
"clean:dist": "rm -rf dist"
|
|
54
|
+
},
|
|
55
|
+
dependencies: {
|
|
56
|
+
"@getpara/aa-alchemy": "2.18.0",
|
|
57
|
+
"@getpara/aa-pimlico": "2.18.0",
|
|
58
|
+
viem: "^2.40.3"
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
22
62
|
// src/cli/errors.ts
|
|
23
63
|
var CliExit = class extends Error {
|
|
24
64
|
constructor(code) {
|
|
@@ -95,7 +135,7 @@ function parseAAMode(value) {
|
|
|
95
135
|
}
|
|
96
136
|
function parseArgs(argv) {
|
|
97
137
|
const raw = argv.slice(2);
|
|
98
|
-
const command = raw[0] && !raw[0].startsWith("
|
|
138
|
+
const command = raw[0] && !raw[0].startsWith("-") ? raw[0] : void 0;
|
|
99
139
|
const rest = command ? raw.slice(1) : raw;
|
|
100
140
|
const positional = [];
|
|
101
141
|
const flags = {};
|
|
@@ -3665,6 +3705,7 @@ async function signCommand(runtime) {
|
|
|
3665
3705
|
}
|
|
3666
3706
|
|
|
3667
3707
|
// src/cli/main.ts
|
|
3708
|
+
var CLI_VERSION = package_default.version;
|
|
3668
3709
|
function printUsage() {
|
|
3669
3710
|
console.log(`
|
|
3670
3711
|
aomi \u2014 CLI client for Aomi on-chain agent
|
|
@@ -3691,6 +3732,7 @@ Usage:
|
|
|
3691
3732
|
aomi status Show current session state
|
|
3692
3733
|
aomi events List system events
|
|
3693
3734
|
aomi close Close the current session
|
|
3735
|
+
aomi --version Print the installed CLI version
|
|
3694
3736
|
|
|
3695
3737
|
Options:
|
|
3696
3738
|
--backend-url <url> Backend URL (default: https://api.aomi.dev)
|
|
@@ -3701,6 +3743,7 @@ Options:
|
|
|
3701
3743
|
--private-key <key> Hex private key for signing
|
|
3702
3744
|
--rpc-url <url> RPC URL for transaction submission
|
|
3703
3745
|
--verbose, -v Show tool calls and streaming output (for chat)
|
|
3746
|
+
--version, -V Print the installed CLI version
|
|
3704
3747
|
|
|
3705
3748
|
Sign options:
|
|
3706
3749
|
aomi sign <tx-id> --eoa
|
|
@@ -3734,8 +3777,8 @@ Environment (overridden by flags):
|
|
|
3734
3777
|
`.trim());
|
|
3735
3778
|
}
|
|
3736
3779
|
async function main(runtime) {
|
|
3737
|
-
var _a3;
|
|
3738
|
-
const command = (_a3 = runtime.parsed.command) != null ? _a3 : runtime.parsed.flags["help"] || runtime.parsed.flags["h"] ? "help" : void 0;
|
|
3780
|
+
var _a3, _b;
|
|
3781
|
+
const command = (_b = (_a3 = runtime.parsed.command) != null ? _a3 : runtime.parsed.flags["version"] || runtime.parsed.flags["V"] ? "version" : void 0) != null ? _b : runtime.parsed.flags["help"] || runtime.parsed.flags["h"] ? "help" : void 0;
|
|
3739
3782
|
switch (command) {
|
|
3740
3783
|
case "chat":
|
|
3741
3784
|
await chatCommand(runtime);
|
|
@@ -3770,6 +3813,9 @@ async function main(runtime) {
|
|
|
3770
3813
|
case "close":
|
|
3771
3814
|
closeCommand(runtime);
|
|
3772
3815
|
break;
|
|
3816
|
+
case "version":
|
|
3817
|
+
console.log(CLI_VERSION);
|
|
3818
|
+
break;
|
|
3773
3819
|
case "help":
|
|
3774
3820
|
printUsage();
|
|
3775
3821
|
break;
|
package/package.json
CHANGED
|
@@ -5,13 +5,14 @@ description: >
|
|
|
5
5
|
check balances or prices, build wallet requests, confirm quotes or routes,
|
|
6
6
|
sign transactions or EIP-712 payloads, switch apps or chains, or execute
|
|
7
7
|
swaps, transfers, and DeFi actions on-chain. Covers Aomi chat, transaction
|
|
8
|
-
review, AA-first signing with automatic EOA fallback,
|
|
9
|
-
|
|
8
|
+
review, AA-first signing with automatic EOA fallback, session controls, and
|
|
9
|
+
per-session secret ingestion.
|
|
10
|
+
compatibility: "Requires @aomi-labs/client (`npm install -g @aomi-labs/client`). CLI executable is `aomi`. Requires viem for signing (`npm install viem`). Use AOMI_APP / --app, AOMI_MODEL / --model, AOMI_CHAIN_ID / --chain, CHAIN_RPC_URL / --rpc-url, optional --secret NAME=value ingestion, and AOMI_STATE_DIR for local session storage."
|
|
10
11
|
license: MIT
|
|
11
12
|
allowed-tools: Bash
|
|
12
13
|
metadata:
|
|
13
14
|
author: aomi-labs
|
|
14
|
-
version: "0.
|
|
15
|
+
version: "0.5"
|
|
15
16
|
---
|
|
16
17
|
|
|
17
18
|
# Aomi Transact
|
|
@@ -26,12 +27,14 @@ backend. Local session data lives under `AOMI_STATE_DIR` or `~/.aomi`.
|
|
|
26
27
|
- The user wants balances, prices, routes, quotes, or transaction status.
|
|
27
28
|
- The user wants to build, confirm, sign, or broadcast wallet requests.
|
|
28
29
|
- The user wants to inspect or switch apps, models, chains, or sessions.
|
|
30
|
+
- The user wants to inject API keys or other backend secrets for the current session.
|
|
29
31
|
|
|
30
32
|
## Hard Rules
|
|
31
33
|
|
|
32
34
|
- Never print secrets verbatim in normal status, preflight, or confirmation output.
|
|
33
35
|
- Treat `PRIVATE_KEY`, `AOMI_API_KEY`, `ALCHEMY_API_KEY`, `PIMLICO_API_KEY`, and private RPC URLs as secrets.
|
|
34
36
|
- If the user provides a private key or API key, do not repeat it back unless they explicitly ask for that exact value to be reformatted.
|
|
37
|
+
- Prefer `aomi --secret NAME=value ...` over stuffing provider API keys into normal chat text.
|
|
35
38
|
- Do not sign anything unless the CLI has actually queued a wallet request and you can identify its `tx-N` ID.
|
|
36
39
|
- If `PRIVATE_KEY` is set in the environment, do not also pass `--private-key` unless you intentionally want to override the environment value.
|
|
37
40
|
- `--public-key` must match the address derived from the signing key. If they differ, `aomi sign` will update the session to the signer address.
|
|
@@ -45,6 +48,7 @@ backend. Local session data lives under `AOMI_STATE_DIR` or `~/.aomi`.
|
|
|
45
48
|
Run this once at the start of the session:
|
|
46
49
|
|
|
47
50
|
```bash
|
|
51
|
+
aomi --version
|
|
48
52
|
aomi status 2>/dev/null || echo "no session"
|
|
49
53
|
```
|
|
50
54
|
|
|
@@ -75,6 +79,7 @@ aomi tx
|
|
|
75
79
|
aomi log
|
|
76
80
|
aomi status
|
|
77
81
|
aomi events
|
|
82
|
+
aomi --version
|
|
78
83
|
aomi app list
|
|
79
84
|
aomi app current
|
|
80
85
|
aomi model list
|
|
@@ -89,8 +94,29 @@ Notes:
|
|
|
89
94
|
- Quote the chat message.
|
|
90
95
|
- Use `--verbose` when debugging tool calls or streaming behavior.
|
|
91
96
|
- Pass `--public-key` on the first wallet-aware chat if the backend needs the user's address.
|
|
97
|
+
- Use `aomi secret list` to inspect configured secret handles for the active session.
|
|
92
98
|
- `aomi close` wipes the active local session pointer and starts a fresh thread next time.
|
|
93
99
|
|
|
100
|
+
### Secret Ingestion
|
|
101
|
+
|
|
102
|
+
Use this when the backend or selected app needs API keys, provider tokens, or
|
|
103
|
+
other named secrets for the current session:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
aomi --secret ALCHEMY_API_KEY=sk_live_123
|
|
107
|
+
aomi --secret ALCHEMY_API_KEY=sk_live_123 chat "simulate a swap on Base"
|
|
108
|
+
aomi secret list
|
|
109
|
+
aomi secret clear
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Important behavior:
|
|
113
|
+
|
|
114
|
+
- `aomi --secret NAME=value` with no command ingests secrets into the active session and exits.
|
|
115
|
+
- `aomi --secret NAME=value chat "..."` ingests first, then runs the command.
|
|
116
|
+
- `aomi secret list` prints secret handle names, not raw values.
|
|
117
|
+
- `aomi secret clear` removes all secrets for the active session.
|
|
118
|
+
- Do not combine `--secret` with `aomi secret clear`.
|
|
119
|
+
|
|
94
120
|
### Building Wallet Requests
|
|
95
121
|
|
|
96
122
|
Use the first chat turn to give the agent the task and, if relevant, the wallet
|
|
@@ -203,12 +229,16 @@ aomi tx
|
|
|
203
229
|
aomi log
|
|
204
230
|
aomi status
|
|
205
231
|
aomi events
|
|
232
|
+
aomi secret list
|
|
233
|
+
aomi secret clear
|
|
206
234
|
```
|
|
207
235
|
|
|
208
236
|
- `aomi tx` inspects pending and signed requests.
|
|
209
237
|
- `aomi log` replays conversation and tool output.
|
|
210
238
|
- `aomi status` shows the current session summary.
|
|
211
239
|
- `aomi events` shows raw backend system events.
|
|
240
|
+
- `aomi secret list` shows configured secret handles for the active session.
|
|
241
|
+
- `aomi secret clear` removes all configured secrets for the active session.
|
|
212
242
|
|
|
213
243
|
### App And Model Commands
|
|
214
244
|
|
|
@@ -253,10 +283,10 @@ aomi close
|
|
|
253
283
|
|
|
254
284
|
### AA Providers
|
|
255
285
|
|
|
256
|
-
| Provider | Flag
|
|
257
|
-
|
|
258
|
-
| Alchemy
|
|
259
|
-
| Pimlico
|
|
286
|
+
| Provider | Flag | Env Var | Notes |
|
|
287
|
+
| -------- | ----------------------- | ----------------- | -------------------------------- |
|
|
288
|
+
| Alchemy | `--aa-provider alchemy` | `ALCHEMY_API_KEY` | Supports sponsorship, 4337, 7702 |
|
|
289
|
+
| Pimlico | `--aa-provider pimlico` | `PIMLICO_API_KEY` | Supports 4337 and 7702 |
|
|
260
290
|
|
|
261
291
|
Provider selection rules:
|
|
262
292
|
|
|
@@ -266,20 +296,20 @@ Provider selection rules:
|
|
|
266
296
|
|
|
267
297
|
### AA Modes
|
|
268
298
|
|
|
269
|
-
| Mode
|
|
270
|
-
|
|
299
|
+
| Mode | Flag | Meaning |
|
|
300
|
+
| ------ | ---------------- | -------------------------------- |
|
|
271
301
|
| `4337` | `--aa-mode 4337` | Bundler-based smart account flow |
|
|
272
|
-
| `7702` | `--aa-mode 7702` | Delegated execution flow
|
|
302
|
+
| `7702` | `--aa-mode 7702` | Delegated execution flow |
|
|
273
303
|
|
|
274
304
|
### Default Chain Modes
|
|
275
305
|
|
|
276
|
-
| Chain
|
|
277
|
-
|
|
278
|
-
| Ethereum | 1
|
|
279
|
-
| Polygon
|
|
280
|
-
| Arbitrum | 42161 | 4337
|
|
281
|
-
| Base
|
|
282
|
-
| Optimism | 10
|
|
306
|
+
| Chain | ID | Default AA Mode |
|
|
307
|
+
| -------- | ----- | --------------- |
|
|
308
|
+
| Ethereum | 1 | 7702 |
|
|
309
|
+
| Polygon | 137 | 4337 |
|
|
310
|
+
| Arbitrum | 42161 | 4337 |
|
|
311
|
+
| Base | 8453 | 4337 |
|
|
312
|
+
| Optimism | 10 | 4337 |
|
|
283
313
|
|
|
284
314
|
### Sponsorship
|
|
285
315
|
|
|
@@ -299,14 +329,14 @@ Default signing behavior for Alchemy:
|
|
|
299
329
|
|
|
300
330
|
### Supported Chains
|
|
301
331
|
|
|
302
|
-
| Chain
|
|
303
|
-
|
|
304
|
-
| Ethereum
|
|
305
|
-
| Polygon
|
|
306
|
-
| Arbitrum One | 42161
|
|
307
|
-
| Base
|
|
308
|
-
| Optimism
|
|
309
|
-
| Sepolia
|
|
332
|
+
| Chain | ID |
|
|
333
|
+
| ------------ | -------- |
|
|
334
|
+
| Ethereum | 1 |
|
|
335
|
+
| Polygon | 137 |
|
|
336
|
+
| Arbitrum One | 42161 |
|
|
337
|
+
| Base | 8453 |
|
|
338
|
+
| Optimism | 10 |
|
|
339
|
+
| Sepolia | 11155111 |
|
|
310
340
|
|
|
311
341
|
### RPC Guidance By Chain
|
|
312
342
|
|
|
@@ -331,42 +361,42 @@ Practical rule:
|
|
|
331
361
|
|
|
332
362
|
All config can be passed as flags. Flags override environment variables.
|
|
333
363
|
|
|
334
|
-
| Flag
|
|
335
|
-
|
|
336
|
-
| `--backend-url` | `AOMI_BASE_URL`
|
|
337
|
-
| `--api-key`
|
|
338
|
-
| `--app`
|
|
339
|
-
| `--model`
|
|
340
|
-
| `--public-key`
|
|
341
|
-
| `--private-key` | `PRIVATE_KEY`
|
|
342
|
-
| `--rpc-url`
|
|
343
|
-
| `--chain`
|
|
344
|
-
| `--aa-provider` | `AOMI_AA_PROVIDER` | auto
|
|
345
|
-
| `--aa-mode`
|
|
364
|
+
| Flag | Env Var | Default | Purpose |
|
|
365
|
+
| --------------- | ------------------ | ---------------------- | --------------------------------------- |
|
|
366
|
+
| `--backend-url` | `AOMI_BASE_URL` | `https://api.aomi.dev` | Backend URL |
|
|
367
|
+
| `--api-key` | `AOMI_API_KEY` | none | API key for non-default apps |
|
|
368
|
+
| `--app` | `AOMI_APP` | `default` | Backend app |
|
|
369
|
+
| `--model` | `AOMI_MODEL` | backend default | Session model |
|
|
370
|
+
| `--public-key` | `AOMI_PUBLIC_KEY` | none | Wallet address for chat/session context |
|
|
371
|
+
| `--private-key` | `PRIVATE_KEY` | none | Signing key for `aomi sign` |
|
|
372
|
+
| `--rpc-url` | `CHAIN_RPC_URL` | chain RPC default | RPC override for signing |
|
|
373
|
+
| `--chain` | `AOMI_CHAIN_ID` | `1` | Active wallet chain |
|
|
374
|
+
| `--aa-provider` | `AOMI_AA_PROVIDER` | auto | AA provider override |
|
|
375
|
+
| `--aa-mode` | `AOMI_AA_MODE` | chain default | AA mode override |
|
|
346
376
|
|
|
347
377
|
### AA Provider Credentials
|
|
348
378
|
|
|
349
|
-
| Env Var
|
|
350
|
-
|
|
351
|
-
| `ALCHEMY_API_KEY`
|
|
379
|
+
| Env Var | Purpose |
|
|
380
|
+
| ----------------------- | ----------------------------------- |
|
|
381
|
+
| `ALCHEMY_API_KEY` | Enables Alchemy AA |
|
|
352
382
|
| `ALCHEMY_GAS_POLICY_ID` | Optional Alchemy sponsorship policy |
|
|
353
|
-
| `PIMLICO_API_KEY`
|
|
383
|
+
| `PIMLICO_API_KEY` | Enables Pimlico AA |
|
|
354
384
|
|
|
355
385
|
`ALCHEMY_API_KEY` can also be used to construct chain-specific signing RPCs:
|
|
356
386
|
|
|
357
|
-
| Chain
|
|
358
|
-
|
|
359
|
-
| Ethereum | `https://eth-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>`
|
|
360
|
-
| Polygon
|
|
361
|
-
| Arbitrum | `https://arb-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>`
|
|
362
|
-
| Base
|
|
363
|
-
| Optimism | `https://opt-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>`
|
|
364
|
-
| Sepolia
|
|
387
|
+
| Chain | Example Alchemy RPC |
|
|
388
|
+
| -------- | ------------------------------------------------------------ |
|
|
389
|
+
| Ethereum | `https://eth-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
390
|
+
| Polygon | `https://polygon-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
391
|
+
| Arbitrum | `https://arb-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
392
|
+
| Base | `https://base-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
393
|
+
| Optimism | `https://opt-mainnet.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
394
|
+
| Sepolia | `https://eth-sepolia.g.alchemy.com/v2/<ALCHEMY_API_KEY>` |
|
|
365
395
|
|
|
366
396
|
### Storage
|
|
367
397
|
|
|
368
|
-
| Env Var
|
|
369
|
-
|
|
398
|
+
| Env Var | Default | Purpose |
|
|
399
|
+
| ---------------- | --------- | -------------------------------------- |
|
|
370
400
|
| `AOMI_STATE_DIR` | `~/.aomi` | Root directory for local session state |
|
|
371
401
|
|
|
372
402
|
Storage layout by default:
|