Back to the vault

Last run November 10, 2026

Don't trust us.
Run it.

Every number below comes from a test you can run on your own machine. The code, the tests and the page generator are in the download.

30rule-by-rule contract tests, all passing
1,040random market weeks, including -60% and +150%
32/32bugs planted on purpose, caught by the tests
46/46checks on the real site, clicking a full week

The rules that must never break

A renter can never lose more than the rentChecked on 5,970 random rentals. The price limit is enforced, and a gain is exact to the unit.
Every ticket is fully backed by sharesAt most 50% of the vault can be rented. Checked 4,160 times, at every step, through weeks from -60% to +150%.
Rent reaches owners, the fee reaches keys, in the same transactionClicked through on the real site: owners’ rent + keys’ fee = exactly what the renter paid.
Nothing disappears, nothing is createdAfter 18,888 random actions, everyone exits. Total shares and dollars match to the unit; what stays in the contracts is rounding only.
The contract owner cannot touch fundsThe full list of write functions is itself a test. A hostile owner maxes the fee, pauses rentals and zeroes the caps: owners still exit in full.
Keys have no adminThe staking contract has no owner. A fake vault cannot create rewards: only dollars that really arrived count, once.

We tried to break it

32 bugs we planted to test the tests: 32 caught
  • Rent more than the 50% limitCaught
  • Raise the rental limit to 90%Caught
  • Rent outside the windowCaught
  • Ignore the renter's price limitCaught
  • Miscalculate the renter's gainCaught
  • Pay gains only if the price doublesCaught
  • Settle before FridayCaught
  • Settle with a price that is not the last oneCaught
  • Settle with a price that is too oldCaught
  • Use the late fallback without waitingCaught
  • Close the week without gains too earlyCaught
  • Make vault shares transferableCaught
  • Claim a ticket twiceCaught
  • Collect rent twiceCaught
  • Withdraw shares twiceCaught
  • Split the rent wronglyCaught
  • Set a fee above 30%Caught
  • Wrong vault entry priceCaught
  • Wrong vault exit priceCaught
  • Rent on a stale priceCaught
  • Rent during an oracle pauseCaught
  • Rent ahead of a stock splitCaught
  • Swap the staking contractCaught
  • Skip the key requirement for priority depositsCaught
  • Never release rental locksCaught
  • Withdraw more shares than you ownCaught
  • Make earnings weeks cheaperCaught
  • Announce fees never receivedCaught
  • Unstake keys without the 7 daysCaught
  • Collect key rewards twiceCaught
  • Withdraw keys twiceCaught
  • Recount rewards already paidCaught

On a copy of the real chain

The vault read the real Chainlink TSLA price ($378.58), and took in and gave back 10 real TSLA tokens, on a local copy of Robinhood Chain. Nothing was sent to the network.

Run it yourself

cd contracts
npm ci
npm test                        # contract and stress tests
node e2e/mutations.mjs          # plant the bugs again
npm i --no-save playwright-core
node e2e/app-e2e.mjs            # click a full week on the site (Chrome)
Download the code and tests

Or paste the contract into your AI of choice with the prompt on the site.

What this does not prove

Fingerprints of the tested code

RentstockVault.solac14c8aa58154f8d00366446184e8f5ab33e600876f998671d6351158ec4b5b9
RentstockStaking.sol24684a626d8e0c71a89a986345b1e38e95e2675b549f15ddf35f11ce9b45d6f1
lib/RentMath.sol937e8b6843979719bc6e362fd56797bd81301ccff94d46387487a04738015b4f
lib/MarketClock.sol22c4342b0e62dfde4bbd973dc6f59cdbe939ac03d19b443084b7d62ccf67e489
Interfaces.sol8056626a10b2f9d92231301c36922fb55a03d8f4ff91e160d6fcac5f64a56572

SHA-256. When the contracts go live, compare them with the verified source on the explorer.