{"skill":{"slug":"aiotnetwork-crypto-wallet","displayName":"Crypto Wallet","summary":"Discover supported cryptocurrencies, generate deposit addresses, and withdraw crypto to external wallets.","description":"---\nname: Crypto Wallet\ndescription: Discover supported cryptocurrencies, generate deposit addresses, and withdraw crypto to external wallets.\nversion: 1.0.0\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - AIOT_API_BASE_URL\n    primaryEnv: AIOT_API_BASE_URL\n---\n\n# Crypto Wallet\n\nUse this skill when the user needs to deposit cryptocurrency into their wallet or withdraw to an external address.\n\n## Configuration\n\nThe default API base URL is `https://payment-api-dev.aiotnetwork.io`. All endpoints are relative to this URL.\n\nTo override (e.g. for local development):\n\n```bash\nexport AIOT_API_BASE_URL=\"http://localhost:8080\"\n```\n\nIf `AIOT_API_BASE_URL` is not set, use `https://payment-api-dev.aiotnetwork.io` as the base for all requests.\n\n## Available Tools\n\n- `get_coins` — List all supported cryptocurrencies | `GET /api/v1/wallet/coins` | Requires auth\n- `get_coin_networks` — List supported blockchain networks for a specific coin | `GET /api/v1/wallet/coins/:coin_id/networks` | Requires auth\n- `get_deposit_address` — Generate or retrieve a deposit address for a coin on a specific network | `POST /api/v1/wallet/deposit/address` | Requires auth\n- `get_withdraw_quote` — Get a quote for a crypto withdrawal (fees, limits) | `POST /api/v1/wallet/withdraw/quote` | Requires auth\n- `initiate_withdraw` — Start a crypto withdrawal to an external address | `POST /api/v1/wallet/withdraw` | Requires auth\n- `get_withdraw_status` — Check the status of a crypto withdrawal | `GET /api/v1/wallet/withdraw/:id` | Requires auth\n- `confirm_withdraw` — Confirm a pending crypto withdrawal | `POST /api/v1/wallet/withdraw/:id/confirm` | Requires auth | Requires transaction PIN\n\n## Recommended Flows\n\n### Deposit Crypto\n\nGenerate a deposit address and fund your wallet with crypto\n\n1. List coins: GET /api/v1/wallet/coins — find the coin you want to deposit\n2. Get networks: GET /api/v1/wallet/coins/:coin_id/networks — choose the blockchain network\n3. Get address: POST /api/v1/wallet/deposit/address with {coin_id, network_id} — returns deposit address\n4. Send crypto to the returned address from your external wallet\n\n\n### Withdraw Crypto\n\nSend crypto from your wallet to an external address\n\n1. Get quote: POST /api/v1/wallet/withdraw/quote with {coin_id, network_id, amount, address}\n2. Initiate: POST /api/v1/wallet/withdraw with quote details\n3. Confirm: POST /api/v1/wallet/withdraw/:id/confirm (requires transaction PIN)\n4. Track: GET /api/v1/wallet/withdraw/:id — monitor until completed\n\n\n## Rules\n\n- Always verify the correct network before depositing — sending to the wrong network will lose funds\n- Withdrawal follows a quote-then-confirm pattern — confirmation requires a transaction PIN\n- Deposit addresses are deterministic — the same coin+network always returns the same address\n\n## Agent Guidance\n\nFollow these instructions when executing this skill:\n\n- Always follow the documented flow order. Do not skip steps.\n- If a tool requires authentication, verify the session has a valid bearer token before calling it.\n- If a tool requires a transaction PIN, ask the user for it fresh each time. Never cache or log PINs.\n- Never expose, log, or persist secrets (passwords, tokens, full card numbers, CVVs).\n- If the user requests an operation outside this skill's scope, decline and suggest the appropriate skill.\n- If a step fails, check the error and follow the recovery guidance below before retrying.\n\n- Always verify the user selected the correct blockchain network before generating a deposit address. Sending to the wrong network will permanently lose funds.\n- Withdrawal follows: get quote → initiate → confirm with transaction PIN. The confirmation step requires a 4-digit transaction PIN. Never skip the quote step.\n- Deposit addresses are deterministic — the same coin + network always returns the same address.\n","tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":730,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1773202473516,"updatedAt":1779077999111},"latestVersion":{"version":"1.0.1","createdAt":1773994089765,"changelog":"- Added configuration section specifying the use of the AIOT_API_BASE_URL environment variable for API endpoint selection.\n- Documented default and override behavior for the API base URL, including local development instructions.\n- Updated metadata to declare required environment variables.\n- Core skill flows, tools, rules, and agent guidance remain unchanged.","license":"MIT-0"},"metadata":{"setup":[{"key":"AIOT_API_BASE_URL","required":true}],"os":null,"systems":null},"owner":{"handle":"d9m1n1c","userId":"s173knp9tpancq52qb0pk4w6kd8845mp","displayName":"D9m1n1c","image":"https://avatars.githubusercontent.com/u/109327351?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089995773}}