skills$openclaw/arbitrum-dapp-skill
hummusonrails6.0k

by hummusonrails

arbitrum-dapp-skill – OpenClaw Skill

arbitrum-dapp-skill is an OpenClaw Skills integration for coding workflows. Opinionated guide for building dApps on Arbitrum using Stylus (Rust) and/or Solidity. Covers local devnode setup, contract development, testing, deployment, and React frontend integration with viem. Use when starting a new Arbitrum project, writing Stylus or Solidity contracts, deploying to Arbitrum, or building a frontend that interacts with Arbitrum contracts.

6.0k stars4.6k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

namearbitrum-dapp-skill
descriptionOpinionated guide for building dApps on Arbitrum using Stylus (Rust) and/or Solidity. Covers local devnode setup, contract development, testing, deployment, and React frontend integration with viem. Use when starting a new Arbitrum project, writing Stylus or Solidity contracts, deploying to Arbitrum, or building a frontend that interacts with Arbitrum contracts. OpenClaw Skills integration.
ownerhummusonrails
repositoryhummusonrails/arbitrum-dapp-skill
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @hummusonrails/arbitrum-dapp-skill
last updatedFeb 7, 2026

Maintainer

hummusonrails

hummusonrails

Maintains arbitrum-dapp-skill in the OpenClaw Skills directory.

View GitHub profile
File Explorer
16 files
.
docs
assets
arbitrum-horizontal-white.svg
5.4 KB
arbitrum-logomark.svg
1.9 KB
index.html
31.9 KB
references
deployment.md
3.7 KB
frontend-integration.md
6.8 KB
local-devnode.md
2.8 KB
solidity-contracts.md
3.9 KB
stylus-rust-contracts.md
3.6 KB
testing.md
4.9 KB
_meta.json
297 B
install.sh
1.3 KB
README.md
6.0 KB
SKILL.md
4.7 KB
SKILL.md

name: arbitrum-dapp-skill description: Opinionated guide for building dApps on Arbitrum using Stylus (Rust) and/or Solidity. Covers local devnode setup, contract development, testing, deployment, and React frontend integration with viem. Use when starting a new Arbitrum project, writing Stylus or Solidity contracts, deploying to Arbitrum, or building a frontend that interacts with Arbitrum contracts.

Arbitrum dApp Development

Stack

LayerToolNotes
Smart contracts (Rust)stylus-sdk v0.10+Compiled to WASM, runs on Stylus VM
Smart contracts (Solidity)Solidity 0.8.x + FoundryStandard EVM path on Arbitrum
Local nodenitro-devnodeDocker-based local Arbitrum chain
Contract CLIcargo-stylusCheck, deploy, export-abi for Stylus
Contract toolchainFoundry (forge, cast, anvil)Build, test, deploy, interact for Solidity
FrontendReact / Next.js + viem + wagmiviem for all chain interaction
Package managerpnpmWorkspace-friendly, fast

Decision Flow

When starting a new contract:

  1. Need max performance / lower gas? → Stylus Rust. See references/stylus-rust-contracts.md.
  2. Need broad tooling compatibility / rapid prototyping? → Solidity. See references/solidity-contracts.md.
  3. Hybrid? → Use both. Stylus and Solidity contracts are fully interoperable on Arbitrum.

Monorepo layout (recommended)

my-arbitrum-dapp/
├── apps/
│   ├── frontend/            # React / Next.js app
│   ├── contracts-stylus/    # Rust Stylus contracts
│   ├── contracts-solidity/  # Foundry Solidity contracts
│   └── nitro-devnode/       # Local dev chain (git submodule)
├── pnpm-workspace.yaml
└── package.json

Bootstrap steps

# 1. Create workspace
mkdir my-arbitrum-dapp && cd my-arbitrum-dapp
pnpm init
printf "packages:\n  - 'apps/*'\n" > pnpm-workspace.yaml

