A guide to
living objects.
An artwork with a vault attached. Create it with a deposit, evolve it with another, and take the balance with you when ownership changes.
Your first vault.
You need an EVM wallet with test MON for network fees. Keep your recovery phrase and private key in your wallet, never in this application.
- Connect on Monad Testnet
Connect your wallet and switch to chain 10143. If you need test MON, use the Monad faucet.
- Claim test tokens
In the create studio, claim 1,000 mUSDC. The faucet has a 60-second cooldown per address.
- Approve, then create
Enter at least 1 mUSDC. Approve the exact amount, then confirm the mint transaction. These are separate wallet confirmations. An existing sufficient allowance skips approval.
- Add a deposit
Open your vault, choose Add to vault, then Deposit & evolve. Confirm approval if requested and confirm the deposit. The current artwork changes after a successful receipt and state refresh.
One object. Four actions.
| Action | What changes | What stays |
|---|---|---|
| Create | An NFT is minted and the deposit is held by the vault contract. | Your wallet controls the NFT. |
| Evolve | Principal and top-up count increase; metadata updates. | Token number and mint date. |
| Transfer | The NFT and the right to redeem move to the recipient. | Balance, history and art state. |
| Redeem | The entire principal is returned to the current owner and the NFT is burned. | The transaction record. |
Redemption is irreversible. It burns the artwork and returns all its test tokens. There is no partial withdrawal, undo, or restoration of the same token number.
State becomes form.
The deployed contract produces deterministic geometric SVG art. Token number determines its seed, balance tier influences geometry, and deposits add layers. The level caps at eight, but later deposits continue changing the original rotation and tally.
Demo view versus the original
The website defaults to a richer sculptural bloom presentation derived from the original SVG's token number, confirmed top-up count and balance tier. This presentation is generated in the browser; it is not the immutable NFT image and it is not stored on-chain. The landing exhibition uses credited public-domain paintings; those editorial images are separate from vault NFTs.
On a vault page, the eye button switches to the original on-chain artwork. Download exact SVG always exports that original, regardless of the selected view. Your metadata, funds, ownership and deployed contracts are unchanged by the demo presentation.
History and previews
History rebuilds past states from Minted and ToppedUp event arguments and the contract's pure preview function. Studio previews show the projected next state, not a completed transaction. A pending or rejected deposit never advances the current vault.
The championship engine.
The separate F1 oracle collection covers all 11 teams on the 2026 grid. Constructors' Championship totals are computed from real completed-season winners, beginning in 1958. Titles use exact constructor IDs; predecessor teams are not silently merged. Ferrari has 16, McLaren 10, Mercedes 8, Williams 9 and Red Bull 6 through 2025. Teams without titles under their own identity have zero.
A custom push oracle stores those totals, the latest season's points and wins, the observation timestamp, and a Keccak-256 source-report digest on Monad Testnet. The same contract is an ERC-721 collection: its original metallic turbine SVG reads the published data. Titles determine layered structure, points determine rotation, and wins influence blade orientation. Publishing real updated race results changes existing NFT metadata and emits ERC-4906 notifications.
This is an authorized single-reporter oracle, not a decentralized consensus feed. The immutable reporter wallet must fetch and publish real results. The digest lets anyone check the exact canonical source report against the chain; it does not independently prove an HTTP response truthful. There is no fabricated data or forced evolution control.
Visit the F1 page for source/published comparisons, championship years with source links, original SVG export and report download. Minting is free apart from test MON gas. F1 NFTs have no mUSDC vault balance; the original deposit vault collection remains separate and immutable. Before deployment, the page shows actual API results but no on-chain artwork. After deployment, chain data is polled every 15 seconds; source requests may be cached for five minutes.
Source: Jolpica F1 API documentation. Publication is disabled when the fetched report digest already matches the chain. Championship totals change after completed seasons, while race points and wins can change during the season.
From the museum collection.
The landing-page frames display public-domain artworks as an editorial exhibition. These paintings are separate from the evolving vault NFTs. Images are provided through Wikimedia Commons; museum records identify the works and their public-domain status.
Public contracts. No hidden vault.
Living Vault uses an immutable ERC-721 collection with an attached ERC-20 balance. There is no upgrade proxy or vault administrator. Reads and wallet-signed transactions go directly to Monad Testnet; no database, IPFS or external oracle is required.
- Network
- Monad Testnet / 10143
- Compiler
- Solidity 0.8.31 / Osaka / viaIR
- Contract libraries
- OpenZeppelin 5.6.1
- Source verification
- MonadVision and Monadscan
- Wallet custody
- Your wallet retains its signing key
- App stack
- Next.js, React, Wagmi and Viem
The mainnet art edition.
The F1 collection and Living Together are also deployed on Monad Mainnet. They have no token deposit balance or redemption. Minting, claiming and artwork changes use real MON for network fees. Your wallet must explicitly switch to chain 143. The original mUSDC vault and faucet remain on Testnet; their balances never cross networks. The separate native MON vault holds real deposits on mainnet.
Deployment and published source are confirmed, not an independent security audit. F1 still trusts its immutable authorized reporter; a community chapter still needs a genuinely newer report to activate. Signing a mainnet transaction spends real MON, even though minting and claiming have no purchase price.
A vault backed by MON.
The MON vault is a separate contract from the original testnet mUSDC vault. A first deposit of at least 0.01 MON mints an NFT; positive top-ups evolve its artwork. Deposits use native MON directly, with no ERC-20 approval. MON amounts use 18 decimals and artwork balance tiers use whole MON.
- Ownership
- Principal follows the NFT
- Redemption
- Burn NFT; pay current owner
- Fees
- Gas separate from principal
- Admin powers
- No admin, upgrades or rescue withdrawals
- Accounting
- Per-vault principal plus totalPrincipal
- Returns
- No interest or yield
A failed payout reverts the burn and preserves principal. Approved NFT operators may top up or redeem, but ordinary redemption always pays the owner. Only the owner may use redeemTo to choose another payout address if its wallet rejects MON. Direct plain MON transfers are rejected; forced excess balances do not create principal or redemption rights.
Experimental real-fund custody, not independently audited. Published source and local tests are not a security guarantee. Use only a small amount you can afford to lose, and review the deposit plus maximum fee before signing. Smart-account wallets with EIP-7702 delegation must retain Monad\'s 10 MON reserve plus the deposit and gas; regular accounts have different reserve exceptions. The app checks delegation before signing.
Testnet tokens and fees.
mUSDC is a six-decimal mock token, not real USDC. Test MON pays network fees. The testnet mUSDC edition has no investment return, interest, price feed or exchange. The separate MON vault holds real principal on mainnet and also offers no yield.
- Minimum first deposit
- 1 mUSDC
- Later deposits
- Any positive six-decimal amount
- Faucet allocation
- 1,000 mUSDC per claim
- Faucet cooldown
- 60 seconds per address
- Redemption
- Full principal to current owner
- Approvals
- Exact amount, not unlimited
The app estimates gas, adds a 5% limit buffer, and supplies explicit fee caps. Review the maximum network fee in your wallet. Fees are separate from the vault balance; on Monad the gas limit matters, so rejected or failed actions are not a reason to blindly increase it.
Know what you authorize.
- Only the owner or an approved ERC-721 operator can top up or redeem. An approved operator's redemption still pays the current owner.
- Transferring the NFT also transfers redemption rights. Verify the recipient address; a successful transfer cannot be reversed by the app.
- The mock token deployer can seed test balances. This token is intentionally not a scarce asset.
- Fee-on-transfer deposits are rejected. Failed payouts roll back the burn and vault accounting.
- Testnets can reset and public RPCs can be unavailable. Read errors do not prove that a confirmed transaction failed.
- Source verification is not a security audit. Do not use this testnet edition to custody real assets.
Verified locally: 19 contract test groups and 22 browser checks. Actual testnet mint and deposits were independently checked through RPC. Public-chain transfer and redemption have not been exercised with the user's wallet. No independent audit is claimed.
When something pauses.
Approval succeeded, but my artwork has not changed.
Approval allows the contract to spend tokens; it does not deposit them. Finish the mint or Deposit & evolve confirmation. Check the transaction receipt before retrying.
My transaction is confirmed, but the old art remains.
The network read may have failed after confirmation. Use the refresh action. Do not send a second deposit just to refresh the display.
MetaMask crashes when connecting.
Try its toolbar popup, close the crashed full-screen view, then restart the extension or browser if needed. Keep your password available. Never share your recovery phrase or reset your wallet as a first troubleshooting step. A direct account connection is used here, but an extension defect can still occur.
I cannot send a transaction.
Confirm chain 10143, sufficient test MON for gas, sufficient mUSDC and a valid amount. Close any previous wallet request. A rejected signature makes no state change.
A vault is missing.
Confirm the token number and network. A redeemed token has been burned; a transferred token appears in its new owner's collection. A testnet reset can remove deployed code.
History loads slowly.
History reads public event logs in bounded chunks. Retry when the RPC is less busy. Current ownership and principal do not depend on history loading.
A few final details.
Does each deposit really change the NFT?
Yes. A confirmed deposit changes stored principal and top-up count, which changes the original metadata image. The website's demo view also follows those confirmed values.
Can I withdraw part of the balance?
No. Redeem returns the entire balance and burns the NFT. Top-ups and ownership transfers do not withdraw funds.
Are community voting and real-world data supported?
Real sports data is supported by the separate F1 oracle collection. Deposit vaults evolve through top-ups. The separate Living Together collection adds shared fragments and holder votes on artist-proposed chapters. Activation requires a newer real F1 report. Oracle-fed weather, AI generation and real yield are not included.
Can I use it without connecting a wallet?
You can browse the exhibition, documentation and public vault pages. Creating, depositing, transferring and redeeming require a wallet signature.
Ready for the first brushstroke?
Testnet only. Your wallet signs every action.