{
  "schemaVersion": "1.0",
  "item": {
    "slug": "arbitrum-dapp-skill",
    "name": "Arbitrum Dapp Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/hummusonrails/arbitrum-dapp-skill",
    "canonicalUrl": "https://clawhub.ai/hummusonrails/arbitrum-dapp-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/arbitrum-dapp-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=arbitrum-dapp-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "docs/assets/arbitrum-horizontal-white.svg",
      "docs/assets/arbitrum-logomark.svg",
      "docs/index.html",
      "install.sh"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "arbitrum-dapp-skill",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T03:33:45.956Z",
      "expiresAt": "2026-05-07T03:33:45.956Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=arbitrum-dapp-skill",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=arbitrum-dapp-skill",
        "contentDisposition": "attachment; filename=\"arbitrum-dapp-skill-1.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "arbitrum-dapp-skill"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/arbitrum-dapp-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/arbitrum-dapp-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/arbitrum-dapp-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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Stack",
        "body": "LayerToolNotesSmart contracts (Rust)stylus-sdk v0.10+Compiled to WASM, runs on Stylus VMSmart contracts (Solidity)Solidity 0.8.x + FoundryStandard EVM path on ArbitrumLocal nodenitro-devnodeDocker-based local Arbitrum chainContract CLIcargo-stylusCheck, deploy, export-abi for StylusContract toolchainFoundry (forge, cast, anvil)Build, test, deploy, interact for SolidityFrontendReact / Next.js + viem + wagmiviem for all chain interactionPackage managerpnpmWorkspace-friendly, fast"
      },
      {
        "title": "Decision Flow",
        "body": "When starting a new contract:\n\nNeed max performance / lower gas? → Stylus Rust. See references/stylus-rust-contracts.md.\nNeed broad tooling compatibility / rapid prototyping? → Solidity. See references/solidity-contracts.md.\nHybrid? → Use both. Stylus and Solidity contracts are fully interoperable on Arbitrum."
      },
      {
        "title": "Monorepo layout (recommended)",
        "body": "my-arbitrum-dapp/\n├── apps/\n│   ├── frontend/            # React / Next.js app\n│   ├── contracts-stylus/    # Rust Stylus contracts\n│   ├── contracts-solidity/  # Foundry Solidity contracts\n│   └── nitro-devnode/       # Local dev chain (git submodule)\n├── pnpm-workspace.yaml\n└── package.json"
      },
      {
        "title": "Bootstrap steps",
        "body": "# 1. Create workspace\nmkdir my-arbitrum-dapp && cd my-arbitrum-dapp\npnpm init\nprintf \"packages:\\n  - 'apps/*'\\n\" > pnpm-workspace.yaml\n\n# 2. Local devnode\ngit clone https://github.com/OffchainLabs/nitro-devnode.git apps/nitro-devnode\ncd apps/nitro-devnode && ./run-dev-node.sh && cd ../..\n\n# 3a. Stylus contract\ncargo stylus new apps/contracts-stylus\n\n# 3b. Solidity contract\ncd apps && forge init contracts-solidity && cd ..\n\n# 4. Frontend\npnpm create next-app apps/frontend --typescript\ncd apps/frontend\npnpm add viem wagmi @tanstack/react-query"
      },
      {
        "title": "Stylus Rust",
        "body": "# Validate\ncargo stylus check --endpoint http://localhost:8547\n\n# Deploy (uses the nitro-devnode pre-funded deployer account)\ncargo stylus deploy \\\n  --endpoint http://localhost:8547 \\\n  --private-key $PRIVATE_KEY\n\n# Export ABI for frontend consumption\ncargo stylus export-abi"
      },
      {
        "title": "Solidity (Foundry)",
        "body": "# Build\nforge build\n\n# Test\nforge test\n\n# Deploy locally (uses the nitro-devnode pre-funded deployer account)\nforge script script/Deploy.s.sol --rpc-url http://localhost:8547 --broadcast \\\n  --private-key $PRIVATE_KEY\n\nNote: The nitro-devnode ships with a pre-funded deployer account. See references/local-devnode.md for the default private key and address. For testnet/mainnet, use your own key via environment variables — never hardcode secrets."
      },
      {
        "title": "Frontend (viem + wagmi)",
        "body": "import { createPublicClient, http } from \"viem\";\nimport { arbitrumSepolia } from \"viem/chains\";\n\nconst client = createPublicClient({\n  chain: arbitrumSepolia,\n  transport: http(),\n});\n\n// Read from contract\nconst result = await client.readContract({\n  address: \"0x...\",\n  abi: contractAbi,\n  functionName: \"myFunction\",\n});\n\nSee references/frontend-integration.md for full patterns with wagmi hooks, wallet connection, and write transactions."
      },
      {
        "title": "Principles",
        "body": "Always use viem for chain interaction.\nTest locally first against nitro-devnode before deploying to testnet.\nExport ABIs from both Stylus (cargo stylus export-abi) and Solidity (forge inspect) and keep them in a shared location the frontend can import.\nUse environment variables for RPC URLs, contract addresses, and private keys. Never hardcode secrets.\nStylus contracts are EVM-compatible — they share the same address space, storage model, and ABI encoding as Solidity contracts. Cross-contract calls work seamlessly."
      },
      {
        "title": "References",
        "body": "Load these as needed for deeper guidance:\n\nreferences/stylus-rust-contracts.md — Stylus SDK patterns, storage, macros, entrypoints\nreferences/solidity-contracts.md — Solidity on Arbitrum specifics and Foundry workflow\nreferences/frontend-integration.md — React + viem + wagmi patterns\nreferences/local-devnode.md — Nitro devnode setup, accounts, and debugging\nreferences/deployment.md — Deploying to testnet and mainnet\nreferences/testing.md — Testing strategies for both Stylus and Solidity"
      }
    ],
    "body": "Arbitrum dApp Development\nStack\nLayer\tTool\tNotes\nSmart contracts (Rust)\tstylus-sdk v0.10+\tCompiled to WASM, runs on Stylus VM\nSmart contracts (Solidity)\tSolidity 0.8.x + Foundry\tStandard EVM path on Arbitrum\nLocal node\tnitro-devnode\tDocker-based local Arbitrum chain\nContract CLI\tcargo-stylus\tCheck, deploy, export-abi for Stylus\nContract toolchain\tFoundry (forge, cast, anvil)\tBuild, test, deploy, interact for Solidity\nFrontend\tReact / Next.js + viem + wagmi\tviem for all chain interaction\nPackage manager\tpnpm\tWorkspace-friendly, fast\nDecision Flow\n\nWhen starting a new contract:\n\nNeed max performance / lower gas? → Stylus Rust. See references/stylus-rust-contracts.md.\nNeed broad tooling compatibility / rapid prototyping? → Solidity. See references/solidity-contracts.md.\nHybrid? → Use both. Stylus and Solidity contracts are fully interoperable on Arbitrum.\nProject Scaffolding\nMonorepo layout (recommended)\nmy-arbitrum-dapp/\n├── apps/\n│   ├── frontend/            # React / Next.js app\n│   ├── contracts-stylus/    # Rust Stylus contracts\n│   ├── contracts-solidity/  # Foundry Solidity contracts\n│   └── nitro-devnode/       # Local dev chain (git submodule)\n├── pnpm-workspace.yaml\n└── package.json\n\nBootstrap steps\n# 1. Create workspace\nmkdir my-arbitrum-dapp && cd my-arbitrum-dapp\npnpm init\nprintf \"packages:\\n  - 'apps/*'\\n\" > pnpm-workspace.yaml\n\n# 2. Local devnode\ngit clone https://github.com/OffchainLabs/nitro-devnode.git apps/nitro-devnode\ncd apps/nitro-devnode && ./run-dev-node.sh && cd ../..\n\n# 3a. Stylus contract\ncargo stylus new apps/contracts-stylus\n\n# 3b. Solidity contract\ncd apps && forge init contracts-solidity && cd ..\n\n# 4. Frontend\npnpm create next-app apps/frontend --typescript\ncd apps/frontend\npnpm add viem wagmi @tanstack/react-query\n\nCore Workflow\nStylus Rust\n# Validate\ncargo stylus check --endpoint http://localhost:8547\n\n# Deploy (uses the nitro-devnode pre-funded deployer account)\ncargo stylus deploy \\\n  --endpoint http://localhost:8547 \\\n  --private-key $PRIVATE_KEY\n\n# Export ABI for frontend consumption\ncargo stylus export-abi\n\nSolidity (Foundry)\n# Build\nforge build\n\n# Test\nforge test\n\n# Deploy locally (uses the nitro-devnode pre-funded deployer account)\nforge script script/Deploy.s.sol --rpc-url http://localhost:8547 --broadcast \\\n  --private-key $PRIVATE_KEY\n\n\nNote: The nitro-devnode ships with a pre-funded deployer account. See references/local-devnode.md for the default private key and address. For testnet/mainnet, use your own key via environment variables — never hardcode secrets.\n\nFrontend (viem + wagmi)\nimport { createPublicClient, http } from \"viem\";\nimport { arbitrumSepolia } from \"viem/chains\";\n\nconst client = createPublicClient({\n  chain: arbitrumSepolia,\n  transport: http(),\n});\n\n// Read from contract\nconst result = await client.readContract({\n  address: \"0x...\",\n  abi: contractAbi,\n  functionName: \"myFunction\",\n});\n\n\nSee references/frontend-integration.md for full patterns with wagmi hooks, wallet connection, and write transactions.\n\nPrinciples\nAlways use viem for chain interaction.\nTest locally first against nitro-devnode before deploying to testnet.\nExport ABIs from both Stylus (cargo stylus export-abi) and Solidity (forge inspect) and keep them in a shared location the frontend can import.\nUse environment variables for RPC URLs, contract addresses, and private keys. Never hardcode secrets.\nStylus contracts are EVM-compatible — they share the same address space, storage model, and ABI encoding as Solidity contracts. Cross-contract calls work seamlessly.\nReferences\n\nLoad these as needed for deeper guidance:\n\nreferences/stylus-rust-contracts.md — Stylus SDK patterns, storage, macros, entrypoints\nreferences/solidity-contracts.md — Solidity on Arbitrum specifics and Foundry workflow\nreferences/frontend-integration.md — React + viem + wagmi patterns\nreferences/local-devnode.md — Nitro devnode setup, accounts, and debugging\nreferences/deployment.md — Deploying to testnet and mainnet\nreferences/testing.md — Testing strategies for both Stylus and Solidity"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/hummusonrails/arbitrum-dapp-skill",
    "publisherUrl": "https://clawhub.ai/hummusonrails/arbitrum-dapp-skill",
    "owner": "hummusonrails",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/arbitrum-dapp-skill",
    "agentUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/arbitrum-dapp-skill/agent.md"
  }
}