# 2. Local devnode
git clone https://github.com/OffchainLabs/nitro-devnode.git apps/nitro-devnode
cd apps/nitro-devnode && ./run-dev-node.sh && cd ../..

# 3a. Stylus contract
cargo stylus new apps/contracts-stylus

# 3b. Solidity contract
cd apps && forge init contracts-solidity && cd ..

# 4. Frontend
pnpm create next-app apps/frontend --typescript
cd apps/frontend
pnpm add viem wagmi @tanstack/react-query

Core Workflow

Stylus Rust

# Validate
cargo stylus check --endpoint http://localhost:8547

# Deploy (uses the nitro-devnode pre-funded deployer account)
cargo stylus deploy \
  --endpoint http://localhost:8547 \
  --private-key $PRIVATE_KEY

# Export ABI for frontend consumption
cargo stylus export-abi

Solidity (Foundry)

# Build
forge build

# Test
forge test

# Deploy locally (uses the nitro-devnode pre-funded deployer account)
forge script script/Deploy.s.sol --rpc-url http://localhost:8547 --broadcast \
  --private-key $PRIVATE_KEY

Note: 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.

Frontend (viem + wagmi)

import { createPublicClient, http } from "viem";
import { arbitrumSepolia } from "viem/chains";

const client = createPublicClient({
  chain: arbitrumSepolia,
  transport: http(),
});

// Read from contract
const result = await client.readContract({
  address: "0x...",
  abi: contractAbi,
  functionName: "myFunction",
});

See references/frontend-integration.md for full patterns with wagmi hooks, wallet connection, and write transactions.

Principles

  • Always use viem for chain interaction.
  • Test locally first against nitro-devnode before deploying to testnet.
  • Export ABIs from both Stylus (cargo stylus export-abi) and Solidity (forge inspect) and keep them in a shared location the frontend can import.
  • Use environment variables for RPC URLs, contract addresses, and private keys. Never hardcode secrets.
  • Stylus contracts are EVM-compatible — they share the same address space, storage model, and ABI encoding as Solidity contracts. Cross-contract calls work seamlessly.

References

Load these as needed for deeper guidance:

  • references/stylus-rust-contracts.md — Stylus SDK patterns, storage, macros, entrypoints
  • references/solidity-contracts.md — Solidity on Arbitrum specifics and Foundry workflow
  • references/frontend-integration.md — React + viem + wagmi patterns
  • references/local-devnode.md — Nitro devnode setup, accounts, and debugging
  • references/deployment.md — Deploying to testnet and mainnet
  • references/testing.md — Testing strategies for both Stylus and Solidity
README.md
<p align="center"> <img src=".github/banner.svg" alt="arbitrum-dapp-skill" width="100%"> </p> <p align="center"> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square" alt="License: MIT"></a> <a href="https://www.rust-lang.org"><img src="https://img.shields.io/badge/Rust-1.81+-orange.svg?style=flat-square&logo=rust" alt="Rust"></a> <a href="https://soliditylang.org/"><img src="https://img.shields.io/badge/Solidity-0.8+-363636.svg?style=flat-square&logo=solidity" alt="Solidity"></a> <a href="https://arbitrum.io"><img src="https://img.shields.io/badge/Arbitrum-Stylus-28A0F0.svg?style=flat-square" alt="Arbitrum Stylus"></a> <a href="https://book.getfoundry.sh/"><img src="https://img.shields.io/badge/Built%20with-Foundry-FFDB1C.svg?style=flat-square" alt="Foundry"></a> <a href="http://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs Welcome"></a> <a href="https://clawhub.ai/hummusonrails/arbitrum-dapp-skill"><img src="https://img.shields.io/badge/ClawHub-arbitrum--dapp--skill-FF6B4A.svg?style=flat-square" alt="ClawHub"></a> </p> <p align="center"> <strong>A <a href="https://github.com/anthropics/skills">Claude Code skill</a> for building high-performance dApps on Arbitrum with Stylus Rust and Solidity.</strong> <br> <a href="https://www.youtube.com/watch?v=vsejiaOTmJA">Demo</a> · <a href="https://hummusonrails.github.io/arbitrum-dapp-skill?ref=github-readme">Documentation</a> · <a href="#quick-start">Quick Start</a> · <a href="https://github.com/hummusonrails/arbitrum-dapp-skill/issues">Report a Bug</a> </p> <p align="center"> <a href="https://www.youtube.com/watch?v=vsejiaOTmJA"> <img src=".github/video-thumbnail.png" alt="Watch the demo on YouTube" width="600"> </a> </p>

