Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ The Cloudflare tunnel exposes the cluster to the public internet. Only x402-gate
| `internal/enclave` | `enclave.go`, `enclave_darwin.go`, `enclave_stub.go` | Secure Enclave keys |
| `internal/embed` | `embed.go` | Embedded assets (skills, infrastructure, networks) |

**Embedded assets**: `internal/embed/infrastructure/` (K8s templates), `internal/embed/networks/` (ethereum, aztec), `internal/embed/skills/` (23 skills).
**Embedded assets**: `internal/embed/infrastructure/` (K8s templates), `internal/embed/networks/` (ethereum, aztec), `internal/embed/skills/` (25 skills).

**Tests**: `cmd/obol/sell_test.go` (CLI flags), `internal/x402/*_test.go` (verifier, config, matcher, E2E), `internal/erc8004/*_test.go` (ABI, client), `internal/embed/embed_crd_test.go` (CRD+RBAC validation), `internal/openclaw/integration_test.go` (full-cluster inference), `internal/openclaw/overlay_test.go`, `internal/inference/gateway_test.go`, `internal/serviceoffercontroller/*_test.go` (controller, render).

Expand Down
5 changes: 3 additions & 2 deletions internal/embed/skills/addresses/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: addresses
description: Verified contract addresses for major Ethereum protocols across mainnet and L2s. Use this instead of guessing. SKILL.md is an index — load the appropriate references/*.md file for the addresses you need. Start with references/obol-payments.md for the Stack's own rails (USDC + OBOL + Permit2 + ERC-8004 on the supported chains). Other categories include stablecoins, staking + Obol/Splits, DEXs, lending and DeFi, L2-native protocols, infrastructure (Safe, AA, Chainlink, EigenLayer, ENS, OpenSea), bridges (CCIP, Across), and major token addresses. Always verify on-chain via eth_getCode + eth_call before sending value.
description: Verified contract addresses for major Ethereum protocols across mainnet and L2s. Use this instead of guessing. SKILL.md is an index — load the appropriate references/*.md file for the addresses you need. Start with references/obol-payments.md for the Stack's own rails (USDC + OBOL + Permit2 + ERC-8004 on the supported chains). Other categories include stablecoins, staking + Obol/Splits, DEXs, lending and DeFi, L2-native protocols, infrastructure (Safe, AA, Chainlink, EigenLayer, ENS, OpenSea), bridges (CCIP, Across, Arbitrum One + Robinhood Chain canonical), Robinhood Chain, and major token addresses. Always verify on-chain via eth_getCode + eth_call before sending value.
---

# Contract Addresses
Expand All @@ -26,7 +26,8 @@ Open the file that matches the category you need:
| [`references/defi.md`](references/defi.md) | Aave, Compound, MakerDAO/Sky, sDAI, Curve, Balancer, Yearn V3 |
| [`references/l2-native.md`](references/l2-native.md) | Aerodrome (Base), Velodrome (OP), GMX, Pendle, Camelot, SyncSwap, Morpho |
| [`references/infrastructure.md`](references/infrastructure.md) | Safe, ERC-4337 EntryPoint, Chainlink, EigenLayer, OpenSea Seaport, ENS, deterministic deployer |
| [`references/bridges.md`](references/bridges.md) | Chainlink CCIP Router, Across SpokePool |
| [`references/bridges.md`](references/bridges.md) | Chainlink CCIP Router, Across SpokePool, Arbitrum One + Robinhood Chain canonical bridges |
| [`references/robinhood-chain.md`](references/robinhood-chain.md) | Robinhood Chain (4663) — chain metadata, canonical bridge L1+L2 contracts, tokens (bridged USDC, USDG, WETH), ecosystem notes |
| [`references/agents-and-tokens.md`](references/agents-and-tokens.md) | ERC-8004 registries, major tokens (UNI, AAVE, COMP, MKR, LDO, WBTC, stETH, rETH) |

## Verify any address at runtime
Expand Down
44 changes: 44 additions & 0 deletions internal/embed/skills/addresses/references/bridges.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,47 @@ Cross-chain bridge. All SpokePool contracts are upgradeable proxies.
| Optimism | `0x6f26Bf09B1C792e3228e5467807a900A503c0281` | ✅ Verified |

Source: <https://docs.across.to/reference/contract-addresses>

## Arbitrum One canonical bridge

Lock-and-mint bridge between Ethereum L1 and Arbitrum One. Deposits
~10-15 min (retryable tickets); withdrawals initiate on L2 → 7-day
challenge window → claim on L1 (L1 gas required).

**Last verified on-chain (`eth_getCode`): 2026-07-10.**

| Contract | Chain | Address | Status |
|----------|-------|---------|--------|
| Delayed Inbox | Mainnet | `0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f` | ✅ Verified |
| Sequencer Inbox | Mainnet | `0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6` | ✅ Verified |
| Bridge | Mainnet | `0x8315177aB297bA92A06054cE80a67Ed4DBd7ed3a` | ✅ Verified |
| Outbox | Mainnet | `0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840` | ✅ Verified |
| Rollup (post-BoLD) | Mainnet | `0x4DCeB440657f21083db8aDd07665f8ddBe1DCfc0` | ✅ Verified |
| L1 Gateway Router | Mainnet | `0x72Ce9c846789fdB6fC1f34aC4AD25Dd9ef7031ef` | ✅ Verified |
| L1 ERC20 Gateway | Mainnet | `0xa3A7B6F88361F48403514059F1F16C8E78d60EeC` | ✅ Verified |
| L2 Gateway Router | Arbitrum | `0x5288c571Fd7aD117beA99bF60FE0846C4E84F933` | ✅ Verified |

Arbitrum One tokens (native USDC `0xaf88d065e77c8cC2239327C5EDb3A432268e5831`,
WETH `0x82aF49447D8a07e3bd95BD0d56f35241523fBab1`) are in
[`stablecoins.md`](stablecoins.md) — both re-verified 2026-07-10.

Source: <https://docs.arbitrum.io/build-decentralized-apps/reference/contract-addresses>

## Robinhood Chain canonical bridge

Arbitrum-style bridge between Ethereum L1 and Robinhood Chain (chain ID
4663). Deposits ~10 min (retryable tickets, failed deposits redeemable
within 7 days); withdrawals initiate on L2 → 7-day challenge → claim on
L1. Full L1 + L2 contract tables, tokens, and ecosystem notes:
[`robinhood-chain.md`](robinhood-chain.md).

Key L1 (Ethereum mainnet) addresses:

| Contract | Address | Status |
|----------|---------|--------|
| Delayed Inbox | `0x1A07cc4BD17E0118BdB54D70990D2158AbAD7a2D` | ✅ Verified |
| Outbox | `0xf0ce991ea4A0d2400A4AB49b20ae333f6Dce3DE9` | ✅ Verified |
| L1 Gateway Router | `0x6a2E3a1e16FC29f27Ce61429746D558d656975bB` | ✅ Verified |
| L1 ERC20 Gateway | `0x85001CC4867C5e1C22dA4B79BB8852B9e2a06da0` | ✅ Verified |

Source: <https://docs.robinhood.com/chain/protocol-contracts>
83 changes: 83 additions & 0 deletions internal/embed/skills/addresses/references/robinhood-chain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Robinhood Chain

Robinhood's Arbitrum Nitro L2 (chain ID **4663**), settling to Ethereum
L1. Consumer / tokenized-assets focus — most activity is "Robinhood
Token" tokenized stocks (AAPL, TSLA, SPY, …) and meme tokens. Gas token
is ETH.

**Last verified on-chain (`eth_getCode`): 2026-07-10.**

## Chain metadata

| Item | Value |
|------|-------|
| Chain ID | `4663` |
| RPC | `https://rpc.mainnet.chain.robinhood.com` |
| Explorer | <https://robinhoodchain.blockscout.com> |
| Gas token | ETH |
| Stack | Arbitrum Nitro (canonical Arbitrum-style bridge, settles to Ethereum L1) |
| Block time | ~100ms observed (avg over 100k recent blocks, 2026-07-10; Nitro mints blocks on demand) |
| Deposits (L1→L2) | ~10 min via retryable tickets; failed deposits redeemable within 7 days |
| Withdrawals (L2→L1) | Initiate on L2 → 7-day challenge window → claim on L1 (L1 gas required) |

> ⚠️ **Bridged ERC-20 addresses on Robinhood Chain DIFFER from their
> Ethereum addresses.** Never reuse an Ethereum token address here —
> derive the L2 address via the L2 Gateway Router's
> `calculateL2TokenAddress(l1Token)` or look it up on the explorer.

## Ethereum L1 bridge contracts

| Contract | Address | Status |
|----------|---------|--------|
| Rollup | `0x23A19d23e89166adedbDcB432518AB01e4272D94` | ✅ Verified |
| Sequencer Inbox | `0xBd0D173EEb87D57A09521c24388a12789F33ba96` | ✅ Verified |
| Delayed Inbox | `0x1A07cc4BD17E0118BdB54D70990D2158AbAD7a2D` | ✅ Verified |
| Bridge | `0xDf8755334ce7A73cCF6b581C02eA649AE3E864b3` | ✅ Verified |
| Outbox | `0xf0ce991ea4A0d2400A4AB49b20ae333f6Dce3DE9` | ✅ Verified |
| L1 Gateway Router | `0x6a2E3a1e16FC29f27Ce61429746D558d656975bB` | ✅ Verified |
| L1 ERC20 Gateway | `0x85001CC4867C5e1C22dA4B79BB8852B9e2a06da0` | ✅ Verified |
| L1 Custom Gateway | `0x9368EAEbFe6E063C69dcF8126711A6997E0eCeE1` | ✅ Verified |
| L1 WETH Gateway | `0xF7e12b9614b509C747ab4423bC4ACF923759Cf1B` | ✅ Verified |

## Robinhood Chain L2 contracts

| Contract | Address | Status |
|----------|---------|--------|
| L2 Gateway Router | `0x1E324B9316138CA9a73F960213621AD1aaf01B89` | ✅ Verified |
| L2 ERC20 Gateway | `0xfd9b17206278C16DdaacF6AC8f05dBf97EdCb31e` | ✅ Verified |
| L2 Custom Gateway | `0x912285144fC0f6e89d3Ed16F5Ab72f87A1878959` | ✅ Verified |
| L2 WETH Gateway | `0x1D187C3E2dA52D72BC9C41e3AbA0fdFa6a7bF055` | ✅ Verified |
| L2 Multicall | `0x2cAC2D899eCC914d704FeaAE33ac1bF36277DaD1` | ✅ Verified |

Standard Arbitrum precompiles live at `0x64`–`0x72` (ArbSys =
`0x0000000000000000000000000000000000000064`, etc.). `eth_getCode` on
precompiles returns the stub byte `0xfe` — that is expected, not a
missing contract.

## Tokens

| Token | Address | Status | Notes |
|-------|---------|--------|-------|
| WETH | `0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73` | ✅ Verified | Canonical bridged WETH (via L2 WETH Gateway) |
| USDC (bridged) | `0x80e0e24718dbFcad49ECAA6F1e6C89A190586cA8` | ✅ Verified | Canonical **bridged** USDC (USDC.e-style), NOT native Circle USDC. `l1Address()` → mainnet USDC; matches the L2 Gateway Router derivation. 6 decimals. **Nascent** — <500 USDC total supply, single-digit holders as of 2026-07-10 |
| USDG (Global Dollar) | `0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168` | ✅ Verified | Paxos-issued stablecoin, the chain's **dominant stable** (~9.5k holders, deepest DEX pools). Does NOT match the canonical-bridge derivation — issued independently of the bridge. 6 decimals |
| Permit2 | `0x000000000022D473030F116dDEE9F6B43aC78BA3` | ✅ Verified | Canonical CREATE2 address, same as every EVM chain |

> ⚠️ **The explorer is full of scam tokens named "USDC"** (18-decimal
> meme deploys). The canonical bridged USDC is the one above — confirm
> via `calculateL2TokenAddress(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)`
> on the L2 Gateway Router before trusting any USDC address here.

## DeFi ecosystem (young — as of July 2026)

Uniswap V2/V3/V4 and PancakeSwap V2/V3 factory deployments are live
(per GeckoTerminal's `robinhood` network). Liquidity is early-stage:
the deepest pool is USDG/WETH on Uniswap V3 (~$4.5M reserves), and most
volume is meme tokens and tokenized-stock "Robinhood Token" ERC-20s
paired against WETH. There are no meaningful USDC pools — quote prices
in USDG or WETH on this chain. No dominant native DEX has emerged yet;
treat any protocol addresses here as unproven until you verify them.

Sources: <https://docs.robinhood.com/chain/protocol-contracts>,
<https://docs.robinhood.com/chain/bridging>,
<https://www.geckoterminal.com/robinhood/pools>
Loading
Loading