Integration

Network

Cowl runs on Robinhood Chain, an Arbitrum-based L2. The shielded pool is live on mainnet and testnet both. Point a client at a network with one command, or wire these values into your own.

Robinhood Chain mainnet

Mainnet · Live
Where the money is. Deployed once as an immutable release, every spend proof bound to chain ID 4663.
FieldValue
Chain ID4663
RPChttps://robinhood-rpc.publicnode.com
Explorerrobinhoodchain.blockscout.com
Native assetETH
Shielded pool0x6f9866…6a3E
Relayerhttps://relay.cowlprotocol.com/mainnet

Robinhood Chain testnet

Testnet · Live
The same code with free funds. Everything in the docs is proven here first, so it is the right place to rehearse a flow before it costs anything.
FieldValue
Chain ID46630
RPChttps://46630.rpc.thirdweb.com
Explorerexplorer.testnet.chain.robinhood.com
Native assetETH
Shielded pool0xf9F825…2A59
Relayerhttps://relay.cowlprotocol.com

Point the CLI

cowl network use robinhood-mainnet
cowl config set rpcUrl https://your-endpoint   # optional
cowl status                                    # confirm the pool it is talking to

Both clients carry fallback endpoints and move on when one declines a call, so a single flaky node is not an outage.

Reading logs

One thing to know before you point an indexer here: the public endpoints treat historical log queries very differently. The fast one declines them outright, and the archive one rate limits hard. Anything log-shaped wants the explorer’s REST API or your own node. Reading contract state works fine on any of them, which is why the watcher reads state rather than events.

Note
The public RPC is a starting point, not a dependency. Any Robinhood Chain endpoint works — the pool, the proofs, and your keys never trust the node with anything private.