Contracts & how to verify
Don't trust us. Check. Every rule on these pages is enforced by a contract you can read.
Addresses
Not live yet
Addresses are published on sranch.xyz, pinned in the community, and listed on this page at launch. Those three places will always match. Any address you see anywhere else is not ours.
| Contract | What it does | Admin? |
|---|---|---|
| RanchAnimals | The bull and bear NFTs | None |
| DuskAuction | Sells bulls and bears; burns every $SRANCH paid | None |
| MilkPool (Harvest pool) | Holds Harvest, weekly grazing, feeding, ranking, claims | None |
| FeeSplitter | Splits token trading fees 70/20/10 | None |
| SeasonBars | Official fences (Pool) for the season | None |
| SeasonListings | Planks (fixed-odds listings) for the season | None |
| SelfLimit | Your own daily cap and cool-off | None; only you can set yours |
| BreedRegistry | Next season's breed list | Project multisig, boxed in (below) |
Contract names are internal code names. The source code is verified on the block explorer.
The one permission that exists
The BreedRegistry is the only place with any permission. The project multisig can register next season's breed list, season contracts and a few season parameters, with at least 4 weeks' public notice. It cannot mint animals, touch the Harvest pool, change any split or formula, pause anything, or change the current season.
Even a wrong season contract can't create free Harvest: the Harvest pool caps what any season contract can claim by the fees it actually paid into the pool.
What to check
| What | Where |
|---|---|
| Fee rates and splits | Read the public constants on the fence contracts: FEE_BPS (5% → 500), MILK_BPS, TEAM_BPS, OPS_BPS; on the splitter: MILK_BPS (7000), TEAM_BPS (2000) |
| Every token-fee payout | The splitter logs Distributed(caller, total, milk, team, ops, bounty) each time |
| Every fence result | Settled(barId, result, closePrice, fee) on the fence contract; compare closePrice with the Chainlink feed round |
| Every Harvest week | PeriodSettled and BreedScored on the Harvest pool: each breed's rank score and what was released |
| Auction results | SceneClosed(scene, clearing, sold, voided) on the auction |
| The release ratio | RELEASE_DIVISOR on the Harvest pool = 8 |
| Burns | $SRANCH sent to the dead address 0x…dEaD |
The ranch's own app shows the Harvest pool's two ledgers (from fences, from token trades) and how much is released each week. Everything it shows is computed from on-chain events, so anyone can recompute the same numbers.
Price feeds
All settlement uses Chainlink price feeds on Robinhood Chain. A price only counts if it's the last round before the close moment and fresh enough. The contract checks this itself, so nobody can pick a convenient round.