A contract with no exit · TEN goes in and stays · Robinhood ChainRESERVE 0x4fC94FD08Ff44abde7452BB109f1C5ab937ED4e3
reserve(). The number can only go up: there is no function that moves TEN out.READING reading Robinhood Chain…
Stacked: each layer sits on the one below, the top line is the whole reserve. Donated = TEN sent to the contract by the community (initial reserve included). Earned = TEN paid by PAR rounds. Swapped = TEN bought with the NET rewards. Click a legend entry to hide a layer.
The reserve is a smart contract that holds TEN like a burn address does, with one difference: it stays a holder, so it keeps receiving the rewards PAR pays every round. Those rewards do not leave either.
The only role is the operator. Its only power is timing: it decides when to convert the NET and sets a minimum amount of TEN to accept, so the swap cannot be sandwiched. It cannot move anything anywhere.
Anyone can add TEN to the reserve. Send TEN to the address below with a normal transfer from any wallet, Robinhood app included. What you send stays there forever and keeps earning NET that becomes more TEN. No connect, no signature, no form: just a transfer.
0x4fC94FD08Ff44abde7452BB109f1C5ab937ED4e3Send TEN only, on Robinhood Chain. Do not send ETH: the contract refuses it. Do not send other tokens: there is no way to get them back. A donation is final by design.
Every function the contract has. There are no others.
process(amountIn, minTenOut) operator only · NET held here → TEN, kept here donate(amount) anyone · moves TEN from the caller into the reserve setOperator(next) operator only · hands the timing role to another address reserve() pendingNet() totalBought() totalNetSpent() totalDonated() rounds() ten() net() router() factory() operator() read only
Not in the code: owner, withdraw, transfer, approve, rescue, sweep, upgrade, selfdestruct. The swap pool is read from the PAR factory on every call, never chosen by the caller, and the recipient of every swap is the contract itself.