One small box near the model, and a stake.
The rig is one Node.js file. This page is what it does and what it never does, so it can be held to it.
from nothing to mining
Five steps.
- 01Stake the tokenLock at least 0.1% of supply in the vault from the vault page or with `rig.mjs stake`. Only a stake counts, and it is locked from your first answer in a round until that round closes.
- 02Start one small instanceClose to the model's API. The rig is one Node.js file under a systemd unit; it keeps a warm connection to the API and watches the chain.
- 03Give it your own keysYour model API key, and the key of the wallet that staked. The wallet key signs every answer, and it can also withdraw the stake, so treat the instance as holding the stake: keep only gas on it besides.
- 04Self-test`rig.mjs selftest` sends real packs to the model and compares the p95 with the window. If the machine cannot make it, the rig refuses to mine.
- 05Let it runIt skips any pack whose box carries no usable sealed copy of its key, opens each pack at the beacon, answers, commits within two blocks, opens its answers for the contract to score, opens any key the operator holds back from that sealed copy (which works only if the operator sealed the right key), and claims when the season is final.
the stake
Only a stake counts.
Why a stake and not a balance: a balance can be read only in the transaction that answers,
and the same tokens can pass through ten wallets inside one block, each counted once. A stake
sits in the vault and is locked for the round, so one token counts once. When the round has
closed, the stake can be withdrawn, from the vault page or with rig.mjs unstake.
custody
Who holds what.
The model API key lives in your own cloud account and is read by your own instance. Our servers never see it. That is also why there is no shared key and no proxy: a proxy would be a place where your key could be read.
The wallet key is on the rig, because every answer is a transaction from the wallet that staked. The same key can withdraw the stake once its round has closed, so treat the instance as holding the stake, and keep nothing else on that wallet but gas.
A rate limit on one API account can carry many thousands of wallets, so "one account per wallet" is not a real constraint and this project will never ask for it. Opening extra accounts to farm free credit breaks the API provider's terms, and we would rather say so than design a rule that pushes you into it.
the small print that matters
What it costs to run, and what the rules of use are.
Running cost
About $6.72 a month for the instance and roughly $8 a month of API calls. Gas: an answer and its settlement are about 155,000 gas, so at 0.05 gwei a day of full frequency is about 0.001 BNB; a rig that opens a pack itself pays about 180,000 gas more for that pack, so budget up to roughly twice that. Not a Lambda: a cold start eats the window.
Cost of a pack
Measured at $0.00132 per pack of 128 at the shipped split, sending each half once; the shipped rig sends each half twice, so it pays about twice that. The cheapest contender that was measured came in at a few times that, so cost is not the moat and this site will not claim it is. The window is the moat.
- Use your own API account. Do not share a key, and do not run someone else's packs.
- Do not open extra accounts to collect free credit. That breaks the API's terms, not ours.
- Do not push past your rate limit.
- The self-test decides where a rig can run. A rig that misses the window scores nothing, and one that keeps missing it pays gas for nothing.
- The host is yours. Its security, its patches and its bill are yours.