Skip to content

Program reference

Program IDCoriumcqGZW3cdnAiyWz6jHHveMUmdrw9RC1KXfMsF8S
NetworkSolana mainnet
FrameworkAnchor
RandomnessMagicBlock VRF
Sourcegithub.com/corium-solana/corium-core
Verified buildYes, OtterSec: the deployed program matches the public source
Upgrade authoritySquads multisig 9BfEudxsWmyPP6uGHRyyMHptShK6DVufZSkYd8aaHAdx

All game numbers are compiled into the program. The on-chain Config account stores no tunables at all, only accounting and the treasury address, so there's nothing an admin could point at. A live star copies its lifecycle at birth.

Instructions

InstructionWho signsWhat it does
feedPlayerNursery send.
request_pushPlayerEscrow the stake and join the star's open round. No oracle, no prepayment.
draw_roundAnyone (crank)Seal a round to new entrants, derive its seed, and request its one VRF draw, all in one transaction. Paid from protocol_accrued, and the caller is reimbursed in the same transaction.
consume_randomnessMagicBlock VRF onlyThe oracle's callback. Writes the draw onto the round. Only the identity the VRF program signs for, scoped to this program, can call it.
expire_roundAnyoneVoid a round that has stalled past the timeout, so its members can be refunded. Refuses if the draw has already landed.
resolve_pushAnyoneSettle or refund the next pending push.
close_pushFee payerClose a finished pending account. Rent goes to the player.
close_round_accountAnyoneClose a round whose members have all resolved. Rent goes to whoever opened it.
claim_prizeThe star's killerPay out final_prize on a dead star, once.
claim_hole_shareFeederPay out that wallet's share on a black-hole or stalled star, once.
collapse_stalled_starAnyoneFinish a star that has gone 7 days without gaining mass (24 hours in the nursery) with nothing queued.
create_next_starAnyoneStart the next star once the current one is dead, a black hole, stalled, or has 21 SOL committed.
create_first_starAnyoneOnce, after initialize.
fund_protocolAnyoneOne-way donation into protocol_accrued. Needed once at genesis: the fee can't accrue until a push settles, and a push can't settle until a draw has been paid for.
withdraw_protocol_feesAnyone (down to a 0.05 SOL float); the treasury for the restMove accrued protocol SOL to the treasury that was fixed at launch.

No admin, and no pause

initialize runs once, at deploy, and records nothing but the treasury and the genesis seed. There's no update_config, no set_authority, and no pause. They aren't disabled; they don't exist.

initialize is also the only gated instruction: it must be signed by the program's upgrade authority. That isn't an admin power. It stops whoever front-runs the deploy transaction from claiming the treasury, and it's used up the first time it runs.

Everything except feed, request_push and the two claims is permissionless bookkeeping. None of it can be withheld from you: if our crank stops, anyone can run those instructions and the queue keeps draining.

What is not on-chain

History, the archive, leaderboards, chat, profiles, callsigns, epitaphs, these docs, and the HUD are the interface. Planets and remnants are drawn from on-chain data (star seeds and feed order), and DUST is an on-chain counter. Claims and sends are the program.

Program CoriumcqGZW3cdnAiyWz6jHHveMUmdrw9RC1KXfMsF8S. If these docs and the chain disagree, the chain wins.