@agentlayer.tech/wallet 0.1.91 → 0.1.92
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/.openclaw/extensions/agent-wallet/openclaw.plugin.json +1 -1
- package/.openclaw/extensions/agent-wallet/package.json +1 -1
- package/CHANGELOG.md +21 -0
- package/README.md +86 -490
- package/VERSION +1 -1
- package/agent-wallet/agent_wallet/__init__.py +1 -1
- package/agent-wallet/agent_wallet/boot_key_migration.py +10 -21
- package/agent-wallet/agent_wallet/config.py +20 -0
- package/agent-wallet/agent_wallet/evm_user_wallets.py +176 -25
- package/agent-wallet/agent_wallet/keystore.py +112 -17
- package/agent-wallet/openclaw.plugin.json +1 -1
- package/agent-wallet/pyproject.toml +1 -1
- package/bin/lib/evm-daemon.mjs +375 -0
- package/bin/openclaw-agent-wallet.mjs +7 -0
- package/claude-code/plugins/agent-wallet/.claude-plugin/plugin.json +1 -1
- package/codex/plugins/agent-wallet/.codex-plugin/plugin.json +1 -1
- package/hermes/plugins/agent_wallet/plugin.yaml +1 -1
- package/package.json +2 -2
- package/wdk-btc-wallet/package.json +1 -1
- package/wdk-evm-wallet/package.json +3 -2
- package/wdk-evm-wallet/src/server.js +24 -3
- package/wdk-evm-wallet/src/shutdown.js +63 -0
package/README.md
CHANGED
|
@@ -1,577 +1,173 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
[](https://www.npmjs.com/package/@agentlayer.tech/wallet)
|
|
5
4
|
[](https://www.npmjs.com/package/@agentlayer.tech/wallet)
|
|
6
5
|
[](https://nodejs.org/)
|
|
7
6
|
[](https://docs.agent-layer.tech/)
|
|
8
7
|
|
|
9
|
-
Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx @agentlayer.tech/wallet install --yes
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
The installer detects OpenClaw, Codex, Claude Code, and Hermes, installs the
|
|
16
|
-
shared local runtime once, and connects every detected host. Without `--yes`,
|
|
17
|
-
an interactive terminal asks about each detected host.
|
|
18
|
-
|
|
19
|
-
To choose hosts explicitly:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npx @agentlayer.tech/wallet install --yes --hosts codex,claude-code
|
|
23
|
-
npx @agentlayer.tech/wallet install --yes --hosts detected --exclude hermes
|
|
24
|
-
npx @agentlayer.tech/wallet install --yes --runtime-only
|
|
25
|
-
npx @agentlayer.tech/wallet detect --json
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
The legacy `wallet codex install`, `wallet claude-code install`, and
|
|
29
|
-
`wallet hermes install` commands remain supported as explicit repair/install
|
|
30
|
-
commands.
|
|
31
|
-
|
|
32
|
-
On a machine with an existing AgentLayer runtime, a plain `wallet install`
|
|
33
|
-
touches only already-managed hosts. To enroll a framework installed later, run
|
|
34
|
-
`wallet install --yes --hosts detected` or name it explicitly.
|
|
35
|
-
|
|
36
|
-
Or install entirely from inside the Claude Code CLI, via the plugin marketplace
|
|
37
|
-
(no terminal/npx needed) — two commands, then restart:
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
/plugin marketplace add lopushok9/Agent-Layer
|
|
41
|
-
/plugin install agent-wallet@agentlayer
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
AgentLayer is a beta local-first wallet and finance stack for agents.
|
|
45
|
-
|
|
46
|
-
The repository includes:
|
|
47
|
-
|
|
48
|
-
- `agent-wallet/` - the main wallet backend for AgentLayer
|
|
49
|
-
- `.openclaw/` - the local AgentLayer bridge layer for the OpenClaw wallet integration
|
|
50
|
-
- `hermes/` - optional Hermes Agent plugin bridge for the same wallet backend
|
|
51
|
-
- `codex/` - optional Codex plugin bridge for the same wallet backend
|
|
52
|
-
- `wdk-btc-wallet/` - the local Bitcoin wallet service
|
|
53
|
-
- `wdk-evm-wallet/` - the local EVM wallet service
|
|
54
|
-
- `provider-gateway/` - shared provider access for Solana RPC, Bags, and related finance reads
|
|
55
|
-
- `mcp-server/` - the finance and crypto MCP layer
|
|
56
|
-
|
|
57
|
-
The goal is simple:
|
|
58
|
-
|
|
59
|
-
- keep wallet secrets local
|
|
60
|
-
- let agents use constrained wallet capabilities
|
|
61
|
-
- support real onchain flows without giving agents direct key ownership
|
|
62
|
-
|
|
63
|
-
## Beta
|
|
64
|
-
|
|
65
|
-
This project is in beta.
|
|
66
|
-
|
|
67
|
-
Do not treat it as a finished production wallet stack. Test every flow before relying on it.
|
|
68
|
-
|
|
69
|
-
## Quick install
|
|
70
|
-
|
|
71
|
-
System prerequisites:
|
|
72
|
-
|
|
73
|
-
- `python3`
|
|
74
|
-
- `node` `24.x`
|
|
75
|
-
- `npm`
|
|
76
|
-
|
|
77
|
-
Install the local runtime and connect detected agent frameworks:
|
|
8
|
+
## Install
|
|
9
|
+
Run one command:
|
|
78
10
|
|
|
79
11
|
```bash
|
|
80
|
-
npx @agentlayer.tech/wallet install
|
|
12
|
+
npx --yes @agentlayer.tech/wallet@latest install
|
|
81
13
|
```
|
|
14
|
+
It works with:
|
|
82
15
|
|
|
83
|
-
|
|
16
|
+
- Codex
|
|
17
|
+
- Claude Code
|
|
18
|
+
- OpenClaw
|
|
19
|
+
- Hermes
|
|
84
20
|
|
|
85
|
-
|
|
86
|
-
openclaw plugins install clawhub:@agentlayertech/agent-wallet-plugin
|
|
87
|
-
```
|
|
21
|
+
You need:
|
|
88
22
|
|
|
89
|
-
|
|
23
|
+
- Node.js 24
|
|
24
|
+
- npm
|
|
25
|
+
- Python 3
|
|
90
26
|
|
|
91
|
-
|
|
27
|
+
AgentLayer detects the supported agent frameworks on your machine and asks
|
|
28
|
+
where you want to install the plugin.
|
|
92
29
|
|
|
93
|
-
|
|
94
|
-
npm install -g @agentlayer.tech/wallet
|
|
95
|
-
wallet install --yes
|
|
96
|
-
```
|
|
30
|
+
Restart the selected applications after installation.
|
|
97
31
|
|
|
98
|
-
|
|
32
|
+
### Install automatically
|
|
99
33
|
|
|
100
|
-
|
|
34
|
+
To install into every detected framework without questions:
|
|
101
35
|
|
|
102
36
|
```bash
|
|
103
|
-
|
|
104
|
-
~/.openclaw/agent-wallet-runtime/current # symlink → active release
|
|
37
|
+
npx --yes @agentlayer.tech/wallet@latest install --yes
|
|
105
38
|
```
|
|
106
39
|
|
|
107
|
-
|
|
108
|
-
not installed. A Codex-only or Claude-only install creates the runtime there
|
|
109
|
-
but does not create or patch `openclaw.json`.
|
|
110
|
-
|
|
111
|
-
On first install, `--yes` generates local runtime secrets. The installer stores
|
|
112
|
-
`master_key` and `approval_secret` in `~/.openclaw/sealed_keys.json`. The boot
|
|
113
|
-
key needed to unlock that sealed bundle uses `AGENT_WALLET_KEYSTORE_BACKEND=auto`
|
|
114
|
-
by default: it prefers the native OS keystore and falls back to a local `0600`
|
|
115
|
-
file only when the native backend is unavailable. On macOS this means the login
|
|
116
|
-
Keychain (`service=ai.agentlayer.wallet`, `account=boot_key`). macOS may show a
|
|
117
|
-
Keychain access or password confirmation depending on the current Keychain
|
|
118
|
-
state; approve it only when you initiated the AgentLayer install or update.
|
|
119
|
-
Existing installs keep the same boot-key value during upgrades.
|
|
120
|
-
|
|
121
|
-
Useful CLI commands (require the global install above):
|
|
40
|
+
### Choose frameworks explicitly
|
|
122
41
|
|
|
123
42
|
```bash
|
|
124
|
-
|
|
125
|
-
wallet doctor # diagnose common config problems
|
|
126
|
-
wallet detect --json # show detected and already-managed hosts
|
|
127
|
-
wallet update --yes # upgrade to the latest published version
|
|
128
|
-
wallet update --yes --dry-run # preview the upgrade without applying it
|
|
129
|
-
wallet rollback # revert to the previous release
|
|
130
|
-
wallet hermes install --yes # (re)connect Hermes to the current runtime
|
|
131
|
-
wallet codex install --yes # (re)connect Codex to the current runtime
|
|
43
|
+
npx --yes @agentlayer.tech/wallet@latest install --yes --hosts codex,claude-code
|
|
132
44
|
```
|
|
133
45
|
|
|
134
|
-
|
|
135
|
-
`releases/<version>`, and flips the `current` symlink. Updates repair only hosts
|
|
136
|
-
already recorded as AgentLayer-managed; a newly detected framework is never
|
|
137
|
-
silently enrolled during update. Python and Node dependency snapshots are
|
|
138
|
-
reused when the dependency fingerprint has not changed, so subsequent updates
|
|
139
|
-
are fast. All frameworks that read from `current/` (Claude Code, Codex, Hermes)
|
|
140
|
-
pick up the new code automatically on their next session start; OpenClaw
|
|
141
|
-
requires a gateway restart to reload its TypeScript extension.
|
|
142
|
-
|
|
143
|
-
## Native OpenClaw plugin installs
|
|
144
|
-
|
|
145
|
-
Use ClawHub when you want the plugin installed through OpenClaw:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
openclaw plugins install clawhub:@agentlayertech/agent-wallet-plugin
|
|
149
|
-
```
|
|
46
|
+
Supported host names are:
|
|
150
47
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
The `agent-wallet` ClawHub plugin checks the standard runtime path at:
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
~/.openclaw/agent-wallet-runtime/current/agent-wallet
|
|
48
|
+
```text
|
|
49
|
+
codex
|
|
50
|
+
claude-code
|
|
51
|
+
openclaw
|
|
52
|
+
hermes
|
|
161
53
|
```
|
|
162
54
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
Install from a local clone:
|
|
55
|
+
To see what AgentLayer detects:
|
|
166
56
|
|
|
167
57
|
```bash
|
|
168
|
-
|
|
58
|
+
npx --yes @agentlayer.tech/wallet@latest detect --json
|
|
169
59
|
```
|
|
170
60
|
|
|
171
|
-
##
|
|
61
|
+
## Update
|
|
172
62
|
|
|
173
|
-
If
|
|
63
|
+
If the `wallet` command is available:
|
|
174
64
|
|
|
175
65
|
```bash
|
|
176
|
-
wallet update --yes --dry-run
|
|
177
66
|
wallet update --yes
|
|
178
67
|
```
|
|
179
68
|
|
|
180
|
-
If
|
|
69
|
+
If the CLI is missing or outdated:
|
|
181
70
|
|
|
182
71
|
```bash
|
|
183
|
-
npx --yes @agentlayer.tech/wallet@latest update --yes --dry-run
|
|
184
72
|
npx --yes @agentlayer.tech/wallet@latest update --yes
|
|
185
73
|
```
|
|
186
74
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
npx --yes @agentlayer.tech/wallet@latest status --verbose
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
This flow keeps wallet files and `sealed_keys.json` in place, upgrades the runtime under `~/.openclaw/agent-wallet-runtime/releases/<version>`, and reuses shared Python and Node dependency snapshots when possible.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
## Wallet capabilities through external services
|
|
197
|
-
|
|
198
|
-
AgentLayer keeps keys, approvals, and signing local, but the wallet can still operate through a set of registered provider-backed tools. These tools are exposed through the OpenClaw wallet plugin as explicit service integrations rather than raw shell access, config editing, or backend switching.
|
|
199
|
-
|
|
200
|
-
### x402 paid APIs
|
|
201
|
-
|
|
202
|
-
The x402 bundle turns the wallet into a buyer for metered APIs and paid HTTP endpoints:
|
|
203
|
-
|
|
204
|
-
- `x402_search_services` - search x402-paid services through discovery providers such as CDP Bazaar and Agentic Market without spending funds.
|
|
205
|
-
- `x402_get_service_details` - resolve one discovered service or resource into a normalized detail payload before attempting payment.
|
|
206
|
-
- `x402_preview_request` - make an unpaid request, detect `402 Payment Required`, and summarize payment terms and supported payment options.
|
|
207
|
-
- `x402_pay_request` - prepare or execute the paid retry through the active wallet backend. The current flow executes the Solana exact-buyer path and keeps EVM as prepare-only.
|
|
208
|
-
|
|
209
|
-
This gives the wallet a direct bridge from service discovery to paid API consumption while preserving approval-token checks before execution.
|
|
210
|
-
|
|
211
|
-
### LI.FI cross-chain routing
|
|
212
|
-
|
|
213
|
-
The LI.FI bundle covers discovery, quote inspection, transfer tracking, and routed execution across Solana, Ethereum, and Base:
|
|
214
|
-
|
|
215
|
-
- `get_lifi_supported_chains` - list the chains currently allowed for LI.FI routing in the wallet surface.
|
|
216
|
-
- `get_lifi_quote` - fetch a read-only cross-chain quote before any execution planning.
|
|
217
|
-
- `get_lifi_transfer_status` - inspect a routed transfer by transaction hash or LI.FI step id.
|
|
218
|
-
- `swap_solana_lifi_cross_chain_tokens` - preview, prepare, or execute a Solana-origin cross-chain route into Ethereum or Base.
|
|
219
|
-
- `swap_evm_lifi_cross_chain_tokens` - preview, prepare, or execute an EVM-origin cross-chain route across Ethereum, Base, and Solana when LI.FI returns a route.
|
|
220
|
-
|
|
221
|
-
### Jupiter trading and yield
|
|
222
|
-
|
|
223
|
-
On Solana, Jupiter-backed tools cover market pricing, swaps, and Jupiter Earn vault flows:
|
|
224
|
-
|
|
225
|
-
- `get_solana_token_prices` - fetch current Solana token pricing through Jupiter.
|
|
226
|
-
- `swap_solana_tokens` - preview, prepare, or execute a Jupiter-routed Solana token swap.
|
|
227
|
-
- `get_jupiter_earn_tokens` - list Jupiter Earn vault assets currently supported on mainnet.
|
|
228
|
-
- `get_jupiter_earn_positions` - inspect wallet positions in Jupiter Earn vaults.
|
|
229
|
-
- `get_jupiter_earn_earnings` - fetch earnings for one or more Jupiter Earn positions.
|
|
230
|
-
- `jupiter_earn_deposit` - preview, prepare, or execute a Jupiter Earn deposit.
|
|
231
|
-
- `jupiter_earn_withdraw` - preview, prepare, or execute a Jupiter Earn withdrawal.
|
|
232
|
-
|
|
233
|
-
### Houdini private payouts
|
|
234
|
-
|
|
235
|
-
For privacy-preserving Solana payout flows, the wallet exposes a Houdini-backed bundle:
|
|
236
|
-
|
|
237
|
-
- `swap_solana_privately` - create a preview or approved private payout through Houdini routing. The current MVP supports same-token flows such as `SOL -> SOL` and `USDC -> USDC`.
|
|
238
|
-
- `continue_solana_private_swap` - continue a previously created Houdini order and submit the local funding transfer to the returned deposit address.
|
|
239
|
-
- `get_solana_private_swap_status` - check Houdini status for an existing private payout.
|
|
240
|
-
- `list_pending_solana_private_swaps` - list cached pending Houdini orders for the current OpenClaw session.
|
|
241
|
-
|
|
242
|
-
This flow is intentionally optimized for `preview -> execute` rather than adding a no-op prepare step.
|
|
243
|
-
|
|
244
|
-
### Kamino lending
|
|
245
|
-
|
|
246
|
-
Kamino integration gives the wallet a structured Solana lending surface:
|
|
247
|
-
|
|
248
|
-
- `get_kamino_lend_markets` - list Kamino lending markets available on Solana mainnet.
|
|
249
|
-
- `get_kamino_lend_market_reserves` - inspect reserve metrics for one Kamino market.
|
|
250
|
-
- `get_kamino_lend_user_obligations` - inspect the wallet's obligations inside a Kamino market.
|
|
251
|
-
- `get_kamino_lend_user_rewards` - fetch the wallet's Kamino rewards summary.
|
|
252
|
-
- `get_kamino_open_positions` - aggregate all open Kamino positions across markets with loan details, reserve APYs, and rewards.
|
|
253
|
-
- `kamino_lend_deposit` - preview, prepare, or execute a lending deposit.
|
|
254
|
-
- `kamino_lend_withdraw` - preview, prepare, or execute a lending withdrawal.
|
|
255
|
-
- `kamino_lend_borrow` - preview, prepare, or execute a borrow.
|
|
256
|
-
- `kamino_lend_repay` - preview, prepare, or execute a repay.
|
|
257
|
-
|
|
258
|
-
### Flash Trade perps
|
|
259
|
-
|
|
260
|
-
Flash Trade integration adds a managed perpetuals surface on Solana mainnet:
|
|
261
|
-
|
|
262
|
-
- `get_flash_trade_markets` - list currently available Flash Trade markets.
|
|
263
|
-
- `get_flash_trade_positions` - inspect the wallet's open Flash Trade positions.
|
|
264
|
-
- `flash_trade_open_position` - preview, prepare, or execute a perp position open.
|
|
265
|
-
- `flash_trade_close_position` - preview, prepare, or execute a perp position close.
|
|
266
|
-
|
|
267
|
-
### Bags launch
|
|
268
|
-
|
|
269
|
-
Bags-backed tools currently cover token launch:
|
|
270
|
-
|
|
271
|
-
- `launch_bags_token` - preview, prepare, or execute a Bags token launch with fee-share configuration.
|
|
272
|
-
|
|
273
|
-
### EVM DeFi integrations
|
|
274
|
-
|
|
275
|
-
The EVM wallet surface includes named DeFi integrations on `ethereum` and `base`, without exposing arbitrary calldata execution.
|
|
276
|
-
|
|
277
|
-
Velora swap routing:
|
|
278
|
-
|
|
279
|
-
- `get_evm_swap_quote` - fetch a read-only EVM swap quote.
|
|
280
|
-
- `swap_evm_tokens` - preview, prepare, or execute a routed EVM token swap.
|
|
281
|
-
|
|
282
|
-
Aave V3:
|
|
283
|
-
|
|
284
|
-
- `get_evm_aave_account` - inspect the wallet's Aave account state.
|
|
285
|
-
- `get_evm_aave_reserves` - fetch reserve data for supported Aave markets.
|
|
286
|
-
- `get_evm_aave_positions` - inspect the wallet's open Aave positions.
|
|
287
|
-
- `manage_evm_aave_position` - preview, prepare, or execute Aave position changes through the managed wallet flow.
|
|
288
|
-
|
|
289
|
-
Lido:
|
|
290
|
-
|
|
291
|
-
- `get_evm_lido_overview` - fetch Lido protocol overview data relevant to the wallet surface.
|
|
292
|
-
- `get_evm_lido_positions` - inspect the wallet's Lido positions.
|
|
293
|
-
- `get_evm_lido_withdrawal_requests` - inspect outstanding Lido withdrawal requests.
|
|
294
|
-
- `manage_evm_lido_position` - preview, prepare, or execute a Lido staking position change.
|
|
295
|
-
- `manage_evm_lido_withdrawal` - preview, prepare, or execute a Lido withdrawal management action.
|
|
296
|
-
|
|
297
|
-
Across these service-backed flows, read operations remain directly callable, while write operations stay behind preview, explicit intent, and host-issued approval tokens before execution.
|
|
298
|
-
|
|
299
|
-
For the default Solana flow, run the installer directly:
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
npx @agentlayer.tech/wallet install --yes
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
That installs the runtime, connects each detected framework, generates local
|
|
306
|
-
runtime secrets when missing, and creates the first encrypted per-user Solana
|
|
307
|
-
mainnet wallet. `openclaw.json` is patched only when OpenClaw is selected. The
|
|
308
|
-
agent receives the public address and guarded wallet tools, not the private key.
|
|
309
|
-
|
|
310
|
-
BTC and EVM are separate host-side setup flows.
|
|
311
|
-
|
|
312
|
-
Bitcoin:
|
|
313
|
-
|
|
314
|
-
```bash
|
|
315
|
-
sh agent-wallet/scripts/setup_btc_wallet.sh
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
EVM:
|
|
319
|
-
|
|
320
|
-
```bash
|
|
321
|
-
sh agent-wallet/scripts/setup_evm_wallet.sh
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
That host-side bootstrap can auto-start the local `wdk-evm-wallet` service, create or unlock the vault wallet, bind both `base` and `ethereum` for the same local user, and patch OpenClaw config to `backend=wdk_evm_local`.
|
|
325
|
-
|
|
326
|
-
Advanced operators can still supply their own runtime provisioning secrets
|
|
327
|
-
instead of using `--yes` auto-generation:
|
|
328
|
-
|
|
329
|
-
```bash
|
|
330
|
-
export AGENT_WALLET_BOOT_KEY="$(openssl rand -base64 32)"
|
|
331
|
-
export AGENT_WALLET_MASTER_KEY="$(openssl rand -base64 32)"
|
|
332
|
-
export AGENT_WALLET_APPROVAL_SECRET="$(openssl rand -base64 32)"
|
|
333
|
-
npx @agentlayer.tech/wallet install --no-auto-secrets
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
If you prefer Python instead of `openssl`:
|
|
75
|
+
An update refreshes the shared runtime and the frameworks already connected to
|
|
76
|
+
AgentLayer. It does not add a newly installed framework without your choice.
|
|
337
77
|
|
|
338
|
-
|
|
339
|
-
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
Run it three times and assign the outputs to:
|
|
343
|
-
|
|
344
|
-
- `AGENT_WALLET_BOOT_KEY`
|
|
345
|
-
- `AGENT_WALLET_MASTER_KEY`
|
|
346
|
-
- `AGENT_WALLET_APPROVAL_SECRET`
|
|
347
|
-
|
|
348
|
-
These variables are provisioning inputs only. Runtime secrets are sealed into
|
|
349
|
-
`~/.openclaw/sealed_keys.json`; normal runtime execution should use
|
|
350
|
-
`AGENT_WALLET_BOOT_KEY` or `AGENT_WALLET_BOOT_KEY_FILE`, not direct
|
|
351
|
-
`AGENT_WALLET_MASTER_KEY` / `AGENT_WALLET_APPROVAL_SECRET` env loading.
|
|
352
|
-
|
|
353
|
-
## Connect the MCP server
|
|
354
|
-
|
|
355
|
-
```json
|
|
356
|
-
{
|
|
357
|
-
"mcpServers": {
|
|
358
|
-
"agent-layer": {
|
|
359
|
-
"url": "https://agent-layer-production-852f.up.railway.app/mcp"
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
## Connect Hermes Agent
|
|
366
|
-
|
|
367
|
-
OpenClaw remains the primary local environment, but the repo also ships an optional Hermes Agent bridge at:
|
|
78
|
+
To update only selected frameworks:
|
|
368
79
|
|
|
369
80
|
```bash
|
|
370
|
-
|
|
81
|
+
npx --yes @agentlayer.tech/wallet@latest update --yes --hosts codex,claude-code
|
|
371
82
|
```
|
|
372
83
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
- `agent_wallet_tools`
|
|
376
|
-
- `agent_wallet_invoke`
|
|
377
|
-
- `agent_wallet_approve`
|
|
378
|
-
- `agent_wallet_evm_status`
|
|
379
|
-
- `agent_wallet_evm_setup`
|
|
380
|
-
|
|
381
|
-
Install it by symlinking the plugin directory into Hermes:
|
|
84
|
+
Preview an update without applying it:
|
|
382
85
|
|
|
383
86
|
```bash
|
|
384
|
-
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
That command installs the Hermes plugin, runs `hermes plugins enable agent-wallet`, writes non-secret runtime paths into `~/.hermes/.env`, and points Hermes at a local boot-key file. Secrets stay in the protected OpenClaw runtime paths, especially `~/.openclaw/sealed_keys.json`; do not put wallet secrets into Hermes tool config.
|
|
388
|
-
|
|
389
|
-
## What you get after install
|
|
390
|
-
|
|
391
|
-
If you install through npm, the runtime is extracted under:
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
~/.openclaw/agent-wallet-runtime/current
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
The installer then:
|
|
398
|
-
|
|
399
|
-
- creates `agent-wallet/.env` from `agent-wallet/.env.example` if it does not exist
|
|
400
|
-
- creates `agent-wallet/.runtime-venv` and installs the Python backend
|
|
401
|
-
- installs Node dependencies for `wdk-btc-wallet`, `wdk-evm-wallet`, and `flash-sdk-bridge`
|
|
402
|
-
- if the required secrets are already present, writes or updates `~/.openclaw/sealed_keys.json`
|
|
403
|
-
- detects OpenClaw, Codex, Claude Code, and Hermes before changing host config
|
|
404
|
-
- connects the selected hosts to `agent-wallet-runtime/current`
|
|
405
|
-
- creates or patches `~/.openclaw/openclaw.json` only when OpenClaw is selected
|
|
406
|
-
- records non-secret ownership metadata so later updates repair only managed hosts
|
|
407
|
-
|
|
408
|
-
When the installer reaches the final config step, the default plugin config is:
|
|
409
|
-
|
|
410
|
-
- `backend=solana_local`
|
|
411
|
-
- `network=mainnet`
|
|
412
|
-
|
|
413
|
-
For a fresh Solana install, `wallet install --yes` also provisions the first local mainnet
|
|
414
|
-
wallet for the configured local `userId`. The wallet secret stays encrypted under
|
|
415
|
-
`~/.openclaw/users/.../wallets/`; the agent-facing surface only receives the public
|
|
416
|
-
address and guarded wallet tools.
|
|
417
|
-
|
|
418
|
-
## What is not done automatically
|
|
419
|
-
|
|
420
|
-
The installer does not:
|
|
421
|
-
|
|
422
|
-
- create a BTC wallet
|
|
423
|
-
- unlock a BTC wallet
|
|
424
|
-
- create an EVM wallet
|
|
425
|
-
- unlock an EVM wallet
|
|
426
|
-
- start the local `wdk-btc-wallet` service
|
|
427
|
-
- start the local `wdk-evm-wallet` service
|
|
428
|
-
- expose seed phrases to the agent
|
|
429
|
-
- install `python3`, `node`, or `npm` for you
|
|
430
|
-
|
|
431
|
-
For existing Solana installs, the runtime keeps the current identity precedence:
|
|
432
|
-
|
|
433
|
-
- read-only mode: `SOLANA_AGENT_PUBLIC_KEY`
|
|
434
|
-
- signing mode: a sealed `private_key` or `SOLANA_AGENT_KEYPAIR_PATH`
|
|
435
|
-
- otherwise: the encrypted per-user local wallet created by onboarding
|
|
436
|
-
|
|
437
|
-
Optional private Solana payout routing is also available through Houdini. To enable it, add the Houdini partner credentials to the wallet runtime:
|
|
438
|
-
|
|
439
|
-
- `HOUDINI_API_KEY`
|
|
440
|
-
- `HOUDINI_API_SECRET`
|
|
441
|
-
- `HOUDINI_USER_IP`
|
|
442
|
-
|
|
443
|
-
The first supported flow is intentionally narrow: same-token private Solana payouts (`SOL->SOL` and `USDC->USDC`) through the existing preview/prepare/execute safety model. The runtime binds execute to the approved Houdini `quoteId`, creates a single private exchange, and then sends the exact deposit locally from the wallet. That removes the extra Solana batch-tx relay step and keeps signing local.
|
|
444
|
-
|
|
445
|
-
For production, prefer placing the Houdini partner secrets on `provider-gateway` and exposing only the authenticated Houdini relay endpoints to `agent-wallet`. That keeps `HOUDINI_API_KEY` and `HOUDINI_API_SECRET` out of end-user runtimes while preserving local signing.
|
|
446
|
-
|
|
447
|
-
## BTC setup
|
|
448
|
-
|
|
449
|
-
The BTC path already has a one-command host bootstrap wrapper:
|
|
450
|
-
|
|
451
|
-
```bash
|
|
452
|
-
sh agent-wallet/scripts/setup_btc_wallet.sh
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
That flow:
|
|
456
|
-
|
|
457
|
-
- prompts for `user-id`
|
|
458
|
-
- prompts for `mainnet`, `testnet`, or `regtest`
|
|
459
|
-
- defaults to `http://127.0.0.1:8080`
|
|
460
|
-
- can auto-start `wdk-btc-wallet/run-local.sh` if the local service is not already healthy
|
|
461
|
-
- creates or unlocks the local BTC wallet binding
|
|
462
|
-
- patches OpenClaw config to `backend=wdk_btc_local`
|
|
463
|
-
|
|
464
|
-
BTC setup only supports localhost service URLs. The local BTC service is protected by a bearer token stored at:
|
|
465
|
-
|
|
466
|
-
```bash
|
|
467
|
-
~/.openclaw/wdk-btc-wallet/local-auth-token
|
|
87
|
+
wallet update --yes --dry-run
|
|
468
88
|
```
|
|
469
89
|
|
|
470
|
-
|
|
90
|
+
## Check the installation
|
|
471
91
|
|
|
472
92
|
```bash
|
|
473
|
-
|
|
93
|
+
wallet status
|
|
94
|
+
wallet doctor
|
|
474
95
|
```
|
|
475
96
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
The EVM runtime is installed by `setup.sh`, and the host-side onboarding now has the same one-command shape as BTC:
|
|
97
|
+
If the global CLI is not installed:
|
|
479
98
|
|
|
480
99
|
```bash
|
|
481
|
-
|
|
100
|
+
npx --yes @agentlayer.tech/wallet@latest status
|
|
101
|
+
npx --yes @agentlayer.tech/wallet@latest doctor
|
|
482
102
|
```
|
|
483
103
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
- prompts for `user-id`
|
|
487
|
-
- prompts for `ethereum`, `base`, `sepolia`, or `base-sepolia`
|
|
488
|
-
- defaults to `http://127.0.0.1:8081`
|
|
489
|
-
- can auto-start `wdk-evm-wallet/run-local.sh` if the local service is not already healthy
|
|
490
|
-
- creates or unlocks the local EVM wallet binding
|
|
491
|
-
- also binds the paired EVM network by default: `ethereum <-> base`, `sepolia <-> base-sepolia`
|
|
492
|
-
- patches OpenClaw config to `backend=wdk_evm_local`
|
|
104
|
+
After an install or update, restart the connected agent applications when
|
|
105
|
+
`wallet status` shows `restart_required: true`.
|
|
493
106
|
|
|
494
|
-
|
|
107
|
+
## Common commands
|
|
495
108
|
|
|
496
109
|
```bash
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
110
|
+
wallet detect --json
|
|
111
|
+
wallet status
|
|
112
|
+
wallet doctor
|
|
113
|
+
wallet update --yes
|
|
114
|
+
wallet rollback
|
|
502
115
|
```
|
|
503
116
|
|
|
504
|
-
|
|
117
|
+
## What AgentLayer provides
|
|
505
118
|
|
|
506
|
-
|
|
507
|
-
- the local EVM service uses a bearer token at `~/.openclaw/wdk-evm-wallet/local-auth-token`
|
|
508
|
-
- the agent-facing EVM surface is intentionally narrow: balances, fee rates, receipts, transfers, Velora swaps, Aave V3 account/reserve/position flows, and Lido staking/withdrawal flows
|
|
509
|
-
- Velora swap and Aave V3 support are currently limited to `ethereum` and `base`
|
|
510
|
-
- Lido support is currently limited to `ethereum` and exposes read-only staking APR data from Lido's public API in the overview response
|
|
119
|
+
AgentLayer connects supported agents to one local wallet runtime. The agent can:
|
|
511
120
|
|
|
512
|
-
|
|
121
|
+
- view balances and portfolio positions
|
|
122
|
+
- send and receive supported assets
|
|
123
|
+
- swap tokens
|
|
124
|
+
- use supported DeFi services
|
|
125
|
+
- access paid APIs through x402
|
|
126
|
+
- work with Solana, Ethereum, Base, and Bitcoin
|
|
513
127
|
|
|
514
|
-
|
|
128
|
+
Read operations are available directly. Operations that move funds remain
|
|
129
|
+
protected by wallet policy and approval checks.
|
|
515
130
|
|
|
516
|
-
The Solana runtime uses hardened local secrets:
|
|
517
131
|
|
|
518
|
-
|
|
519
|
-
- `master_key` and `approval_secret` should live in `~/.openclaw/sealed_keys.json`
|
|
520
|
-
- `AGENT_WALLET_MASTER_KEY` and `AGENT_WALLET_APPROVAL_SECRET` are provisioning inputs for installer/admin flows, not long-term runtime env
|
|
132
|
+
## Claude Code marketplace
|
|
521
133
|
|
|
522
|
-
|
|
134
|
+
Claude Code users can also install the plugin from its marketplace:
|
|
523
135
|
|
|
524
|
-
```
|
|
525
|
-
|
|
136
|
+
```text
|
|
137
|
+
/plugin marketplace add lopushok9/Agent-Layer
|
|
138
|
+
/plugin install agent-wallet@agentlayer
|
|
526
139
|
```
|
|
527
140
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
- a sealed `private_key` stored in `sealed_keys.json`
|
|
531
|
-
- `SOLANA_AGENT_KEYPAIR_PATH`
|
|
532
|
-
|
|
533
|
-
The default shared path already includes:
|
|
141
|
+
Restart Claude Code after installation.
|
|
534
142
|
|
|
535
|
-
|
|
536
|
-
- shared Solana RPC path unless you override it
|
|
143
|
+
## OpenClaw plugin
|
|
537
144
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
- `SOLANA_RPC_URL`
|
|
541
|
-
- `SOLANA_RPC_URLS`
|
|
542
|
-
- `ALCHEMY_API_KEY`
|
|
543
|
-
- `HELIUS_API_KEY`
|
|
544
|
-
|
|
545
|
-
The legacy global keypair auto-create flag still exists for compatibility, but normal
|
|
546
|
-
OpenClaw onboarding should use the encrypted per-user wallet path created by the installer:
|
|
145
|
+
OpenClaw users can also install the native plugin from ClawHub:
|
|
547
146
|
|
|
548
147
|
```bash
|
|
549
|
-
|
|
148
|
+
openclaw plugins install clawhub:@agentlayertech/agent-wallet-plugin
|
|
550
149
|
```
|
|
551
150
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
The core rule is:
|
|
555
|
-
|
|
556
|
-
the agent gets wallet capabilities, not wallet ownership.
|
|
151
|
+
The universal npm installer is still required to prepare the local wallet
|
|
152
|
+
runtime.
|
|
557
153
|
|
|
558
|
-
|
|
154
|
+
## Security
|
|
559
155
|
|
|
560
|
-
|
|
561
|
-
- signing stays in the wallet layer
|
|
562
|
-
- risky writes require approval
|
|
563
|
-
- BTC and EVM password-gated wallet operations remain host-side
|
|
156
|
+
The agent receives wallet capabilities, not wallet keys.
|
|
564
157
|
|
|
565
|
-
|
|
158
|
+
- Keys and signing stay on the user's machine.
|
|
159
|
+
- Wallet secrets are encrypted locally.
|
|
160
|
+
- Updates preserve existing wallets and identities.
|
|
161
|
+
- Transactions remain subject to wallet policy and approvals.
|
|
566
162
|
|
|
567
|
-
|
|
163
|
+
On macOS, AgentLayer uses the login Keychain by default. macOS may ask for
|
|
164
|
+
Keychain access during an install or update. Approve it only when you initiated
|
|
165
|
+
the AgentLayer command.
|
|
568
166
|
|
|
569
|
-
|
|
167
|
+
Keep a secure offline copy of your recovery key.
|
|
570
168
|
|
|
571
|
-
|
|
572
|
-
- fork the repo
|
|
573
|
-
- run it locally
|
|
574
|
-
- modify it for yourself
|
|
575
|
-
- open issues and send pull requests
|
|
169
|
+
## License
|
|
576
170
|
|
|
577
|
-
|
|
171
|
+
This repository is available under the PolyForm Small Business License 1.0.0.
|
|
172
|
+
Individuals, researchers, students, security reviewers, hobbyists, and eligible
|
|
173
|
+
small businesses may use and modify it under the terms of that license.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.92
|