What it does

This skill gives Claude Code deep knowledge of the Arbitrum development stack so it can help you:

  • Scaffold a monorepo with Stylus Rust contracts, Solidity contracts, and a React frontend
  • Write and test smart contracts using the Stylus Rust SDK or Foundry
  • Run a local Arbitrum devnode for development
  • Build frontend interfaces with viem and wagmi
  • Deploy contracts to Arbitrum Sepolia and Arbitrum One
  • Interop across contract languages (Stylus and Solidity)

Quick Start

bash <(curl -s https://raw.githubusercontent.com/hummusonrails/arbitrum-dapp-skill/main/install.sh)

Then start Claude Code and ask it to build something:

> Create a Stylus contract for an ERC-20 token with a React frontend

That's it. The skill loads automatically.

<details> <summary><strong>Install from ClawHub</strong></summary> <br>
npx clawhub@latest install arbitrum-dapp-skill

Or browse the skill on ClawHub.

</details> <details> <summary><strong>Manual installation</strong></summary> <br>
git clone https://github.com/hummusonrails/arbitrum-dapp-skill.git ~/.claude/skills/arbitrum-dapp-skill
</details>

Stack

LayerToolNotes
Smart contracts (Rust)stylus-sdk v0.10+Compiled to WASM, runs on Stylus VM
Smart contracts (Solidity)Solidity 0.8.x + FoundryStandard EVM path on Arbitrum
Local chainnitro-devnodeDocker-based with pre-funded accounts
Contract CLIcargo-stylusCheck, deploy, export-abi
Contract toolchainforge / castBuild, test, deploy, interact
Frontendviem + wagmiType-safe chain interaction
Package managerpnpmWorkspace-friendly, fast
<details> <summary><strong>Prerequisites</strong></summary> <br>

The skill will guide you through installing these, but for reference:

</details>

Usage examples

Once installed, start a Claude Code session and try:

> Help me create a new Arbitrum dApp
> Write a Stylus contract that implements an ERC-20 token
> Set up my local devnode and deploy my contract
> Add a frontend that reads from my deployed contract
> Help me write tests for my Stylus contract
arbitrum-dapp-skill/
├── SKILL.md                            # Main skill definition
├── references/
│   ├── stylus-rust-contracts.md        # Stylus SDK patterns and examples
│   ├── solidity-contracts.md           # Solidity on Arbitrum + Foundry
│   ├── frontend-integration.md         # viem + wagmi patterns
│   ├── local-devnode.md                # Nitro devnode setup
│   ├── deployment.md                   # Testnet and mainnet deployment
│   └── testing.md                      # Testing strategies
├── install.sh
└── README.md

Resources

ResourceDescription
Demo VideoWatch the skill in action
Arbitrum Stylus QuickstartOfficial getting-started guide
Stylus SDKRust SDK for writing Stylus contracts
Stylus WorkshopGame of Life example project
Nitro DevnodeLocal Arbitrum chain for development
viemTypeScript interface for Ethereum
wagmiReact hooks for Ethereum

Contributing

Contributions welcome. Open an issue or submit a pull request.

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install arbitrum-dapp-skill?

Run openclaw add @hummusonrails/arbitrum-dapp-skill in your terminal. This installs arbitrum-dapp-skill into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/hummusonrails/arbitrum-dapp-skill. Review commits and README documentation before installing.