{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cryptowallet",
    "name": "CryptoWallet - Multi-Chain Blockchain Wallet Manager",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/gnufoo/cryptowallet",
    "canonicalUrl": "https://clawhub.ai/gnufoo/cryptowallet",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cryptowallet",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cryptowallet",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/networks.json",
      "references/security.md",
      "requirements.txt",
      "scripts/balance_checker.py",
      "scripts/contract_interactor.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cryptowallet"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/cryptowallet",
    "agentPageUrl": "https://openagent3.xyz/skills/cryptowallet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cryptowallet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cryptowallet/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "CryptoWallet",
        "body": "Comprehensive cryptocurrency wallet management for Clawdbot agents. Securely create, manage, and transact across multiple blockchain networks with encrypted local key storage."
      },
      {
        "title": "EVM Chains (12 networks)",
        "body": "Ethereum, Polygon, BSC, Arbitrum, Optimism, Base\nAvalanche, Fantom, Gnosis, zkSync, Linea, Scroll"
      },
      {
        "title": "Solana",
        "body": "Mainnet and Devnet\n\nFull network details in references/networks.json."
      },
      {
        "title": "1. Wallet Management",
        "body": "Create new wallets or import existing ones:\n\n# Create new EVM wallet\npython3 scripts/wallet_manager.py create my-eth-wallet --chain evm --password \"secure-password\"\n\n# Create new Solana wallet\npython3 scripts/wallet_manager.py create my-sol-wallet --chain solana --password \"secure-password\"\n\n# Import existing wallet\npython3 scripts/wallet_manager.py import imported-wallet --chain evm --key \"0x...\" --password \"secure-password\"\n\n# List all wallets\npython3 scripts/wallet_manager.py list"
      },
      {
        "title": "2. Balance Checking",
        "body": "Query native and token balances:\n\n# Native ETH balance on Ethereum\npython3 scripts/balance_checker.py 0xYourAddress --network ethereum\n\n# ERC20 token balance\npython3 scripts/balance_checker.py 0xYourAddress --network polygon --token 0xTokenAddress\n\n# Check all EVM networks at once\npython3 scripts/balance_checker.py 0xYourAddress --all-evm\n\n# Solana balance\npython3 scripts/balance_checker.py YourSolanaAddress --network solana\n\n# SPL token balance\npython3 scripts/balance_checker.py YourSolanaAddress --network solana --token MintAddress"
      },
      {
        "title": "3. Token Transfers",
        "body": "Send native tokens or ERC20/SPL tokens:\n\n# Send ETH\npython3 scripts/token_sender.py my-wallet 0xRecipient 0.1 --network ethereum --password \"password\"\n\n# Send ERC20 token\npython3 scripts/token_sender.py my-wallet 0xRecipient 100 --network polygon --token 0xTokenAddress --password \"password\"\n\n# Send SOL\npython3 scripts/token_sender.py my-wallet RecipientAddress 1.5 --network solana --password \"password\"\n\nSecurity: Password required for every transaction. Private keys never leave encrypted storage unprotected."
      },
      {
        "title": "4. Smart Contract Interaction",
        "body": "Call contract functions (read and write):\n\n# Read call (view function)\npython3 scripts/contract_interactor.py 0xContract functionName --abi contract.json --network ethereum --args '[123, \"param2\"]'\n\n# Write call (transaction)\npython3 scripts/contract_interactor.py 0xContract mint --abi nft.json --network polygon --args '[1]' --write --wallet my-wallet --password \"password\"\n\n# Payable function (send ETH with call)\npython3 scripts/contract_interactor.py 0xContract purchase --abi contract.json --network ethereum --args '[]' --write --wallet my-wallet --password \"password\" --value 0.05"
      },
      {
        "title": "Encryption",
        "body": "Algorithm: AES-256-GCM with PBKDF2 key derivation\nIterations: 100,000 (OWASP recommended)\nSalt: Random 16-byte salt per wallet\nStorage: ~/.clawdbot/cryptowallet/ with 0600 permissions"
      },
      {
        "title": "Key Principles",
        "body": "Password-protected transactions - Every send/sign operation requires password\nEncrypted at rest - Private keys never stored in plaintext\nNo key exposure - Keys decrypted in memory only during signing\nIsolated storage - Each wallet has independent encryption\n\nSee references/security.md for complete security documentation."
      },
      {
        "title": "Portfolio Management",
        "body": "Check balances across all networks:\n\npython3 scripts/balance_checker.py 0xYourAddress --all-evm"
      },
      {
        "title": "Multi-Chain Operations",
        "body": "Send the same token across different chains:\n\n# Polygon USDC\npython3 scripts/token_sender.py wallet recipient 100 --network polygon --token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 --password \"pwd\"\n\n# Arbitrum USDC\npython3 scripts/token_sender.py wallet recipient 100 --network arbitrum --token 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8 --password \"pwd\""
      },
      {
        "title": "DeFi Protocol Interaction",
        "body": "Example: Approve and stake tokens\n\n# 1. Approve token spending\npython3 scripts/contract_interactor.py 0xTokenAddress approve --abi erc20.json --network ethereum --args '[\"0xProtocolAddress\", \"1000000000000000000000\"]' --write --wallet my-wallet --password \"pwd\"\n\n# 2. Stake tokens\npython3 scripts/contract_interactor.py 0xStakingContract stake --abi staking.json --network ethereum --args '[\"1000000000000000000000\"]' --write --wallet my-wallet --password \"pwd\""
      },
      {
        "title": "Network Configuration",
        "body": "Modify references/networks.json to:\n\nAdd custom RPCs (Infura, Alchemy, QuickNode)\nAdd new networks\nUpdate chain IDs or explorers\n\nDefault RPCs are public and may have rate limits. For production, use dedicated RPC providers."
      },
      {
        "title": "Dependencies",
        "body": "Install required packages:\n\npip install web3 solana solders eth-account cryptography base58"
      },
      {
        "title": "\"Incorrect password\"",
        "body": "Password is case-sensitive\nNo recovery if password is lost (by design)"
      },
      {
        "title": "\"Insufficient funds\"",
        "body": "Check balance includes gas fees\nOn Ethereum: gas can be $5-50+ per transaction"
      },
      {
        "title": "\"Transaction failed\"",
        "body": "Verify network selection\nCheck contract address is correct\nEnsure enough gas limit for complex operations"
      },
      {
        "title": "RPC errors",
        "body": "Public RPCs may be rate-limited\nUse references/networks.json to configure your own RPC endpoint"
      },
      {
        "title": "Custom Network",
        "body": "Add to references/networks.json:\n\n{\n  \"evm\": {\n    \"your-network\": {\n      \"name\": \"Your Chain\",\n      \"chain_id\": 12345,\n      \"rpc\": \"https://rpc.yourchain.com\",\n      \"explorer\": \"https://explorer.yourchain.com\",\n      \"native_token\": \"TOKEN\"\n    }\n  }\n}"
      },
      {
        "title": "Batch Operations",
        "body": "Use shell loops for batch transactions:\n\nfor addr in $(cat recipients.txt); do\n  python3 scripts/token_sender.py wallet $addr 1 --network polygon --password \"pwd\"\ndone"
      },
      {
        "title": "Smart Contract ABIs",
        "body": "Generate ABIs from verified contracts on block explorers, or from your Solidity project's artifacts/ folder."
      },
      {
        "title": "Limitations",
        "body": "Solana SPL transfers: Basic implementation (may need token account creation)\nHardware wallets: Not supported (encrypted file storage only)\nMulti-sig: Not supported\nGas estimation: Uses fixed limits (may fail for complex contracts)"
      },
      {
        "title": "Best Practices",
        "body": "Test on devnet/testnet first before mainnet transactions\nUse separate wallets for different purposes (trading, DeFi, cold storage)\nBackup wallet files and store passwords securely\nVerify addresses - blockchain transactions are irreversible\nMonitor gas prices - wait for lower congestion on Ethereum\n\nSee references/security.md for comprehensive security guidelines."
      }
    ],
    "body": "CryptoWallet\n\nComprehensive cryptocurrency wallet management for Clawdbot agents. Securely create, manage, and transact across multiple blockchain networks with encrypted local key storage.\n\nSupported Networks\nEVM Chains (12 networks)\nEthereum, Polygon, BSC, Arbitrum, Optimism, Base\nAvalanche, Fantom, Gnosis, zkSync, Linea, Scroll\nSolana\nMainnet and Devnet\n\nFull network details in references/networks.json.\n\nCore Features\n1. Wallet Management\n\nCreate new wallets or import existing ones:\n\n# Create new EVM wallet\npython3 scripts/wallet_manager.py create my-eth-wallet --chain evm --password \"secure-password\"\n\n# Create new Solana wallet\npython3 scripts/wallet_manager.py create my-sol-wallet --chain solana --password \"secure-password\"\n\n# Import existing wallet\npython3 scripts/wallet_manager.py import imported-wallet --chain evm --key \"0x...\" --password \"secure-password\"\n\n# List all wallets\npython3 scripts/wallet_manager.py list\n\n2. Balance Checking\n\nQuery native and token balances:\n\n# Native ETH balance on Ethereum\npython3 scripts/balance_checker.py 0xYourAddress --network ethereum\n\n# ERC20 token balance\npython3 scripts/balance_checker.py 0xYourAddress --network polygon --token 0xTokenAddress\n\n# Check all EVM networks at once\npython3 scripts/balance_checker.py 0xYourAddress --all-evm\n\n# Solana balance\npython3 scripts/balance_checker.py YourSolanaAddress --network solana\n\n# SPL token balance\npython3 scripts/balance_checker.py YourSolanaAddress --network solana --token MintAddress\n\n3. Token Transfers\n\nSend native tokens or ERC20/SPL tokens:\n\n# Send ETH\npython3 scripts/token_sender.py my-wallet 0xRecipient 0.1 --network ethereum --password \"password\"\n\n# Send ERC20 token\npython3 scripts/token_sender.py my-wallet 0xRecipient 100 --network polygon --token 0xTokenAddress --password \"password\"\n\n# Send SOL\npython3 scripts/token_sender.py my-wallet RecipientAddress 1.5 --network solana --password \"password\"\n\n\nSecurity: Password required for every transaction. Private keys never leave encrypted storage unprotected.\n\n4. Smart Contract Interaction\n\nCall contract functions (read and write):\n\n# Read call (view function)\npython3 scripts/contract_interactor.py 0xContract functionName --abi contract.json --network ethereum --args '[123, \"param2\"]'\n\n# Write call (transaction)\npython3 scripts/contract_interactor.py 0xContract mint --abi nft.json --network polygon --args '[1]' --write --wallet my-wallet --password \"password\"\n\n# Payable function (send ETH with call)\npython3 scripts/contract_interactor.py 0xContract purchase --abi contract.json --network ethereum --args '[]' --write --wallet my-wallet --password \"password\" --value 0.05\n\nSecurity Architecture\nEncryption\nAlgorithm: AES-256-GCM with PBKDF2 key derivation\nIterations: 100,000 (OWASP recommended)\nSalt: Random 16-byte salt per wallet\nStorage: ~/.clawdbot/cryptowallet/ with 0600 permissions\nKey Principles\nPassword-protected transactions - Every send/sign operation requires password\nEncrypted at rest - Private keys never stored in plaintext\nNo key exposure - Keys decrypted in memory only during signing\nIsolated storage - Each wallet has independent encryption\n\nSee references/security.md for complete security documentation.\n\nCommon Workflows\nPortfolio Management\n\nCheck balances across all networks:\n\npython3 scripts/balance_checker.py 0xYourAddress --all-evm\n\nMulti-Chain Operations\n\nSend the same token across different chains:\n\n# Polygon USDC\npython3 scripts/token_sender.py wallet recipient 100 --network polygon --token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 --password \"pwd\"\n\n# Arbitrum USDC\npython3 scripts/token_sender.py wallet recipient 100 --network arbitrum --token 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8 --password \"pwd\"\n\nDeFi Protocol Interaction\n\nExample: Approve and stake tokens\n\n# 1. Approve token spending\npython3 scripts/contract_interactor.py 0xTokenAddress approve --abi erc20.json --network ethereum --args '[\"0xProtocolAddress\", \"1000000000000000000000\"]' --write --wallet my-wallet --password \"pwd\"\n\n# 2. Stake tokens\npython3 scripts/contract_interactor.py 0xStakingContract stake --abi staking.json --network ethereum --args '[\"1000000000000000000000\"]' --write --wallet my-wallet --password \"pwd\"\n\nNetwork Configuration\n\nModify references/networks.json to:\n\nAdd custom RPCs (Infura, Alchemy, QuickNode)\nAdd new networks\nUpdate chain IDs or explorers\n\nDefault RPCs are public and may have rate limits. For production, use dedicated RPC providers.\n\nDependencies\n\nInstall required packages:\n\npip install web3 solana solders eth-account cryptography base58\n\nTroubleshooting\n\"Incorrect password\"\nPassword is case-sensitive\nNo recovery if password is lost (by design)\n\"Insufficient funds\"\nCheck balance includes gas fees\nOn Ethereum: gas can be $5-50+ per transaction\n\"Transaction failed\"\nVerify network selection\nCheck contract address is correct\nEnsure enough gas limit for complex operations\nRPC errors\nPublic RPCs may be rate-limited\nUse references/networks.json to configure your own RPC endpoint\nAdvanced Usage\nCustom Network\n\nAdd to references/networks.json:\n\n{\n  \"evm\": {\n    \"your-network\": {\n      \"name\": \"Your Chain\",\n      \"chain_id\": 12345,\n      \"rpc\": \"https://rpc.yourchain.com\",\n      \"explorer\": \"https://explorer.yourchain.com\",\n      \"native_token\": \"TOKEN\"\n    }\n  }\n}\n\nBatch Operations\n\nUse shell loops for batch transactions:\n\nfor addr in $(cat recipients.txt); do\n  python3 scripts/token_sender.py wallet $addr 1 --network polygon --password \"pwd\"\ndone\n\nSmart Contract ABIs\n\nGenerate ABIs from verified contracts on block explorers, or from your Solidity project's artifacts/ folder.\n\nLimitations\nSolana SPL transfers: Basic implementation (may need token account creation)\nHardware wallets: Not supported (encrypted file storage only)\nMulti-sig: Not supported\nGas estimation: Uses fixed limits (may fail for complex contracts)\nBest Practices\nTest on devnet/testnet first before mainnet transactions\nUse separate wallets for different purposes (trading, DeFi, cold storage)\nBackup wallet files and store passwords securely\nVerify addresses - blockchain transactions are irreversible\nMonitor gas prices - wait for lower congestion on Ethereum\n\nSee references/security.md for comprehensive security guidelines."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/gnufoo/cryptowallet",
    "publisherUrl": "https://clawhub.ai/gnufoo/cryptowallet",
    "owner": "gnufoo",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cryptowallet",
    "downloadUrl": "https://openagent3.xyz/downloads/cryptowallet",
    "agentUrl": "https://openagent3.xyz/skills/cryptowallet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cryptowallet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cryptowallet/agent.md"
  }
}