[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6Q5Q3N8WEYBVC8V00TH54XD":3,"skill-same:01M6Q5Q3N8WEYBVC8V00TH54XD":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":75},"01M6Q5Q3N8WEYBVC8V00TH54XD","sponge-wallet",null,"Manage crypto wallets, transfers, swaps, and balances via the Sponge Wallet API.","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fwallet-skills\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40],"Wallet","sponge wallet","finance","https","api","manage","crypto","swaps","via","true","wallets","transfers","balances","2026-11-10 10:12:30",false,"---\nname: sponge-wallet\nversion: 1.0.0\ndescription: Manage crypto wallets, transfers, swaps, and balances via the Sponge Wallet API.\nhomepage: https:\u002F\u002Fwallet.paysponge.com\nuser-invocable: true\nmetadata: {\"openclaw\":{\"emoji\":\"\\ud83e\\uddfd\",\"category\":\"finance\",\"primaryEnv\":\"SPONGE_API_KEY\",\"requires\":{\"env\":[\"SPONGE_API_KEY\"]}}}\n---\n\n```\nSPONGE WALLET API QUICK REFERENCE v1.0.0\nBase:   https:\u002F\u002Fapi.wallet.paysponge.com\nAuth:   Authorization: Bearer \u003CSPONGE_API_KEY>\nDocs:   This file is canonical (skills guide + params)\n\nKey endpoints:\n  POST \u002Fapi\u002Fagents\u002Fregister              -> register (no auth)\n  POST \u002Fapi\u002Foauth\u002Fdevice\u002Fauthorization   -> device login start (humans)\n  POST \u002Fapi\u002Foauth\u002Fdevice\u002Ftoken           -> device token poll (agents + humans)\n  GET  \u002Fapi\u002Fbalances                     -> get balances\n  POST \u002Fapi\u002Ftransfers\u002Fevm                -> EVM transfer (ETH\u002FUSDC)\n  POST \u002Fapi\u002Ftransfers\u002Fsolana             -> Solana transfer (SOL\u002FUSDC)\n  POST \u002Fapi\u002Ftransactions\u002Fswap            -> Solana swap\n  POST \u002Fapi\u002Ftransactions\u002Fbase-swap       -> Base swap (0x)\n  POST \u002Fapi\u002Ftransactions\u002Fbridge          -> Bridge (deBridge)\n  GET  \u002Fapi\u002Fsolana\u002Ftokens                -> list SPL tokens\n  GET  \u002Fapi\u002Fsolana\u002Ftokens\u002Fsearch         -> search Jupiter token list\n  GET  \u002Fapi\u002Ftransactions\u002Fstatus\u002F:txHash  -> transaction status\n  GET  \u002Fapi\u002Ftransactions\u002Fhistory         -> transaction history\n  POST \u002Fapi\u002Ffunding-requests             -> request funding from owner\n  POST \u002Fapi\u002Fwallets\u002Fwithdraw-to-main     -> withdraw to owner\n  POST \u002Fapi\u002Fx402\u002Fpayments                -> create x402 payment\n\nRules: use register (agents), never login | store key in ~\u002F.spongewallet\u002Fcredentials.json | requests are JSON\nErrors: HTTP status + JSON error message\n```\n\n# Sponge Wallet API - Agent Skills Guide\n\nThis skill is **doc-only**. There is no local CLI. Agents must call the Sponge Wallet REST API directly.\n\n## Why the steps matter (short rationale)\n\n- **Register vs login**: agents create a new managed wallet tied to a human owner. That owner must explicitly approve the agent. Login is only for humans who already have an account.\n- **Claim URL**: ensures the human owner explicitly links the agent to their account and controls allowlists\u002Ffunding.\n- **Credential persistence**: the device token response returns the `apiKey` once. If you lose it, you must re-register or re-authenticate.\n\n## Standard credential storage (required)\n\nStore the API key in **one canonical location**:\n\n- `~\u002F.spongewallet\u002Fcredentials.json`\n\nRecommended file contents:\n```json\n{\n  \"apiKey\": \"sponge_live_...\"\n}\n```\n\nOptional environment export (runtime convenience):\n```bash\nexport SPONGE_API_KEY=\"$(jq -r .apiKey ~\u002F.spongewallet\u002Fcredentials.json)\"\n```\n\n## Base URL & Auth\n\n- Base URL: `https:\u002F\u002Fapi.wallet.paysponge.com`\n- Auth header: `Authorization: Bearer \u003CSPONGE_API_KEY>`\n- Content-Type: `application\u002Fjson`\n\nQuick env setup:\n\n```bash\nexport SPONGE_API_URL=\"https:\u002F\u002Fapi.wallet.paysponge.com\"\nexport SPONGE_API_KEY=\"$(jq -r .apiKey ~\u002F.spongewallet\u002Fcredentials.json)\"\n```\n\n## CRITICAL: AI Agents Must Use `register`, NOT `login`\n\n### 1) Agent Registration (AI agents only)\n\n**Step 1 — Start registration**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Fagents\u002Fregister\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"YourAgentName\"}'\n```\n\nResponse includes:\n- `verificationUriComplete` (claim URL for the human owner)\n- `claimCode`, `deviceCode`, `expiresIn`, `interval`, `claimText`\n\n**Step 2 — Send the claim URL to the human owner**\nThey log in, optionally post the tweet text, and approve the agent.\n\n**Step 3 — Poll for completion**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Ftoken\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"grantType\":\"urn:ietf:params:oauth:grant-type:device_code\",\n    \"deviceCode\":\"\u003CdeviceCode>\",\n    \"clientId\":\"spongewallet-skill\"\n  }'\n```\n\nOn success, the response includes `apiKey`. Save it to `~\u002F.spongewallet\u002Fcredentials.json` and use it as `SPONGE_API_KEY`.\n\n### 2) Human Login (existing accounts only)\n\n**Phase 1 — Request device code**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Fauthorization\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"clientId\":\"spongewallet-skill\",\n    \"scope\":\"wallet:read wallet:write transaction:sign transaction:write\"\n  }'\n```\n\n**Phase 2 — Poll for token** (same endpoint as agents)\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Ftoken\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"grantType\":\"urn:ietf:params:oauth:grant-type:device_code\",\n    \"deviceCode\":\"\u003CdeviceCode>\",\n    \"clientId\":\"spongewallet-skill\"\n  }'\n```\n\n## Tool Call Pattern\n\nAll tool calls are plain REST requests with JSON payloads.\n\n**Common headers**\n```bash\n-H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n-H \"Content-Type: application\u002Fjson\" \\\n-H \"Accept: application\u002Fjson\"\n```\n\n**Agent ID note:** `agentId` is optional for API key auth. It is only required when using a user session (e.g., Privy-based auth) or when explicitly operating on a different agent.\n\n### Tool -> Endpoint Map\n\n| Tool | Method | Path | Params\u002FBody |\n|------|--------|------|-------------|\n| `get_balance` | GET | `\u002Fapi\u002Fbalances` | Query: `chain`, `allowedChains`, `onlyUsdc` |\n| `get_solana_tokens` | GET | `\u002Fapi\u002Fsolana\u002Ftokens` | Query: `chain` |\n| `search_solana_tokens` | GET | `\u002Fapi\u002Fsolana\u002Ftokens\u002Fsearch` | Query: `query`, `limit` |\n| `evm_transfer` | POST | `\u002Fapi\u002Ftransfers\u002Fevm` | Body: `chain`, `to`, `amount`, `currency` |\n| `solana_transfer` | POST | `\u002Fapi\u002Ftransfers\u002Fsolana` | Body: `chain`, `to`, `amount`, `currency` |\n| `solana_swap` | POST | `\u002Fapi\u002Ftransactions\u002Fswap` | Body: `chain`, `inputToken`, `outputToken`, `amount`, `slippageBps` |\n| `base_swap` | POST | `\u002Fapi\u002Ftransactions\u002Fbase-swap` | Body: `chain`, `inputToken`, `outputToken`, `amount`, `slippageBps` |\n| `bridge` | POST | `\u002Fapi\u002Ftransactions\u002Fbridge` | Body: `sourceChain`, `destinationChain`, `token`, `amount`, `destinationToken`, `recipientAddress` |\n| `get_transaction_status` | GET | `\u002Fapi\u002Ftransactions\u002Fstatus\u002F{txHash}` | Query: `chain` |\n| `get_transaction_history` | GET | `\u002Fapi\u002Ftransactions\u002Fhistory` | Query: `limit`, `chain` |\n| `request_funding` | POST | `\u002Fapi\u002Ffunding-requests` | Body: `amount`, `reason`, `chain`, `currency` |\n| `withdraw_to_main_wallet` | POST | `\u002Fapi\u002Fwallets\u002Fwithdraw-to-main` | Body: `chain`, `amount`, `currency` |\n| `create_x402_payment` | POST | `\u002Fapi\u002Fx402\u002Fpayments` | Body: `chain`, `to`, `token`, `amount`, `decimals`, `valid_for_seconds`, `resource_url`, `resource_description`, `fee_payer`, `http_method` |\n\nNote: request bodies use camelCase (e.g., `inputToken`, `slippageBps`).\n\n## Quick Start\n\n### 1) Register (agents only)\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Fagents\u002Fregister\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"YourAgentName\"}'\n```\nShare the claim URL with your human, then poll for the token and store the `apiKey`.\n\n### 2) Check balance\n```bash\ncurl -sS \"$SPONGE_API_URL\u002Fapi\u002Fbalances?chain=base\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n### 3) Transfer USDC on Base\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransfers\u002Fevm\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"base\",\n    \"to\":\"0x...\",\n    \"amount\":\"10\",\n    \"currency\":\"USDC\"\n  }'\n```\n\n## Examples\n\n### Swap tokens on Solana\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fswap\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"solana\",\n    \"inputToken\":\"SOL\",\n    \"outputToken\":\"BONK\",\n    \"amount\":\"0.5\",\n    \"slippageBps\":100\n  }'\n```\n\n### Swap tokens on Base\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fbase-swap\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"base\",\n    \"inputToken\":\"ETH\",\n    \"outputToken\":\"USDC\",\n    \"amount\":\"0.1\",\n    \"slippageBps\":50\n  }'\n```\n\n### Bridge tokens cross-chain\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fbridge\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sourceChain\":\"solana\",\n    \"destinationChain\":\"base\",\n    \"token\":\"SOL\",\n    \"amount\":\"0.1\",\n    \"destinationToken\":\"ETH\"\n  }'\n```\n\n### Check transaction status\n```bash\ncurl -sS \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fstatus\u002F0xabc123...?chain=base\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n## Chain Reference\n\n**Test keys** (`sponge_test_*`): `sepolia`, `base-sepolia`, `solana-devnet`, `tempo`\n**Live keys** (`sponge_live_*`): `ethereum`, `base`, `solana`\n\n## Error Responses\n\nErrors return JSON with an error message and HTTP status:\n\n```json\n{\"error\":\"message\"}\n```\n\n| Status | Meaning | Common Cause |\n|--------|---------|--------------|\n| 400 | Bad Request | Missing\u002Finvalid fields |\n| 401 | Unauthorized | Missing or invalid API key |\n| 403 | Forbidden | Address not in allowlist or permission denied |\n| 404 | Not Found | Resource does not exist |\n| 409 | Conflict | Duplicate action |\n| 429 | Rate Limited | Too many requests (back off + retry) |\n| 500 | Server Error | Transient; retry later |\n\n## Security\n\n- Never share your API key in logs, posts, or screenshots.\n- Store your API key in `~\u002F.spongewallet\u002Fcredentials.json` and restrict file permissions.\n- Rotate the key if exposure is suspected.\n\n---\n\nBuilt for agents.\n","```\nSPONGE WALLET API QUICK REFERENCE v1.0.0\nBase:   https:\u002F\u002Fapi.wallet.paysponge.com\nAuth:   Authorization: Bearer \u003CSPONGE_API_KEY>\nDocs:   This file is canonical (skills guide + params)\n\nKey endpoints:\n  POST \u002Fapi\u002Fagents\u002Fregister              -> register (no auth)\n  POST \u002Fapi\u002Foauth\u002Fdevice\u002Fauthorization   -> device login start (humans)\n  POST \u002Fapi\u002Foauth\u002Fdevice\u002Ftoken           -> device token poll (agents + humans)\n  GET  \u002Fapi\u002Fbalances                     -> get balances\n  POST \u002Fapi\u002Ftransfers\u002Fevm                -> EVM transfer (ETH\u002FUSDC)\n  POST \u002Fapi\u002Ftransfers\u002Fsolana             -> Solana transfer (SOL\u002FUSDC)\n  POST \u002Fapi\u002Ftransactions\u002Fswap            -> Solana swap\n  POST \u002Fapi\u002Ftransactions\u002Fbase-swap       -> Base swap (0x)\n  POST \u002Fapi\u002Ftransactions\u002Fbridge          -> Bridge (deBridge)\n  GET  \u002Fapi\u002Fsolana\u002Ftokens                -> list SPL tokens\n  GET  \u002Fapi\u002Fsolana\u002Ftokens\u002Fsearch         -> search Jupiter token list\n  GET  \u002Fapi\u002Ftransactions\u002Fstatus\u002F:txHash  -> transaction status\n  GET  \u002Fapi\u002Ftransactions\u002Fhistory         -> transaction history\n  POST \u002Fapi\u002Ffunding-requests             -> request funding from owner\n  POST \u002Fapi\u002Fwallets\u002Fwithdraw-to-main     -> withdraw to owner\n  POST \u002Fapi\u002Fx402\u002Fpayments                -> create x402 payment\n\nRules: use register (agents), never login | store key in ~\u002F.spongewallet\u002Fcredentials.json | requests are JSON\nErrors: HTTP status + JSON error message\n```\n\n# Sponge Wallet API - Agent Skills Guide\n\nThis skill is **doc-only**. There is no local CLI. Agents must call the Sponge Wallet REST API directly.\n\n## Why the steps matter (short rationale)\n\n- **Register vs login**: agents create a new managed wallet tied to a human owner. That owner must explicitly approve the agent. Login is only for humans who already have an account.\n- **Claim URL**: ensures the human owner explicitly links the agent to their account and controls allowlists\u002Ffunding.\n- **Credential persistence**: the device token response returns the `apiKey` once. If you lose it, you must re-register or re-authenticate.\n\n## Standard credential storage (required)\n\nStore the API key in **one canonical location**:\n\n- `~\u002F.spongewallet\u002Fcredentials.json`\n\nRecommended file contents:\n```json\n{\n  \"apiKey\": \"sponge_live_...\"\n}\n```\n\nOptional environment export (runtime convenience):\n```bash\nexport SPONGE_API_KEY=\"$(jq -r .apiKey ~\u002F.spongewallet\u002Fcredentials.json)\"\n```\n\n## Base URL & Auth\n\n- Base URL: `https:\u002F\u002Fapi.wallet.paysponge.com`\n- Auth header: `Authorization: Bearer \u003CSPONGE_API_KEY>`\n- Content-Type: `application\u002Fjson`\n\nQuick env setup:\n\n```bash\nexport SPONGE_API_URL=\"https:\u002F\u002Fapi.wallet.paysponge.com\"\nexport SPONGE_API_KEY=\"$(jq -r .apiKey ~\u002F.spongewallet\u002Fcredentials.json)\"\n```\n\n## CRITICAL: AI Agents Must Use `register`, NOT `login`\n\n### 1) Agent Registration (AI agents only)\n\n**Step 1 — Start registration**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Fagents\u002Fregister\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"YourAgentName\"}'\n```\n\nResponse includes:\n- `verificationUriComplete` (claim URL for the human owner)\n- `claimCode`, `deviceCode`, `expiresIn`, `interval`, `claimText`\n\n**Step 2 — Send the claim URL to the human owner**\nThey log in, optionally post the tweet text, and approve the agent.\n\n**Step 3 — Poll for completion**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Ftoken\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"grantType\":\"urn:ietf:params:oauth:grant-type:device_code\",\n    \"deviceCode\":\"\u003CdeviceCode>\",\n    \"clientId\":\"spongewallet-skill\"\n  }'\n```\n\nOn success, the response includes `apiKey`. Save it to `~\u002F.spongewallet\u002Fcredentials.json` and use it as `SPONGE_API_KEY`.\n\n### 2) Human Login (existing accounts only)\n\n**Phase 1 — Request device code**\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Fauthorization\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"clientId\":\"spongewallet-skill\",\n    \"scope\":\"wallet:read wallet:write transaction:sign transaction:write\"\n  }'\n```\n\n**Phase 2 — Poll for token** (same endpoint as agents)\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Foauth\u002Fdevice\u002Ftoken\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"grantType\":\"urn:ietf:params:oauth:grant-type:device_code\",\n    \"deviceCode\":\"\u003CdeviceCode>\",\n    \"clientId\":\"spongewallet-skill\"\n  }'\n```\n\n## Tool Call Pattern\n\nAll tool calls are plain REST requests with JSON payloads.\n\n**Common headers**\n```bash\n-H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n-H \"Content-Type: application\u002Fjson\" \\\n-H \"Accept: application\u002Fjson\"\n```\n\n**Agent ID note:** `agentId` is optional for API key auth. It is only required when using a user session (e.g., Privy-based auth) or when explicitly operating on a different agent.\n\n### Tool -> Endpoint Map\n\n| Tool | Method | Path | Params\u002FBody |\n|------|--------|------|-------------|\n| `get_balance` | GET | `\u002Fapi\u002Fbalances` | Query: `chain`, `allowedChains`, `onlyUsdc` |\n| `get_solana_tokens` | GET | `\u002Fapi\u002Fsolana\u002Ftokens` | Query: `chain` |\n| `search_solana_tokens` | GET | `\u002Fapi\u002Fsolana\u002Ftokens\u002Fsearch` | Query: `query`, `limit` |\n| `evm_transfer` | POST | `\u002Fapi\u002Ftransfers\u002Fevm` | Body: `chain`, `to`, `amount`, `currency` |\n| `solana_transfer` | POST | `\u002Fapi\u002Ftransfers\u002Fsolana` | Body: `chain`, `to`, `amount`, `currency` |\n| `solana_swap` | POST | `\u002Fapi\u002Ftransactions\u002Fswap` | Body: `chain`, `inputToken`, `outputToken`, `amount`, `slippageBps` |\n| `base_swap` | POST | `\u002Fapi\u002Ftransactions\u002Fbase-swap` | Body: `chain`, `inputToken`, `outputToken`, `amount`, `slippageBps` |\n| `bridge` | POST | `\u002Fapi\u002Ftransactions\u002Fbridge` | Body: `sourceChain`, `destinationChain`, `token`, `amount`, `destinationToken`, `recipientAddress` |\n| `get_transaction_status` | GET | `\u002Fapi\u002Ftransactions\u002Fstatus\u002F{txHash}` | Query: `chain` |\n| `get_transaction_history` | GET | `\u002Fapi\u002Ftransactions\u002Fhistory` | Query: `limit`, `chain` |\n| `request_funding` | POST | `\u002Fapi\u002Ffunding-requests` | Body: `amount`, `reason`, `chain`, `currency` |\n| `withdraw_to_main_wallet` | POST | `\u002Fapi\u002Fwallets\u002Fwithdraw-to-main` | Body: `chain`, `amount`, `currency` |\n| `create_x402_payment` | POST | `\u002Fapi\u002Fx402\u002Fpayments` | Body: `chain`, `to`, `token`, `amount`, `decimals`, `valid_for_seconds`, `resource_url`, `resource_description`, `fee_payer`, `http_method` |\n\nNote: request bodies use camelCase (e.g., `inputToken`, `slippageBps`).\n\n## Quick Start\n\n### 1) Register (agents only)\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Fagents\u002Fregister\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"YourAgentName\"}'\n```\nShare the claim URL with your human, then poll for the token and store the `apiKey`.\n\n### 2) Check balance\n```bash\ncurl -sS \"$SPONGE_API_URL\u002Fapi\u002Fbalances?chain=base\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n### 3) Transfer USDC on Base\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransfers\u002Fevm\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"base\",\n    \"to\":\"0x...\",\n    \"amount\":\"10\",\n    \"currency\":\"USDC\"\n  }'\n```\n\n## Examples\n\n### Swap tokens on Solana\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fswap\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"solana\",\n    \"inputToken\":\"SOL\",\n    \"outputToken\":\"BONK\",\n    \"amount\":\"0.5\",\n    \"slippageBps\":100\n  }'\n```\n\n### Swap tokens on Base\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fbase-swap\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"chain\":\"base\",\n    \"inputToken\":\"ETH\",\n    \"outputToken\":\"USDC\",\n    \"amount\":\"0.1\",\n    \"slippageBps\":50\n  }'\n```\n\n### Bridge tokens cross-chain\n```bash\ncurl -sS -X POST \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fbridge\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sourceChain\":\"solana\",\n    \"destinationChain\":\"base\",\n    \"token\":\"SOL\",\n    \"amount\":\"0.1\",\n    \"destinationToken\":\"ETH\"\n  }'\n```\n\n### Check transaction status\n```bash\ncurl -sS \"$SPONGE_API_URL\u002Fapi\u002Ftransactions\u002Fstatus\u002F0xabc123...?chain=base\" \\\n  -H \"Authorization: Bearer $SPONGE_API_KEY\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n## Chain Reference\n\n**Test keys** (`sponge_test_*`): `sepolia`, `base-sepolia`, `solana-devnet`, `tempo`\n**Live keys** (`sponge_live_*`): `ethereum`, `base`, `solana`\n\n## Error Responses\n\nErrors return JSON with an error message and HTTP status:\n\n```json\n{\"error\":\"message\"}\n```\n\n| Status | Meaning | Common Cause |\n|--------|---------|--------------|\n| 400 | Bad Request | Missing\u002Finvalid fields |\n| 401 | Unauthorized | Missing or invalid API key |\n| 403 | Forbidden | Address not in allowlist or permission denied |\n| 404 | Not Found | Resource does not exist |\n| 409 | Conflict | Duplicate action |\n| 429 | Rate Limited | Too many requests (back off + retry) |\n| 500 | Server Error | Transient; retry later |\n\n## Security\n\n- Never share your API key in logs, posts, or screenshots.\n- Store your API key in `~\u002F.spongewallet\u002Fcredentials.json` and restrict file permissions.\n- Rotate the key if exposure is suspected.\n\n---\n\nBuilt for agents.\n",{"name":5,"version":46,"homepage":47,"metadata":48,"description":7,"user-invocable":54},"1.0.0","https:\u002F\u002Fwallet.paysponge.com",{"openclaw":49},{"emoji":50,"category":30,"requires":51,"primaryEnv":53},"?",{"env":52},[53],"SPONGE_API_KEY",true,"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","金融\u002Fwallet-skills",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":54},[65,68,71],{"tool":66,"command":67},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill sponge-wallet",{"tool":69,"command":70},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill sponge-wallet",{"tool":72,"command":73},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill sponge-wallet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fwallet-skills\u002FSKILL.md",[76],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"_meta.json","REFERENCE","参考文档",284,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fwallet-skills\u002F_meta.json",[83,106,132,143,153,181],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":41},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[85,90,91,92,93,94,95,28,96,97,98,99,100,101,102,103,104,105],"safe","ethereum","defi","Optimization","user","use","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":116,"publishedAt":41},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[111,112,115],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":113,"categoryName":114,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[32,117,118,119,120,121,122,92,123,28,124,34,125,126,127,128,129,130,131],"zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","evm","solana","query","across","positions","token","prices",{"skillNo":133,"name":134,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":140,"publishedAt":41},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[137,138,139],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":113,"categoryName":114,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[32,141,142,117,118,119,120,121,122,92,123,28,34,125,126,127,128,129,130,131],"api skill","zerion api skill",{"skillNo":144,"name":145,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":151,"publishedAt":41},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[148,149,150],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":113,"categoryName":114,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[119,32,152,117,118,120,121,92,123,28,124,34,125,126,127,128,129,130,131],"zerion api mcp",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":162,"publishedAt":41},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[159],{"categoryNo":160,"categoryName":161,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000040","财务",[30,163,164,165,166,167,31,168,169,170,171,172,173,174,175,176,177,178,179,180],"yahoo finance","forex","yahoo","yahoo finance forex","github","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data","for",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":41},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[187],{"categoryNo":160,"categoryName":161,"taxonomyType":25,"taxonomyTypeDesc":26},[30,163,165,189,190,191,192,193,194,172,195,196,197,198,199,200,201,202,131,179],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]