Docs·Chains
Chains
Chains and environments
The two chains The Hood deploys to, their RPC endpoints, explorers and index floors, and why a testnet figure is not comparable with a production one.
The two chains#
Both the launchpad and the prediction markets deploy to Robinhood Chain. The subject of a market and the money staked on it are the same chain, so nothing here is bridged and nothing is attested — a market settles by calling a view on the bonding curve it is about.
| Chain ID | Name | Testnet | Native currency | Explorer |
|---|---|---|---|---|
| 4663 | Robinhood Chain | No | ETH, 18 decimals | Blockscout |
| 46630 | Robinhood Chain Testnet | Yes | ETH, 18 decimals | Blockscout |
The explorer URL, the RPC endpoints and the native currency for a chain are published as fields of that chain’s own addresses file — explorer, rpc[] and nativeCurrency. Read them from there rather than from this table: the file is generated at build from the deployment records, so it cannot be stale in a way this page would not be.
Environments#
Three environments, two chains. Dev and staging share chain 46630 and are separate deployments of the same contracts, distinguished by their deployment record rather than by their chain id.
| Environment | Chain | Addresses file |
|---|---|---|
| production | 4663 | /addresses/4663.json |
| staging | 46630 | /addresses/46630.json |
| dev | 46630 | /addresses/46630.json |
Each origin serves the file for the chain it is configured against, and the file names which one it is: its environment field carries the calibration profile the deployment was made under. Two origins serving chain 46630 will serve two different files with two different sets of addresses, which is the point — a dev launch does not exist on staging.
Where an index starts#
Every addresses file carries an indexFromBlock: the block below which nothing of ours exists on that chain. An index that starts lower spends its time proving empty history.
| Chain | indexFromBlock |
|---|---|
| 4663 | "36000000" |
| 46630 | "103890000" |
It is a floor, not a start block for any one contract. Each contract entry carries its own deployRunBlock, and every factory in priorFactories[] has to be indexed as well — a launch made under a superseded factory is still a launch and still trades.
# The floor, and the current factory, for a chain
curl -s <origin>/addresses/4663.json \
| jq '{ indexFromBlock, launchFactory, priorFactories: [.priorFactories[].address] }'A testnet figure is not a production figure#
The same caution applies to any absolute figure: fee rates, graduation targets and the graduation ladder are all settable on chain and are calibrated per environment. They are deliberately absent from the addresses file for that reason — a build-time copy of a settable value goes stale silently. Read them live from the contract that holds them.