[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MWV76B32PEWJ6P48VCNA5F":3,"skill-same:01M6MWV76B32PEWJ6P48VCNA5F":63},{"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":17,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M6MWV76B32PEWJ6P48VCNA5F","Vincent - A wallet for agents",null,"Use this skill to safely create a wallet the agent can use for transfers, swaps, and any EVM chain transaction. Also supports raw signing.","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人工智能与大型语言模型\u002Fagentwallet\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29],"Wallet","Vincent   A wallet for agents","for","create","use","evm","transaction","swaps","chain","signing","can","transfers","2026-11-10 10:12:30",false,"---\nname: Vincent - A wallet for agents\ndescription: Use this skill to safely create a wallet the agent can use for transfers, swaps, and any EVM chain transaction. Also supports raw signing.\n---\n\n# Vincent - A wallet for agents\n\nUse this skill to safely create a wallet the agent can use for transfers, swaps, and any EVM chain transaction without ever exposing private keys to the agent. Create a wallet, set spending policies, and your agent can transfer tokens, do swaps, and interact with smart contracts within the boundaries you define.\n\n**The agent never sees the private key.** All transactions are executed server-side through a smart account. The wallet owner controls what the agent can do via configurable policies.\n\n## Which Secret Type to Use\n\n| Type                | Use Case                                  | Network                 | Gas              |\n| ------------------- | ----------------------------------------- | ----------------------- | ---------------- |\n| `EVM_WALLET`        | Transfers, swaps, DeFi, contract calls    | Any EVM chain           | Sponsored (free) |\n| `RAW_SIGNER`        | Raw message signing for special protocols | Any (Ethereum + Solana) | You pay          |\n\n**Choose `EVM_WALLET`** (default) for:\n\n- Sending ETH or tokens\n- Swapping tokens on DEXs\n- Interacting with smart contracts\n- Any standard EVM transaction\n\n**Choose `RAW_SIGNER`** only when you need:\n\n- Raw ECDSA\u002FEd25519 signatures for protocols that don't work with smart accounts\n- To sign transaction hashes you'll broadcast yourself\n- Solana signatures\n\n## Configuration\n\nAll API requests require a Bearer token (the API key returned when creating a wallet). If you're an openclaw instance, store and retrieve it from `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can store it in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n\n```\nAuthorization: Bearer \u003CAPI_KEY>\n```\n\n## Quick Start\n\n### 1. Create a Wallet\n\nCreate a new smart account wallet for your agent. This generates a private key server-side (you never see it), creates a ZeroDev smart account, and returns an API key for the agent plus a claim URL for the wallet owner.\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"type\": \"EVM_WALLET\",\n    \"memo\": \"My agent wallet\",\n    \"chainId\": 84532\n  }'\n```\n\nResponse includes:\n\n- `apiKey` -- store this securely; use it as the Bearer token for all future requests\n- `claimUrl` -- share this with the user so they can claim the wallet and set policies\n- `address` -- the smart account address\n\nAfter creating, tell the user:\n\n> \"Here is your wallet claim URL: `\u003CclaimUrl>`. Use this to claim ownership, set spending policies, and monitor your agent's wallet activity.\"\n\n### 2. Get Wallet Address\n\n```bash\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Faddress\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\n### 3. Check Balances\n\n```bash\n# Get all token balances across all supported chains (ETH, WETH, USDC, etc.)\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fbalances\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n\n# Filter to specific chains (comma-separated chain IDs)\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fbalances?chainIds=1,137,42161\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\nReturns all ERC-20 tokens and native balances with symbols, decimals, logos, and USD values.\n\n### 4. Transfer ETH or Tokens\n\n```bash\n# Transfer native ETH\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Ftransfer\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xRecipientAddress\",\n    \"amount\": \"0.01\"\n  }'\n\n# Transfer ERC-20 token\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Ftransfer\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xRecipientAddress\",\n    \"amount\": \"100\",\n    \"token\": \"0xTokenContractAddress\"\n  }'\n```\n\n### 5. Swap Tokens\n\nSwap one token for another using DEX liquidity (powered by 0x).\n\n```bash\n# Preview a swap (no execution, just pricing)\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fswap\u002Fpreview\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sellToken\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n    \"buyToken\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n    \"sellAmount\": \"0.1\",\n    \"chainId\": 1\n  }'\n\n# Execute a swap\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fswap\u002Fexecute\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sellToken\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n    \"buyToken\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n    \"sellAmount\": \"0.1\",\n    \"chainId\": 1,\n    \"slippageBps\": 100\n  }'\n```\n\n- `sellToken` \u002F `buyToken`: Token contract addresses. Use `0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE` for native ETH.\n- `sellAmount`: Human-readable amount to sell (e.g. `\"0.1\"` for 0.1 ETH).\n- `chainId`: The chain to swap on (1 = Ethereum, 137 = Polygon, 42161 = Arbitrum, 10 = Optimism, 8453 = Base, etc.).\n- `slippageBps`: Optional slippage tolerance in basis points (100 = 1%). Defaults to 100.\n\nThe preview endpoint returns expected buy amount, route info, and fees without executing. The execute endpoint performs the actual swap through the smart account, handling ERC20 approvals automatically.\n\n### 6. Send Arbitrary Transaction\n\nInteract with any smart contract by sending custom calldata.\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fsend-transaction\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xContractAddress\",\n    \"data\": \"0xCalldata\",\n    \"value\": \"0\"\n  }'\n```\n\n## Policies\n\nThe wallet owner controls what the agent can do by setting policies via the claim URL. If a transaction violates a policy, the API will reject it or require human approval via Telegram.\n\n| Policy                      | What it does                                                        |\n| --------------------------- | ------------------------------------------------------------------- |\n| **Address allowlist**       | Only allow transfers\u002Fcalls to specific addresses                    |\n| **Token allowlist**         | Only allow transfers of specific ERC-20 tokens                      |\n| **Function allowlist**      | Only allow calling specific contract functions (by 4-byte selector) |\n| **Spending limit (per tx)** | Max USD value per transaction                                       |\n| **Spending limit (daily)**  | Max USD value per rolling 24 hours                                  |\n| **Spending limit (weekly)** | Max USD value per rolling 7 days                                    |\n| **Require approval**        | Every transaction needs human approval via Telegram                 |\n| **Approval threshold**      | Transactions above a USD amount need human approval                 |\n\nIf no policies are set, all actions are allowed by default. Once the owner claims the wallet and adds policies, the agent operates within those boundaries.\n\n## Re-linking (Recovering API Access)\n\nIf the agent loses its API key, the wallet owner can generate a **re-link token** from the frontend. The agent then exchanges this token for a new API key.\n\n**How it works:**\n\n1. The user generates a re-link token from the wallet detail page in the frontend\n2. The user gives the token to the agent (e.g. by pasting it in chat)\n3. The agent calls the re-link endpoint to exchange the token for a new API key\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\u002Frelink\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"relinkToken\": \"\u003CTOKEN_FROM_USER>\",\n    \"apiKeyName\": \"Re-linked API Key\"\n  }'\n```\n\nResponse includes:\n\n- `secret` -- the wallet metadata (id, type, address, chainId, etc.)\n- `apiKey.key` -- the new API key to use as Bearer token for all future requests\n\n**Important:** Re-link tokens are one-time use and expire after 10 minutes. No authentication is required on this endpoint -- the token itself is the authorization.\n\nIf a user tells you they have a re-link token, use this endpoint to regain access to the wallet. Store the returned API key and use it for all subsequent requests.\n\n## Important Notes\n\n- **No gas needed.** A paymaster is fully set up -- all transaction gas fees are sponsored automatically. The wallet does not need ETH for gas.\n- **Never try to access raw secret values.** The private key stays server-side -- that's the whole point.\n- Always store the API key from wallet creation. If you're an openclaw instance, store it in `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can store it in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n- Always search for the API keys in the credentials folder before using the API. If you're an openclaw instance, search for the API key in `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can search for the API key in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n- Always share the claim URL with the user after creating a wallet.\n- If a transaction is rejected, it may be blocked by a policy. Tell the user to check their policy settings via the frontend at `https:\u002F\u002Fheyvincent.ai`.\n- If a transaction requires approval, it will return `status: \"pending_approval\"`. The wallet owner will receive a Telegram notification to approve or deny.\n\n---\n\n## Raw Signer (Advanced)\n\nFor raw ECDSA\u002FEd25519 signing when smart accounts won't work.\n\n### Create a Raw Signer\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"type\": \"RAW_SIGNER\",\n    \"memo\": \"My raw signer\"\n  }'\n```\n\nResponse includes both Ethereum (secp256k1) and Solana (ed25519) addresses derived from the same seed.\n\n### Get Addresses\n\n```bash\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fraw-signer\u002Faddresses\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\nReturns `ethAddress` and `solanaAddress`.\n\n### Sign a Message\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fraw-signer\u002Fsign\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"message\": \"0x\u003Chex-encoded-bytes>\",\n    \"curve\": \"ethereum\"\n  }'\n```\n\n- `message`: Hex-encoded bytes to sign (must start with `0x`)\n- `curve`: `\"ethereum\"` for secp256k1 ECDSA, `\"solana\"` for ed25519\n\nReturns a hex-encoded signature. For Ethereum, this is `r || s || v` (65 bytes). For Solana, it's a 64-byte ed25519 signature.\n","# Vincent - A wallet for agents\n\nUse this skill to safely create a wallet the agent can use for transfers, swaps, and any EVM chain transaction without ever exposing private keys to the agent. Create a wallet, set spending policies, and your agent can transfer tokens, do swaps, and interact with smart contracts within the boundaries you define.\n\n**The agent never sees the private key.** All transactions are executed server-side through a smart account. The wallet owner controls what the agent can do via configurable policies.\n\n## Which Secret Type to Use\n\n| Type                | Use Case                                  | Network                 | Gas              |\n| ------------------- | ----------------------------------------- | ----------------------- | ---------------- |\n| `EVM_WALLET`        | Transfers, swaps, DeFi, contract calls    | Any EVM chain           | Sponsored (free) |\n| `RAW_SIGNER`        | Raw message signing for special protocols | Any (Ethereum + Solana) | You pay          |\n\n**Choose `EVM_WALLET`** (default) for:\n\n- Sending ETH or tokens\n- Swapping tokens on DEXs\n- Interacting with smart contracts\n- Any standard EVM transaction\n\n**Choose `RAW_SIGNER`** only when you need:\n\n- Raw ECDSA\u002FEd25519 signatures for protocols that don't work with smart accounts\n- To sign transaction hashes you'll broadcast yourself\n- Solana signatures\n\n## Configuration\n\nAll API requests require a Bearer token (the API key returned when creating a wallet). If you're an openclaw instance, store and retrieve it from `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can store it in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n\n```\nAuthorization: Bearer \u003CAPI_KEY>\n```\n\n## Quick Start\n\n### 1. Create a Wallet\n\nCreate a new smart account wallet for your agent. This generates a private key server-side (you never see it), creates a ZeroDev smart account, and returns an API key for the agent plus a claim URL for the wallet owner.\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"type\": \"EVM_WALLET\",\n    \"memo\": \"My agent wallet\",\n    \"chainId\": 84532\n  }'\n```\n\nResponse includes:\n\n- `apiKey` -- store this securely; use it as the Bearer token for all future requests\n- `claimUrl` -- share this with the user so they can claim the wallet and set policies\n- `address` -- the smart account address\n\nAfter creating, tell the user:\n\n> \"Here is your wallet claim URL: `\u003CclaimUrl>`. Use this to claim ownership, set spending policies, and monitor your agent's wallet activity.\"\n\n### 2. Get Wallet Address\n\n```bash\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Faddress\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\n### 3. Check Balances\n\n```bash\n# Get all token balances across all supported chains (ETH, WETH, USDC, etc.)\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fbalances\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n\n# Filter to specific chains (comma-separated chain IDs)\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fbalances?chainIds=1,137,42161\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\nReturns all ERC-20 tokens and native balances with symbols, decimals, logos, and USD values.\n\n### 4. Transfer ETH or Tokens\n\n```bash\n# Transfer native ETH\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Ftransfer\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xRecipientAddress\",\n    \"amount\": \"0.01\"\n  }'\n\n# Transfer ERC-20 token\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Ftransfer\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xRecipientAddress\",\n    \"amount\": \"100\",\n    \"token\": \"0xTokenContractAddress\"\n  }'\n```\n\n### 5. Swap Tokens\n\nSwap one token for another using DEX liquidity (powered by 0x).\n\n```bash\n# Preview a swap (no execution, just pricing)\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fswap\u002Fpreview\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sellToken\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n    \"buyToken\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n    \"sellAmount\": \"0.1\",\n    \"chainId\": 1\n  }'\n\n# Execute a swap\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fswap\u002Fexecute\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"sellToken\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",\n    \"buyToken\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n    \"sellAmount\": \"0.1\",\n    \"chainId\": 1,\n    \"slippageBps\": 100\n  }'\n```\n\n- `sellToken` \u002F `buyToken`: Token contract addresses. Use `0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE` for native ETH.\n- `sellAmount`: Human-readable amount to sell (e.g. `\"0.1\"` for 0.1 ETH).\n- `chainId`: The chain to swap on (1 = Ethereum, 137 = Polygon, 42161 = Arbitrum, 10 = Optimism, 8453 = Base, etc.).\n- `slippageBps`: Optional slippage tolerance in basis points (100 = 1%). Defaults to 100.\n\nThe preview endpoint returns expected buy amount, route info, and fees without executing. The execute endpoint performs the actual swap through the smart account, handling ERC20 approvals automatically.\n\n### 6. Send Arbitrary Transaction\n\nInteract with any smart contract by sending custom calldata.\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fevm-wallet\u002Fsend-transaction\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"to\": \"0xContractAddress\",\n    \"data\": \"0xCalldata\",\n    \"value\": \"0\"\n  }'\n```\n\n## Policies\n\nThe wallet owner controls what the agent can do by setting policies via the claim URL. If a transaction violates a policy, the API will reject it or require human approval via Telegram.\n\n| Policy                      | What it does                                                        |\n| --------------------------- | ------------------------------------------------------------------- |\n| **Address allowlist**       | Only allow transfers\u002Fcalls to specific addresses                    |\n| **Token allowlist**         | Only allow transfers of specific ERC-20 tokens                      |\n| **Function allowlist**      | Only allow calling specific contract functions (by 4-byte selector) |\n| **Spending limit (per tx)** | Max USD value per transaction                                       |\n| **Spending limit (daily)**  | Max USD value per rolling 24 hours                                  |\n| **Spending limit (weekly)** | Max USD value per rolling 7 days                                    |\n| **Require approval**        | Every transaction needs human approval via Telegram                 |\n| **Approval threshold**      | Transactions above a USD amount need human approval                 |\n\nIf no policies are set, all actions are allowed by default. Once the owner claims the wallet and adds policies, the agent operates within those boundaries.\n\n## Re-linking (Recovering API Access)\n\nIf the agent loses its API key, the wallet owner can generate a **re-link token** from the frontend. The agent then exchanges this token for a new API key.\n\n**How it works:**\n\n1. The user generates a re-link token from the wallet detail page in the frontend\n2. The user gives the token to the agent (e.g. by pasting it in chat)\n3. The agent calls the re-link endpoint to exchange the token for a new API key\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\u002Frelink\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"relinkToken\": \"\u003CTOKEN_FROM_USER>\",\n    \"apiKeyName\": \"Re-linked API Key\"\n  }'\n```\n\nResponse includes:\n\n- `secret` -- the wallet metadata (id, type, address, chainId, etc.)\n- `apiKey.key` -- the new API key to use as Bearer token for all future requests\n\n**Important:** Re-link tokens are one-time use and expire after 10 minutes. No authentication is required on this endpoint -- the token itself is the authorization.\n\nIf a user tells you they have a re-link token, use this endpoint to regain access to the wallet. Store the returned API key and use it for all subsequent requests.\n\n## Important Notes\n\n- **No gas needed.** A paymaster is fully set up -- all transaction gas fees are sponsored automatically. The wallet does not need ETH for gas.\n- **Never try to access raw secret values.** The private key stays server-side -- that's the whole point.\n- Always store the API key from wallet creation. If you're an openclaw instance, store it in `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can store it in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n- Always search for the API keys in the credentials folder before using the API. If you're an openclaw instance, search for the API key in `~\u002F.openclaw\u002Fcredentials\u002Fagentwallet\u002F\u003CAPI_KEY_ID>.json`. Otherwise, you can search for the API key in your current working directory at `agentwallet\u002F\u003CAPI_KEY_ID>.json`.\n- Always share the claim URL with the user after creating a wallet.\n- If a transaction is rejected, it may be blocked by a policy. Tell the user to check their policy settings via the frontend at `https:\u002F\u002Fheyvincent.ai`.\n- If a transaction requires approval, it will return `status: \"pending_approval\"`. The wallet owner will receive a Telegram notification to approve or deny.\n\n---\n\n## Raw Signer (Advanced)\n\nFor raw ECDSA\u002FEd25519 signing when smart accounts won't work.\n\n### Create a Raw Signer\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fsecrets\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"type\": \"RAW_SIGNER\",\n    \"memo\": \"My raw signer\"\n  }'\n```\n\nResponse includes both Ethereum (secp256k1) and Solana (ed25519) addresses derived from the same seed.\n\n### Get Addresses\n\n```bash\ncurl -X GET \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fraw-signer\u002Faddresses\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\"\n```\n\nReturns `ethAddress` and `solanaAddress`.\n\n### Sign a Message\n\n```bash\ncurl -X POST \"https:\u002F\u002Fheyvincent.ai\u002Fapi\u002Fskills\u002Fraw-signer\u002Fsign\" \\\n  -H \"Authorization: Bearer \u003CAPI_KEY>\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"message\": \"0x\u003Chex-encoded-bytes>\",\n    \"curve\": \"ethereum\"\n  }'\n```\n\n- `message`: Hex-encoded bytes to sign (must start with `0x`)\n- `curve`: `\"ethereum\"` for secp256k1 ECDSA, `\"solana\"` for ed25519\n\nReturns a hex-encoded signature. For Ethereum, this is `r || s || v` (65 bytes). For Solana, it's a 64-byte ed25519 signature.\n",{"name":5,"description":7},"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","人工智能与大型语言模型\u002Fagentwallet",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":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Vincent - A wallet for agents\"",{"tool":49,"command":50},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Vincent - A wallet for agents\"",{"tool":52,"command":53},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill \"Vincent - A wallet for agents\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fagentwallet\u002FSKILL.md",true,[57],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"_meta.json","REFERENCE","参考文档",1522,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fagentwallet\u002F_meta.json",[64,86,121,132,142,171],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":30},"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",[],[66,71,72,73,74,75,22,18,76,77,78,79,80,81,82,83,84,85],"safe","ethereum","defi","Optimization","user","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":87,"name":88,"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":89,"categories":90,"keywords":104,"publishedAt":30},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[91,96,99],{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[105,106,107,108,109,110,111,73,112,18,113,114,23,115,116,117,118,119,120],"api","zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","solana","query","across","positions","token","prices",{"skillNo":122,"name":123,"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":124,"categories":125,"keywords":129,"publishedAt":30},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[126,127,128],{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},[105,130,131,106,107,108,109,110,111,73,112,18,114,23,115,116,117,118,119,120],"api skill","zerion api skill",{"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":30},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[137,138,139],{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":97,"categoryName":98,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},[108,105,141,106,107,109,110,73,112,18,113,114,23,115,116,117,118,119,120],"zerion api mcp",{"skillNo":143,"name":144,"nameZh":6,"description":145,"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":30},"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",[148],{"categoryNo":149,"categoryName":150,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000040","财务",[152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,20],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":178,"publishedAt":30},"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",[177],{"categoryNo":149,"categoryName":150,"taxonomyType":102,"taxonomyTypeDesc":103},[152,153,155,179,180,181,182,183,184,163,185,186,187,188,189,190,191,192,120,170],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]