{
  "schemaVersion": "1.0",
  "item": {
    "slug": "metamask-agent-wallet-skill",
    "name": "MetaMask Agent Wallet",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/andreolf/metamask-agent-wallet-skill",
    "canonicalUrl": "https://clawhub.ai/andreolf/metamask-agent-wallet-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/metamask-agent-wallet-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=metamask-agent-wallet-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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/metamask-agent-wallet-skill"
    },
    "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/metamask-agent-wallet-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/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": "MetaMask Agent Wallet Skill",
        "body": "Controls a sandboxed MetaMask wallet for autonomous blockchain transactions with configurable permission guardrails."
      },
      {
        "title": "Overview",
        "body": "This skill allows AI agents to interact with dapps and execute transactions through a dedicated MetaMask wallet. All operations are subject to user-defined constraints (spend limits, protocol allowlists, approval thresholds).\n\nSecurity Model: The agent controls a separate wallet in an isolated browser profile. Never use your main wallet."
      },
      {
        "title": "1. Install Dependencies",
        "body": "cd metamask-agent-skill\nnpm install\nnpx playwright install chromium"
      },
      {
        "title": "2. Create Agent Wallet Profile",
        "body": "npm run setup\n\nThis will:\n\nCreate a fresh Chrome profile at ~/.agent-wallet/chrome-profile\nInstall MetaMask extension\nGuide you through wallet creation (use a NEW seed phrase)"
      },
      {
        "title": "3. Fund the Wallet",
        "body": "Transfer a small amount to your agent wallet:\n\nETH for gas (0.01-0.05 ETH recommended)\nTokens for operations (start small, e.g., $50 USDC)"
      },
      {
        "title": "4. Configure Permissions",
        "body": "Edit permissions.json to set your constraints:\n\n{\n  \"constraints\": {\n    \"spendLimit\": {\n      \"daily\": \"50000000\",    // $50 in 6-decimal format\n      \"perTx\": \"10000000\"     // $10 max per transaction\n    },\n    \"allowedChains\": [1, 137, 42161],\n    \"allowedProtocols\": [\"0x...uniswap\", \"0x...1inch\"]\n  }\n}"
      },
      {
        "title": "Connect to Dapp",
        "body": "connect <dapp-url>\n\nNavigates to dapp and connects the agent wallet.\n\nExample: connect https://app.uniswap.org"
      },
      {
        "title": "Execute Swap",
        "body": "swap <amount> <token-in> for <token-out> [on <dex>]\n\nExecutes a token swap on an allowed DEX.\n\nExample: swap 0.01 ETH for USDC on uniswap"
      },
      {
        "title": "Send Tokens",
        "body": "send <amount> <token> to <address>\n\nSends tokens to an address (within spend limits).\n\nExample: send 10 USDC to 0x1234..."
      },
      {
        "title": "Sign Message",
        "body": "sign <message>\n\nSigns an arbitrary message. Use with caution."
      },
      {
        "title": "Check Balance",
        "body": "balance [token]\n\nReturns wallet balances."
      },
      {
        "title": "View Transaction History",
        "body": "history [count]\n\nShows recent agent transactions with outcomes."
      },
      {
        "title": "Constraints",
        "body": "All operations check against permissions.json before execution:\n\nConstraintDescriptionspendLimit.dailyMax USD value per 24h periodspendLimit.perTxMax USD value per transactionallowedChainsWhitelisted chain IDsallowedProtocolsWhitelisted contract addressesblockedMethodsForbidden function selectorsrequireApproval.aboveThreshold requiring user confirmation"
      },
      {
        "title": "Approval Flow",
        "body": "When a transaction exceeds requireApproval.above:\n\nAgent pauses execution\nTransaction details are logged\nAgent reports: \"Transaction requires approval: [details]\"\nUser must explicitly approve before agent continues"
      },
      {
        "title": "Safety",
        "body": "Isolated Profile: Agent uses separate Chrome profile, never your main browser\nSeparate Wallet: Agent wallet is completely separate from your main wallet\nSpend Caps: Hard limits prevent runaway spending\nProtocol Allowlist: Only whitelisted contracts can be called\nFull Logging: Every transaction intent and outcome is logged\nRevocation: Set \"revoked\": true in permissions.json to disable all actions"
      },
      {
        "title": "Logging",
        "body": "All transactions are logged to ~/.agent-wallet/logs/:\n\n{\n  \"timestamp\": 1706900000000,\n  \"action\": \"swap\",\n  \"intent\": { \"to\": \"0x...\", \"value\": \"0\", \"data\": \"0x...\" },\n  \"guardResult\": { \"allowed\": true },\n  \"outcome\": \"confirmed\",\n  \"txHash\": \"0x...\"\n}\n\nUse history command to view recent transactions."
      },
      {
        "title": "\"Protocol not allowed\"",
        "body": "Add the contract address to allowedProtocols in permissions.json."
      },
      {
        "title": "\"Exceeds daily limit\"",
        "body": "Wait 24h or increase spendLimit.daily."
      },
      {
        "title": "MetaMask popup not detected",
        "body": "Ensure the browser profile path is correct and MetaMask is installed."
      },
      {
        "title": "Transaction simulation failed",
        "body": "The dapp may be trying to call a blocked method or unsupported chain."
      },
      {
        "title": "Architecture",
        "body": "src/\n├── index.ts          # Main entry point\n├── browser.ts        # Playwright browser management\n├── wallet.ts         # MetaMask interaction primitives\n├── guard.ts          # Permission enforcement\n├── logger.ts         # Transaction logging\n├── price.ts          # USD price estimation\n├── types.ts          # TypeScript types\n└── config.ts         # Configuration loading"
      },
      {
        "title": "Integration with Gator",
        "body": "When Gator accounts are available, permissions.json can be replaced with on-chain permission attestations. The guard will validate against Gator's permission registry instead of local config."
      }
    ],
    "body": "MetaMask Agent Wallet Skill\n\nControls a sandboxed MetaMask wallet for autonomous blockchain transactions with configurable permission guardrails.\n\nOverview\n\nThis skill allows AI agents to interact with dapps and execute transactions through a dedicated MetaMask wallet. All operations are subject to user-defined constraints (spend limits, protocol allowlists, approval thresholds).\n\nSecurity Model: The agent controls a separate wallet in an isolated browser profile. Never use your main wallet.\n\nSetup\n1. Install Dependencies\ncd metamask-agent-skill\nnpm install\nnpx playwright install chromium\n\n2. Create Agent Wallet Profile\nnpm run setup\n\n\nThis will:\n\nCreate a fresh Chrome profile at ~/.agent-wallet/chrome-profile\nInstall MetaMask extension\nGuide you through wallet creation (use a NEW seed phrase)\n3. Fund the Wallet\n\nTransfer a small amount to your agent wallet:\n\nETH for gas (0.01-0.05 ETH recommended)\nTokens for operations (start small, e.g., $50 USDC)\n4. Configure Permissions\n\nEdit permissions.json to set your constraints:\n\n{\n  \"constraints\": {\n    \"spendLimit\": {\n      \"daily\": \"50000000\",    // $50 in 6-decimal format\n      \"perTx\": \"10000000\"     // $10 max per transaction\n    },\n    \"allowedChains\": [1, 137, 42161],\n    \"allowedProtocols\": [\"0x...uniswap\", \"0x...1inch\"]\n  }\n}\n\nAvailable Actions\nConnect to Dapp\nconnect <dapp-url>\n\n\nNavigates to dapp and connects the agent wallet.\n\nExample: connect https://app.uniswap.org\n\nExecute Swap\nswap <amount> <token-in> for <token-out> [on <dex>]\n\n\nExecutes a token swap on an allowed DEX.\n\nExample: swap 0.01 ETH for USDC on uniswap\n\nSend Tokens\nsend <amount> <token> to <address>\n\n\nSends tokens to an address (within spend limits).\n\nExample: send 10 USDC to 0x1234...\n\nSign Message\nsign <message>\n\n\nSigns an arbitrary message. Use with caution.\n\nCheck Balance\nbalance [token]\n\n\nReturns wallet balances.\n\nView Transaction History\nhistory [count]\n\n\nShows recent agent transactions with outcomes.\n\nConstraints\n\nAll operations check against permissions.json before execution:\n\nConstraint\tDescription\nspendLimit.daily\tMax USD value per 24h period\nspendLimit.perTx\tMax USD value per transaction\nallowedChains\tWhitelisted chain IDs\nallowedProtocols\tWhitelisted contract addresses\nblockedMethods\tForbidden function selectors\nrequireApproval.above\tThreshold requiring user confirmation\nApproval Flow\n\nWhen a transaction exceeds requireApproval.above:\n\nAgent pauses execution\nTransaction details are logged\nAgent reports: \"Transaction requires approval: [details]\"\nUser must explicitly approve before agent continues\nSafety\nIsolated Profile: Agent uses separate Chrome profile, never your main browser\nSeparate Wallet: Agent wallet is completely separate from your main wallet\nSpend Caps: Hard limits prevent runaway spending\nProtocol Allowlist: Only whitelisted contracts can be called\nFull Logging: Every transaction intent and outcome is logged\nRevocation: Set \"revoked\": true in permissions.json to disable all actions\nLogging\n\nAll transactions are logged to ~/.agent-wallet/logs/:\n\n{\n  \"timestamp\": 1706900000000,\n  \"action\": \"swap\",\n  \"intent\": { \"to\": \"0x...\", \"value\": \"0\", \"data\": \"0x...\" },\n  \"guardResult\": { \"allowed\": true },\n  \"outcome\": \"confirmed\",\n  \"txHash\": \"0x...\"\n}\n\n\nUse history command to view recent transactions.\n\nTroubleshooting\n\"Protocol not allowed\"\n\nAdd the contract address to allowedProtocols in permissions.json.\n\n\"Exceeds daily limit\"\n\nWait 24h or increase spendLimit.daily.\n\nMetaMask popup not detected\n\nEnsure the browser profile path is correct and MetaMask is installed.\n\nTransaction simulation failed\n\nThe dapp may be trying to call a blocked method or unsupported chain.\n\nArchitecture\nsrc/\n├── index.ts          # Main entry point\n├── browser.ts        # Playwright browser management\n├── wallet.ts         # MetaMask interaction primitives\n├── guard.ts          # Permission enforcement\n├── logger.ts         # Transaction logging\n├── price.ts          # USD price estimation\n├── types.ts          # TypeScript types\n└── config.ts         # Configuration loading\n\nIntegration with Gator\n\nWhen Gator accounts are available, permissions.json can be replaced with on-chain permission attestations. The guard will validate against Gator's permission registry instead of local config."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/andreolf/metamask-agent-wallet-skill",
    "publisherUrl": "https://clawhub.ai/andreolf/metamask-agent-wallet-skill",
    "owner": "andreolf",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/metamask-agent-wallet-skill",
    "agentUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/metamask-agent-wallet-skill/agent.md"
  }
}