Docs·Addresses
Addresses
Addresses file — field reference
Every top-level key and every field of every entry in the addresses file, with its type and meaning.
Top level#
| Field | Type | Meaning |
|---|---|---|
schema | string | "thehood.addresses/1". Pin against it; the version is bumped on any breaking shape change. |
chainId | number | The chain this file describes. The one numeric field that is a JSON number. |
chainName | string | null | null for a chain the generator has no metadata for, which is recorded in warnings[] rather than failing the build. |
environment | string | null | The calibration profile the deployment was made under — production, staging, dev, or local. |
testnet | boolean | null | Whether the chain is a testnet. |
nativeCurrency | { name, symbol, decimals } | The chain’s own currency. Every wei figure is denominated in it. |
explorer | { name, url } | null | The block explorer every explorerUrl in the file is built against. |
rpc | string[] | Public RPC endpoints for the chain, in preference order. |
indexFromBlock | decimal string | The floor below which nothing of this platform exists on the chain. |
launchFactory | address | null | The current factory. Every launch that exists was created by this address or by one in priorFactories[]. |
conventions | object | The encoding of amounts, block numbers, addresses and times, restated inside the file. |
warnings | string[] | What the generator could not resolve cleanly. Usually empty. |
contracts[] and cloneTemplates[]#
contracts[] holds the singletons: one address each, on this chain, in this environment. cloneTemplates[] holds the families that have no fixed address, carrying the same fields minus the address and its block, plus deployedAtRuntime: true.
| Field | Type | Meaning |
|---|---|---|
name | string | The Solidity contract name, which is also the name it is verified under on the explorer. |
kind | string | singleton, or a clone family such as per-launch-clone. |
source | string | The repository path of the Solidity file it was compiled from. |
purpose | string | null | What the contract is for, from its declared manifest. |
abiPath | string | null | Root-relative path to the ABI on this origin, e.g. /abis/LaunchFactory.json. null means the ABI is not served, which is also recorded as a warning. |
address | address | Lowercase hex. Absent on a clone template. |
record | string | The deployment record file the address was read from, e.g. launchpad-4663.json. |
recordField | string | The key within that record. Together with record it makes the address traceable to the deploy that wrote it. |
deployRunBlock | decimal string | The block the deploy run recorded. Safe as an indexing floor for that contract; see the caveat below. |
deployRunAt | { unix, iso } | When the deploy run happened. Unix seconds as a decimal string, ISO-8601 UTC. |
explorerUrl | string | null | The explorer’s address page. null where the chain has no known explorer. |
treasuries[] and externalContracts[]#
| Field | Type | Meaning |
|---|---|---|
field | string | The deployment-record key, e.g. treasury, marketingTreasury, ethUsdFeed. |
label | string | A human name — “Protocol treasury”, “Chainlink ETH/USD”. |
note | string | What it is for, and any constraint the deploy enforces on it. |
address | address | Lowercase hex. |
record | string | Which deployment record it was read from. |
explorerUrl | string | null | The explorer’s address page. |
Only destinations appear in treasuries[] — places value comes to rest. A keeper key is readable on chain from the contract that holds it and is not published here. externalContracts[] is the inverse: addresses this platform reads but did not deploy, published because a USD-denominated figure cannot be reproduced without naming the same price feed, and a pool cannot be found without the PoolManager it was opened on.
thdBuckets[]#
| Field | Type | Meaning |
|---|---|---|
bucket | string | The bucket key — traders, creators, kolsReferrers, liquidity, lpProviders, spoils, bdMarketing, ecosystemGrants, insuranceBackstop, team, settlers. |
address | address | The destination contract holding that bucket’s share. |
shareBps | number | null | The bucket’s share of the total supply, in basis points. Immutable on the emission contract with no setter. |
contractKindIsOneOf | string[] | The destination type is chosen per bucket at deploy time and the record does not say which, so the file publishes the candidate set rather than a guess. Read the contract to settle it. |
A shareBps read on chain that disagrees with the file means the file describes a different deployment, not drift — the eleven shares are immutable and have no setter. See THD and the fee meter.
priorFactories[], notDeployed[], deploymentRecords[]#
| Array | Fields | Meaning |
|---|---|---|
priorFactories[] | address, sources[], deployRunBlock | null, explorerUrl | A superseded factory. sources[] names which of the three inputs knew about it; deployRunBlock is null for a factory known only to the built-in list. |
notDeployed[] | name, reason, record | null | A contract the platform has, absent from this chain, with the reason in plain words — no record for the environment, a record predating the contract, a field explicitly recording a zero address, or a contract whose source exists and which no deploy script has ever written a record for. record is null for that last one, because there is no record to name. |
deploymentRecords[] | record, deployRunBlock, deployRunAt, calibration | The deploy runs behind this file. More than one, because the launchpad and the prediction markets deploy separately. |
A worked example#
{
"name": "CreatorRegistry",
"kind": "singleton",
"source": "contracts/src/predict/CreatorRegistry.sol",
"purpose": "The on-chain record of what each creator on The Hood has launched, and the tier ladder built on top of it.",
"abiPath": "/abis/CreatorRegistry.json",
"address": "0x…",
"record": "predict-4663.json",
"recordField": "creatorRegistry",
"deployRunBlock": "44157074",
"deployRunAt": { "unix": "1787503430", "iso": "2026-08-23T16:43:50.000Z" },
"explorerUrl": "…/address/0x…"
}The address is elided here on purpose: this page is a schema, and an address copied into documentation is a mirror that will one day disagree with the deployment it claims to describe. Read every address from the file.