arbitrum-dapp-skilllisted
Install: claude install-skill hummusonrails/arbitrum-dapp-skill
# Arbitrum dApp Development
## Stack
| Layer | Tool | Notes |
|-------|------|-------|
| Smart contracts (Rust) | `stylus-sdk` v0.10+ | Compiled to WASM, runs on Stylus VM |
| Smart contracts (Solidity) | Solidity 0.8.x + Foundry | Standard EVM path on Arbitrum |
| Local node | `nitro-devnode` | Docker-based local Arbitrum chain |
| Contract CLI | `cargo-stylus` | Check, deploy, export-abi for Stylus |
| Contract toolchain | Foundry (`forge`, `cast`, `anvil`) | Build, test, deploy, interact for Solidity |
| Frontend | React / Next.js + viem + wagmi | viem for all chain interaction |
| Package manager | pnpm | Workspace-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.
## Project Scaffolding
### 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
```bash
# 1. Create workspace
mkdir my-arbitrum-dapp && cd my-arbitrum-dapp
pnpm init
printf "packages:\n - 'apps