@agentlayer.tech/wallet 0.1.43 → 0.1.47
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/.claude-plugin/marketplace.json +17 -0
- package/.openclaw/extensions/agent-wallet/index.ts +99 -0
- package/.openclaw/extensions/agent-wallet/openclaw.plugin.json +6 -1
- package/.openclaw/extensions/agent-wallet/package.json +1 -1
- package/CHANGELOG.md +79 -0
- package/README.md +16 -2
- package/VERSION +1 -1
- package/agent-wallet/agent_wallet/__init__.py +1 -1
- package/agent-wallet/agent_wallet/openclaw_adapter.py +686 -0
- package/agent-wallet/agent_wallet/openclaw_cli.py +22 -0
- package/agent-wallet/agent_wallet/providers/jupiter.py +5 -0
- package/agent-wallet/agent_wallet/providers/wdk_evm_local.py +6 -0
- package/agent-wallet/agent_wallet/telemetry.py +306 -0
- package/agent-wallet/agent_wallet/wallet_layer/base.py +79 -0
- package/agent-wallet/agent_wallet/wallet_layer/solana.py +14 -0
- package/agent-wallet/agent_wallet/wallet_layer/wdk_evm.py +404 -0
- package/agent-wallet/openclaw.plugin.json +1 -1
- package/agent-wallet/pyproject.toml +1 -1
- package/agent-wallet/scripts/install_agent_wallet.py +33 -8
- package/claude-code/plugins/agent-wallet/.claude-plugin/plugin.json +1 -1
- package/claude-code/plugins/agent-wallet/README.md +30 -1
- package/claude-code/plugins/agent-wallet/commands/wallet-setup.md +24 -0
- package/claude-code/plugins/agent-wallet/hooks/hooks.json +16 -0
- package/claude-code/plugins/agent-wallet/scripts/bootstrap_backend.sh +136 -0
- package/claude-code/plugins/agent-wallet/scripts/run_mcp.sh +6 -1
- package/codex/plugins/agent-wallet/.codex-plugin/plugin.json +1 -1
- package/codex/plugins/agent-wallet/scripts/run_mcp.sh +5 -0
- package/hermes/plugins/agent_wallet/plugin.yaml +1 -1
- package/hermes/plugins/agent_wallet/tools.py +3 -0
- package/package.json +2 -1
- package/wdk-btc-wallet/package.json +1 -1
- package/wdk-evm-wallet/README.md +31 -0
- package/wdk-evm-wallet/package-lock.json +268 -64
- package/wdk-evm-wallet/package.json +4 -1
- package/wdk-evm-wallet/src/config.js +2 -0
- package/wdk-evm-wallet/src/server.js +66 -0
- package/wdk-evm-wallet/src/wdk_evm_wallet.js +2725 -939
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentlayer",
|
|
3
|
+
"description": "AgentLayer plugins for Claude Code. Install the wallet bridge and its backend runtime without leaving the CLI.",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "AgentLayer",
|
|
6
|
+
"url": "https://github.com/lopushok9/Agent-Layer"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "agent-wallet",
|
|
11
|
+
"displayName": "Agent Wallet",
|
|
12
|
+
"description": "Bridge to the local AgentLayer wallet runtime (Solana, Bitcoin, EVM). Installs and connects the backend runtime on first use.",
|
|
13
|
+
"category": "development",
|
|
14
|
+
"source": "./claude-code/plugins/agent-wallet"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -1689,6 +1689,105 @@ const evmToolDefinitions = [
|
|
|
1689
1689
|
additionalProperties: false,
|
|
1690
1690
|
},
|
|
1691
1691
|
},
|
|
1692
|
+
{
|
|
1693
|
+
name: "get_evm_morpho_vaults",
|
|
1694
|
+
description: "Get read-only Morpho vault discovery and detail data for the configured EVM network on supported mainnet chains. When listing, results are ordered (default: largest TVL first) and can be filtered by underlying asset.",
|
|
1695
|
+
parameters: {
|
|
1696
|
+
type: "object",
|
|
1697
|
+
properties: {
|
|
1698
|
+
vault_address: { type: "string", description: "Optional explicit vault address for a single-vault lookup." },
|
|
1699
|
+
limit: { type: "integer", minimum: 1, maximum: 500 },
|
|
1700
|
+
listed_only: { type: "boolean", description: "Filter to listed vaults only. Defaults to true." },
|
|
1701
|
+
asset_address: { type: "string", description: "Optional underlying asset address filter (e.g. only USDC vaults)." },
|
|
1702
|
+
order_by: {
|
|
1703
|
+
type: "string",
|
|
1704
|
+
enum: ["TotalAssetsUsd", "TotalAssets", "TotalSupply", "Liquidity", "LiquidityUsd", "Apy", "NetApy", "Address"],
|
|
1705
|
+
description: "Sort field when listing. Defaults to TotalAssetsUsd.",
|
|
1706
|
+
},
|
|
1707
|
+
order_direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction. Defaults to desc." },
|
|
1708
|
+
network: { type: "string", enum: ["ethereum", "base"] },
|
|
1709
|
+
},
|
|
1710
|
+
additionalProperties: false,
|
|
1711
|
+
},
|
|
1712
|
+
},
|
|
1713
|
+
{
|
|
1714
|
+
name: "get_evm_morpho_markets",
|
|
1715
|
+
description: "Get read-only Morpho market discovery and detail data for the configured EVM network on supported mainnet chains. When listing, results are ordered (default: largest supply first) and can be filtered by free-text search or by collateral/loan asset.",
|
|
1716
|
+
parameters: {
|
|
1717
|
+
type: "object",
|
|
1718
|
+
properties: {
|
|
1719
|
+
market_id: { type: "string", description: "Optional explicit market id (32-byte hex) for a single-market lookup." },
|
|
1720
|
+
limit: { type: "integer", minimum: 1, maximum: 500 },
|
|
1721
|
+
listed_only: { type: "boolean", description: "Filter to listed markets only. Defaults to true." },
|
|
1722
|
+
search: { type: "string", description: "Optional free-text search over market/asset symbols (e.g. 'wstETH')." },
|
|
1723
|
+
collateral_asset_address: { type: "string", description: "Optional collateral asset address filter." },
|
|
1724
|
+
loan_asset_address: { type: "string", description: "Optional loan asset address filter." },
|
|
1725
|
+
order_by: {
|
|
1726
|
+
type: "string",
|
|
1727
|
+
enum: ["SupplyAssetsUsd", "BorrowAssetsUsd", "SupplyApy", "NetSupplyApy", "BorrowApy", "NetBorrowApy", "Utilization", "TotalLiquidityUsd", "Lltv"],
|
|
1728
|
+
description: "Sort field when listing. Defaults to SupplyAssetsUsd.",
|
|
1729
|
+
},
|
|
1730
|
+
order_direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction. Defaults to desc." },
|
|
1731
|
+
network: { type: "string", enum: ["ethereum", "base"] },
|
|
1732
|
+
},
|
|
1733
|
+
additionalProperties: false,
|
|
1734
|
+
},
|
|
1735
|
+
},
|
|
1736
|
+
{
|
|
1737
|
+
name: "get_evm_morpho_positions",
|
|
1738
|
+
description: "Get read-only Morpho vault and market positions for the configured EVM wallet on supported mainnet chains.",
|
|
1739
|
+
parameters: {
|
|
1740
|
+
type: "object",
|
|
1741
|
+
properties: {
|
|
1742
|
+
network: { type: "string", enum: ["ethereum", "base"] },
|
|
1743
|
+
},
|
|
1744
|
+
additionalProperties: false,
|
|
1745
|
+
},
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
name: "manage_evm_morpho_vault_position",
|
|
1749
|
+
description: "Preview, prepare, or execute a narrow Morpho vault operation on supported EVM mainnet networks. Supported operations are supply and withdraw. Preview or prepare first. After the user explicitly confirms the shown summary in chat, call execute; the OpenClaw plugin handles the internal execution authorization automatically.",
|
|
1750
|
+
optional: true,
|
|
1751
|
+
parameters: {
|
|
1752
|
+
type: "object",
|
|
1753
|
+
properties: {
|
|
1754
|
+
operation: { type: "string", enum: ["supply", "withdraw"] },
|
|
1755
|
+
token_address: { type: "string" },
|
|
1756
|
+
vault_address: { type: "string" },
|
|
1757
|
+
vault_preset: { type: "string" },
|
|
1758
|
+
amount_raw: { type: "string" },
|
|
1759
|
+
native_amount_raw: { type: "string" },
|
|
1760
|
+
mode: { type: "string", enum: ["preview", "prepare", "execute"] },
|
|
1761
|
+
purpose: { type: "string" },
|
|
1762
|
+
user_intent: { type: "boolean" },
|
|
1763
|
+
network: { type: "string", enum: ["ethereum", "base"] },
|
|
1764
|
+
},
|
|
1765
|
+
required: ["operation", "token_address", "mode", "purpose"],
|
|
1766
|
+
additionalProperties: false,
|
|
1767
|
+
},
|
|
1768
|
+
},
|
|
1769
|
+
{
|
|
1770
|
+
name: "manage_evm_morpho_market_position",
|
|
1771
|
+
description: "Preview, prepare, or execute a narrow Morpho market operation on supported EVM mainnet networks. Supported operations are supply_collateral, borrow, repay, and withdraw_collateral. Preview or prepare first. After the user explicitly confirms the shown summary in chat, call execute; the OpenClaw plugin handles the internal execution authorization automatically.",
|
|
1772
|
+
optional: true,
|
|
1773
|
+
parameters: {
|
|
1774
|
+
type: "object",
|
|
1775
|
+
properties: {
|
|
1776
|
+
operation: { type: "string", enum: ["supply_collateral", "borrow", "repay", "withdraw_collateral"] },
|
|
1777
|
+
token_address: { type: "string" },
|
|
1778
|
+
market_id: { type: "string" },
|
|
1779
|
+
market_preset: { type: "string" },
|
|
1780
|
+
amount_raw: { type: "string" },
|
|
1781
|
+
native_amount_raw: { type: "string" },
|
|
1782
|
+
mode: { type: "string", enum: ["preview", "prepare", "execute"] },
|
|
1783
|
+
purpose: { type: "string" },
|
|
1784
|
+
user_intent: { type: "boolean" },
|
|
1785
|
+
network: { type: "string", enum: ["ethereum", "base"] },
|
|
1786
|
+
},
|
|
1787
|
+
required: ["operation", "token_address", "mode", "purpose"],
|
|
1788
|
+
additionalProperties: false,
|
|
1789
|
+
},
|
|
1790
|
+
},
|
|
1692
1791
|
{
|
|
1693
1792
|
name: "get_evm_swap_quote",
|
|
1694
1793
|
description: "Get a read-only Velora quote for an ERC-20 or native ETH swap on supported EVM mainnet networks. This does not approve or execute a swap.",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "agent-wallet",
|
|
3
3
|
"name": "Agent Wallet",
|
|
4
4
|
"description": "Official OpenClaw plugin bridge for the agent-wallet backends, including Solana, local BTC, and local EVM.",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.47",
|
|
6
6
|
"contracts": {
|
|
7
7
|
"tools": [
|
|
8
8
|
"close_empty_token_accounts",
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"get_evm_aave_positions",
|
|
17
17
|
"get_evm_aave_reserves",
|
|
18
18
|
"get_evm_fee_rates",
|
|
19
|
+
"get_evm_morpho_markets",
|
|
20
|
+
"get_evm_morpho_positions",
|
|
21
|
+
"get_evm_morpho_vaults",
|
|
19
22
|
"get_evm_lido_overview",
|
|
20
23
|
"get_evm_lido_positions",
|
|
21
24
|
"get_evm_lido_withdrawal_requests",
|
|
@@ -45,6 +48,8 @@
|
|
|
45
48
|
"kamino_lend_withdraw",
|
|
46
49
|
"launch_bags_token",
|
|
47
50
|
"manage_evm_aave_position",
|
|
51
|
+
"manage_evm_morpho_market_position",
|
|
52
|
+
"manage_evm_morpho_vault_position",
|
|
48
53
|
"manage_evm_lido_position",
|
|
49
54
|
"manage_evm_lido_withdrawal",
|
|
50
55
|
"set_evm_network",
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,85 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## v0.1.47 - 2026-06-16
|
|
6
|
+
|
|
7
|
+
- Fixed Solana swaps of Token-2022 tokens with complex extensions (e.g. Backpack
|
|
8
|
+
xStock tokens such as SPCX, which carry `scaledUiAmountConfig`,
|
|
9
|
+
`pausableConfig`, `permanentDelegate`, and `confidentialTransferMint`) that
|
|
10
|
+
consistently failed with "Provider swap transaction simulation failed". When a
|
|
11
|
+
simulation failure is detected during `execute_swap_intent`, the next retry
|
|
12
|
+
now passes `excludeDexes=GoonFi V2` to the Jupiter lite-api quote, forcing
|
|
13
|
+
routing through a DEX that handles these extensions correctly (ZeroFi).
|
|
14
|
+
- `providers/jupiter.py`: `fetch_quote`/`_fetch_quote_direct` accept an
|
|
15
|
+
optional `exclude_dexes`, passed through as the `excludeDexes` query param.
|
|
16
|
+
- `wallet_layer/solana.py`: `preview_swap` propagates `exclude_dexes` into the
|
|
17
|
+
metis fallback; `execute_swap_intent` tracks a simulation-failure flag and
|
|
18
|
+
excludes `GoonFi V2` on the retry. Default behavior is unchanged (no DEX
|
|
19
|
+
exclusion unless a prior attempt failed simulation). (#14)
|
|
20
|
+
- First published release carrying the Morpho lending integration and the
|
|
21
|
+
fresh-venv install hardening previously rolled out only locally (see the
|
|
22
|
+
0.1.45 and 0.1.46 entries below).
|
|
23
|
+
|
|
24
|
+
## v0.1.46 - 2026-06-14
|
|
25
|
+
|
|
26
|
+
- Hardened the runtime install so a freshly created venv does not fail on
|
|
27
|
+
native dependencies. The venv fingerprint hashes `pyproject.toml`, whose
|
|
28
|
+
version line changes every release, so each bump builds a brand-new venv with
|
|
29
|
+
the pip that `ensurepip` bundled. That pip could resolve `cryptography` and
|
|
30
|
+
`ckzg` to versions without a prebuilt wheel and fall back to a source build
|
|
31
|
+
needing a Rust/C toolchain, failing the install on machines that lack one.
|
|
32
|
+
The installer now upgrades pip/setuptools/wheel in a new venv and runs the
|
|
33
|
+
editable install with `--prefer-binary`, keeping native deps on prebuilt
|
|
34
|
+
wheels.
|
|
35
|
+
|
|
36
|
+
## v0.1.45 - 2026-06-14
|
|
37
|
+
|
|
38
|
+
- Added a Morpho lending integration (vaults + Blue markets) on Ethereum and
|
|
39
|
+
Base, exposed across all local agent frameworks (OpenClaw, Codex,
|
|
40
|
+
Claude Code) through the shared agent-wallet adapter.
|
|
41
|
+
- Read-only discovery: `get_evm_morpho_vaults`, `get_evm_morpho_markets`,
|
|
42
|
+
and `get_evm_morpho_positions`, backed by the Morpho GraphQL API.
|
|
43
|
+
- Write flows with preview/prepare/execute and quote-fingerprint binding:
|
|
44
|
+
`manage_evm_morpho_vault_position` (supply/withdraw) and
|
|
45
|
+
`manage_evm_morpho_market_position`
|
|
46
|
+
(supply_collateral/borrow/repay/withdraw_collateral), including automatic
|
|
47
|
+
approval/authorization requirement execution and rollback on failure.
|
|
48
|
+
- Fixed three Morpho defects found while hardening the integration:
|
|
49
|
+
- Vault list discovery used a non-existent GraphQL filter type
|
|
50
|
+
(`VaultV2Filters` -> `VaultV2sFilters`), so the default vault listing
|
|
51
|
+
failed on every call.
|
|
52
|
+
- Single vault/market lookups now return `found: false` for a missing target
|
|
53
|
+
instead of a confusing `morpho_api_failed`. The Morpho API answers a
|
|
54
|
+
missing entity as a `NOT_FOUND` GraphQL error with HTTP 200, which the
|
|
55
|
+
previous code treated as a hard failure.
|
|
56
|
+
- Execute no longer rejects checksummed vault/market targets: the approval
|
|
57
|
+
binding lowercases the resolved target, so it is now compared
|
|
58
|
+
case-insensitively against the requested address/id.
|
|
59
|
+
- Made Morpho discovery usable without paging through a default-ordered slice:
|
|
60
|
+
- Vaults: filter by underlying asset and order by TVL/APY (default
|
|
61
|
+
`TotalAssetsUsd` desc).
|
|
62
|
+
- Markets: free-text `search` plus collateral/loan asset filters, ordered by
|
|
63
|
+
supply/APY (default `SupplyAssetsUsd` desc).
|
|
64
|
+
- `order_by` is validated case-insensitively against an allowlist, and the
|
|
65
|
+
read-path `marketId` is validated as a 32-byte hex string.
|
|
66
|
+
|
|
67
|
+
## v0.1.44 - 2026-06-12
|
|
68
|
+
|
|
69
|
+
- Added anonymous, privacy-first adoption telemetry so wallet usage can be
|
|
70
|
+
measured across hosts (Claude Code / Codex / Hermes / OpenClaw) without any
|
|
71
|
+
PII.
|
|
72
|
+
- The wallet emits one event per tool invocation through the shared
|
|
73
|
+
`openclaw_cli invoke` chokepoint. Events carry only a random local install
|
|
74
|
+
id, host, the registered tool name, backend family, plugin version, and a
|
|
75
|
+
success flag — never addresses, balances, amounts, tx hashes, arguments, or
|
|
76
|
+
secrets. Secret-touching commands (onboard/wallet-create/unlock/import) are
|
|
77
|
+
never instrumented.
|
|
78
|
+
- Delivery uses a durable local spool plus a detached best-effort flush to the
|
|
79
|
+
provider-gateway, so a short-lived CLI process never adds latency or loses
|
|
80
|
+
events.
|
|
81
|
+
- Opt out at any time with `AGENT_WALLET_NO_TELEMETRY=1` (zero footprint).
|
|
82
|
+
- Per-frontend `host` tagging via `AGENT_WALLET_HOST` in each bridge.
|
|
83
|
+
|
|
5
84
|
## v0.1.41 - 2026-06-07
|
|
6
85
|
|
|
7
86
|
- Hardened Uniswap Trading API swap execution on active EVM mainnet markets.
|
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
[](https://www.npmjs.com/package/@agentlayer.tech/wallet)
|
|
5
5
|
[](https://www.npmjs.com/package/@agentlayer.tech/wallet)
|
|
6
|
+
[](https://nodejs.org/)
|
|
6
7
|
[](https://docs.agent-layer.tech/)
|
|
7
|
-
[](https://github.com/lopushok9/Agent-Layer/blob/main/LICENSE)
|
|
8
8
|
|
|
9
9
|
For Openclaw:
|
|
10
10
|
|
|
@@ -18,6 +18,20 @@ For Codex:
|
|
|
18
18
|
npx @agentlayer.tech/wallet install --yes && npx @agentlayer.tech/wallet codex install --yes
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
For Claude Code:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx @agentlayer.tech/wallet install --yes && npx @agentlayer.tech/wallet claude-code install --yes
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Or install entirely from inside the Claude Code CLI, via the plugin marketplace
|
|
28
|
+
(no terminal/npx needed) — two commands, then restart:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
/plugin marketplace add lopushok9/Agent-Layer
|
|
32
|
+
/plugin install agent-wallet@agentlayer
|
|
33
|
+
```
|
|
34
|
+
|
|
21
35
|
For Hermes:
|
|
22
36
|
|
|
23
37
|
```bash
|
|
@@ -55,7 +69,7 @@ Do not treat it as a finished production wallet stack. Test every flow before re
|
|
|
55
69
|
System prerequisites:
|
|
56
70
|
|
|
57
71
|
- `python3`
|
|
58
|
-
- `node`
|
|
72
|
+
- `node` `24.x`
|
|
59
73
|
- `npm`
|
|
60
74
|
|
|
61
75
|
Install the local runtime:
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.47
|