Docs·Addresses

Addresses

The addresses file

One generated JSON file per chain naming every contract, treasury, prior factory and index floor an integrator needs, served from this origin.

Version
1.1
Updated
2026-09-26
Source
Public addresses generator · External measurability implementation plan v1.2

One JSON file per chain, generated at build from the deployment records and served from this origin. It is the first thing every integration needs — a decoded-contract submission, a TVL adapter, an indexer’s start block or an independent analyst all begin with “give us the addresses, the deploy block and the ABI”.

It is regenerated ahead of every build and every dev server, so the served copy cannot be the stale one, and it is never committed. If this documentation and the file disagree, the file is right.

Fetching it#

The two paths
PathWhat it answers
/addresses/index.jsonWhich chains this origin serves, with the chain name, the environment and the path to each file. Start here if you do not already know the chain id.
/addresses/<chainId>.jsonEverything deployed on that chain, by this platform, in this environment.
# What does this origin serve?
curl -s <origin>/addresses/index.json

{
  "schema": "thehood.addresses/1",
  "files": [
    { "chainId": 4663, "chainName": "Robinhood Chain", "environment": "production",
      "path": "/addresses/4663.json" }
  ]
}

schema is the string to pin against. It is "thehood.addresses/1" today and its version is bumped on any breaking shape change, so a consumer that checks it will notice a break rather than silently reading a field that moved.

What is in it#

The top-level keys, and what each answers
KeyWhat it is for
contracts[]Every singleton this platform deployed on the chain, with its address, purpose, ABI path, deploy-run block and explorer link.
cloneTemplates[]Contract families with no fixed address — one exists per launch, per market or per THD bucket. Named with their ABI so their logs can be decoded. More.
treasuries[]Payout destinations — where value comes to rest. Following the money to a wallet is the point of an external audit of a fee model, so they are published.
externalContracts[]Contracts read but not written by this platform: the Chainlink feed a USD figure is priced through, and the Uniswap V4 PoolManager, PositionManager and Permit2.
thdBuckets[]The eleven THD emission destinations with their share in basis points, where a THD deployment exists on the chain.
priorFactories[]Superseded launch factories. Every one has to be indexed. See below.
notDeployed[]A named contract that is absent from this chain, with the reason. An answer, not a silence.
deploymentRecords[]Which deploy runs produced this file, each with its block, time and calibration profile.
indexFromBlockThe floor below which nothing of ours exists on the chain. See chains and environments.
warnings[]What the generator could not resolve cleanly. See below.
conventionsThe encoding of every numeric field in the file, stated in the file so a consumer who did not read this page still finds out.

Every field of every entry is listed on the field reference.

Prior factories#

priorFactories[] is assembled from three places, because the history is written in three and no one of them is complete: a built-in list in the app’s configuration (which carries the oldest mainnet factories, and no blocks), the retired deployment records (the only source carrying a block), and the environment’s configured prior-factory list. Each entry names its sources[] so you can see which of the three answered.

# Every factory an index has to read, current first
curl -s <origin>/addresses/4663.json \
  | jq '[.launchFactory] + [.priorFactories[].address]'

What it deliberately does not carry#

Two things are missing on purpose
AbsentWhyWhere to get it instead
The rate cardThe PricingRules prices, tradeFeeBps, the fee shares and the graduation ladder are all settable on chain. A build-time copy goes stale the first time one is changed, and it goes stale silently — the file would keep serving a confident number for a rate that moved last week. launchFeeWei moves with the USD oracle on top of that, so even a same-day copy of it is stale.A live read from the contract that holds it.
Operational keysThe keeper and attestor addresses are not payout destinations, and a list of addresses is read as a list of things to look at. Nothing is hidden by their absence.The contracts that hold them, on chain.

Warnings, published rather than logged#

warnings[] carries anything the generator could not resolve cleanly — an unknown chain id with no explorer links, a contract published without an ABI, or the app being pointed at a different factory from the one the deployment record names. It is in the file rather than only in a build log because the disagreement then becomes visible from outside, to the person consuming the addresses, and not only to whoever has the logs.

An empty warnings[] is the normal state. A non-empty one is worth reading before trusting anything else in the file.