> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cashmere.exchange/llms.txt
> Use this file to discover all available pages before exploring further.

# Contracts

> Every deployed address, and what is fixed in each of them.

Goat Street runs on Robinhood Chain mainnet, chain ID **4663**. Every contract below is verified on
the explorer — read the source there rather than taking this page's word for what they do.

Nothing here needs this site. Distributing, delivering and clearing stale positions are all open to
anyone, the ledger is on chain, and a holder who never loads this page can call all of it directly.

## Deployed

| Contract          | Address                                                                                                       | What it holds                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `GoatSoftStake`   | [`0x29A23E6b…2969`](https://robinhoodchain.blockscout.com/address/0x29A23E6bF5fF54A897cF100654dA0aE452482969) | The registry. Positions, rarity, weight, entry pricing and the tenure clock    |
| `GoatDistributor` | [`0x7fa5602D…0Db3`](https://robinhoodchain.blockscout.com/address/0x7fa5602Dc38a35E00f7D6c93a90E7D6982760Db3) | The engine. Payout choices, royalty conversion, the credit ledger and delivery |
| `GoatPriceFloor`  | [`0x57Fdc93c…9ec2`](https://robinhoodchain.blockscout.com/address/0x57Fdc93c7Cd0381b0E6D418570ac3fd3490e9ec2) | Derives each swap's minimum from Chainlink marks                               |
| `GoatSwapRouter`  | [`0xa37Ff8A5…d216`](https://robinhoodchain.blockscout.com/address/0xa37Ff8A53Aa3d0fB31D25B579F6a6C0198cAd216) | Buys the chosen assets from Uniswap V3 pools, one route per asset              |
| `ERC6551Registry` | [`0x211a83BE…Ef9b`](https://robinhoodchain.blockscout.com/address/0x211a83BEE2eDE8fe3004A1CfE9Ad9fbD7340Ef9b) | Derives the wallet address each NFT owns                                       |
| `Goat6551Account` | [`0xBAD1a0Ec…E5fD`](https://robinhoodchain.blockscout.com/address/0xBAD1a0Ec18760c829b342c2F5378729B23D8E5fD) | The implementation those wallets are cloned from                               |
| Collection        | [`0xC21159F4…C929`](https://robinhoodchain.blockscout.com/address/0xC21159F412c294ca2C38f2A9eCAAcCF9d93eC929) | GoatStreetCashmere. 6,666 NFTs                                                 |

## What is fixed and what can move

Read this next to [Administrative Powers](/goat-street/operations#administrative-powers), which
covers who holds the keys. This table is about what those keys can and cannot reach.

|                    | Value                                                                                                         | Fixed how                                                          |
| ------------------ | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Withdrawal lock    | **4 hours**                                                                                                   | Set at construction. No setter, and capped at 7 days by a constant |
| Emergency notice   | **24 hours**, expiring 48 hours later                                                                         | Constant                                                           |
| Entry-fee split    | **50 / 50** to the reward pot and the treasury                                                                | Constant. The destination can be repointed; the ratio cannot       |
| Entry-fee treasury | [`0x2bf95e5f…561F`](https://robinhoodchain.blockscout.com/address/0x2bf95e5f307FB84e19851865193a14DaB01A561F) | Repointable by the owner                                           |
| Rarity table       | **frozen**                                                                                                    | Sealed. Both setters revert permanently                            |
| Level ladder       | 1.00×, 1.25×, 1.50×, 2.00×, 3.00× at 0, 8.3, 22.2, 55.6 and 150 days                                          | Constant. No setter and no owner                                   |
| Ring floor         | **0.1 ETH**                                                                                                   | Owner                                                              |
| Ring cap           | **0.5 ETH**                                                                                                   | Owner. A pot above it is rung in several passes                    |
| Menu               | 15 assets                                                                                                     | Owner. Capped at 16                                                |
| Weight source      | the registry above                                                                                            | Immutable on the engine                                            |

<Callout type="warning">
  The wallet registry and account implementation are **immutable on this engine**, so no setter on
  the live contracts can move where a delivery lands.

  That is not the same as saying a delivery can never be redirected. Replacing the engine is an
  owner power, and a replacement is only checked for naming this registry as its weight source — not
  for using the same wallet registry. An admin who deployed a new engine with different ones would
  send *future* deliveries to different addresses. It takes a deployment and a visible transaction,
  and the predecessor keeps paying what it already owes, but it is a thing the key can do. See
  [Operations](/goat-street/operations#if-the-engine-is-ever-replaced).
</Callout>

## Verifying the rarity table yourself

Rarity is not read from metadata at request time — it is a table written into the registry and then
sealed. What the seal committed to is a SHA-256 hash of the collection's metadata file.

That means the whole chain is checkable by anyone: hash the published metadata file, compare it to
the hash stored on the registry, then read any token's tier straight from the contract and check it
against the file. The registry also records that it covered all 6,666 ids rather than a prefix.

Tiers are numbered 1 to 7 in the order on [Tiers](/goat-street/tiers) — 1 is Intern Broker, 7 is
King Broker.

## Royalty

The collection advertises ERC-2981, but its on-chain royalty is **not configured** — a venue reading
the standard collects nothing. Creator earnings are configured in the marketplace's own panel
instead, split between the engine and the treasury, and enforced by the marketplace off-chain rather
than by a contract. That is a weaker guarantee than the entry-fee split above, and it is described
in full under [Rewards](/goat-street/rewards#where-the-money-comes-from).

<Callout type="warning">
  **Check an address here against the explorer before you sign anything.** A contract with a
  matching name at a different address is not this contract, and no page — including this one — is a
  substitute for reading the chain.
</Callout>
