Security
What runs where, and who to tell.
Emberwild keeps its contracts few and standard. Nothing is deployed yet; each address appears here once its contract is live and verified.
What is on chain
On BNB Smart Chain. Stock OpenZeppelin, Safe and Morpho contracts wherever one exists; the only custom code is Checkout and two write-once fields on the dragons. No contract can be upgraded.
- EmberToken ($EMBER)
The game currency. Fixed supply, minted once, no mint function, no owner.
To be published
- Team vesting wallet
Holds the team tokens: a cliff, then vesting. Never sold on market.
To be published
- Ecosystem vesting wallet
Holds the ecosystem and partner tokens and releases them slowly to the Treasury Safe.
To be published
- EmberwildDragons
The dragons as ERC-721 items. Minting can pause; transfers never do, so owners can always move or sell.
To be published
- Checkout
Takes USDT for eggs against a quote the game server signed, and sends each share where it belongs.
To be published
- HoardDistributor
An audited Merkle distributor (Morpho URD). Keepers claim their weekly $EMBER share against the published root.
To be published
- Timelock
Holds the admin rights and the Treasury tokens. Every change and every Treasury spend waits 48 hours here, in public, before it can run.
To be published
- Treasury Safe
A Safe multisig. Holds the USDT from sales and the Season Purse, and pays prizes after the dispute window.
To be published
- Hoard Safe
A Safe multisig. Holds the Hoard, the $EMBER that tops up the weekly pot.
To be published
- Liquidity Safe
A Safe multisig. Holds the tokens and USDT for the locked pool.
To be published
- Guardian Safe
A Safe multisig that can only pause: purchases on Checkout and minting on EmberwildDragons. It cannot move funds.
To be published
What the game server does
- Quotes. When you buy an egg, the server signs a quote for that one purchase: your wallet, the item, the price in USDT and an expiry a few minutes away. Checkout only takes a payment that matches a signed, unused, unexpired quote, and the server never holds your USDT.
- Weekly roots. Each week the server counts Dragon Scales, works out every Keeper’s share of that week’s $EMBER pot and publishes the list and its Merkle root. A new root waits 24 hours before it counts, and the Treasury Safe can revoke a bad one in that time.
- The index. The server reads our own contracts’ events from the chain (purchases, mints, transfers, claims) and keeps the game in step with them. It reads nothing else of yours.
- Play statistics. The game sends anonymous play statistics (time to first battle, match length, which moves were picked) to tune the game; turn it off in Settings. No personal data.
Scales, rank, Kibble and Nest Tickets live on the server, not on chain: they can’t be traded, so they don’t need to be.
Reporting a problem
Found a bug in a contract, the game server or this site? Write to security@emberwild.app, privately, before telling anyone else. Say what you found and how to see it again.
We read every report and reply within a few days.
Audits
Slither and tests on every change; no third-party audit yet.