ZOMI beta
chain Issue X
Zomi · index
01Home→ 02For sale→ 03Bids→ 04Sales→ 05Traits→ 06Explorer→ 07Activity→ 08My Zomi→ 09Engine→ 10Whitepaper→ 11Contract controls→ 12Issue a bond→

Contract controls what the owner can and cannot do

This page was written before there was an address to point at, so that the list of powers could not quietly grow between the promise and the deployment. ZomiBond is deployed now, and the panel below reads it over RPC on every load; what it shows is what the chain answers, never a copy.

chain not deployed

Deployment

read over RPC
Addressnot set
Deploy transactionnot set
Blocknot set
Ownernot set
Deployed bynot set
Metadata basenot set
Price at deploymentnot set
Runtime bytecodenot read
Pausednot read
Mint pricenot read
Reservenot read
Proceedsnot read

The site configuration carries no collection address, so nothing was fetched. scripts/go-live.py writes one only after it has checked the code and the symbol at that address over RPC.

What the owner can do

five powers
PauseStop minting and claiming. Transfers of an already minted Zomi are not affected.pause, unpause
Metadata baseRepoint the base the token URIs are built on. It changes where a wallet looks for the JSON; it cannot change which Zomi an id composes, because that is computed from the id and not stored.setBaseURI
PriceChange what a mint costs. It cannot be applied retroactively and it cannot touch a token already minted.setMintPrice
ProceedsWithdraw the mint proceeds to an address. Proceeds and reserve are separate balances and this function can only reach the first.withdraw
OwnershipHand ownership to another address in two steps: the new owner has to accept before anything changes.transferOwnership

What the owner cannot do

seven of them
ReserveTouch the bond reserve. Withdraw reaches proceeds only, and the two are tracked as separate balances.by construction
CouponsStop, redirect or claw back a coupon. A claim pays the token holder and nobody else.by construction
TermChange the term or the weight of a minted Zomi. There is no function that writes either one after mint.immutable
SupplyMint past 10,000. The cap is a constant, not a setting.constant
Your ZomiMove or burn a token you hold. There is no admin transfer and no burn.by construction
RenounceAbandon ownership into the void. Renouncing is disabled, so the contract can never be left with a pause it cannot undo.disabled
ArtRewrite the art. A Zomi is composed from its id by an engine that reads nothing else, so the picture can be recomputed by anyone from the number alone, whatever a metadata URL happens to return.computed from the id

Residual risks

stated, not solved
SettlerThe shielded ZEC route is honoured off chain. Until that rail exists, setting a route stores a preference and trusts whoever settles it. Coupons pay in ETH on chain in the meantime.trust
PrecisionThe accrual index is fixed point, so a claim can round down by a few wei. It is built to round down rather than up: the sum of every claim cannot exceed what was funded.rounding
Metadata hostThe token URIs point at this site, which serves each one by composing the id. If the host stops answering, wallets stop showing the art until the base is repointed, and the ids and the balances on chain are unaffected either way.operational
HookThe one percent that feeds the reserve depends on a Uniswap V4 hook that is not deployed on this chain. Until it is, the reserve only grows from direct funding.not built
ReviewThe contract has an internal review and a test suite, and no external audit. That is a statement of what has been done, not a claim that it is enough.internal only

The tests, the deployment steps and the full internal review live beside the source in the repository, under contracts/.