For your child
Start her college fund the day she's born.
Add Bitcoin on every birthday, from any wallet, grandma's too. While it's sealed, anyone can check nothing has been taken out. When she's ready, hand her the vault.
Put real Bitcoin in a sealed vault and hand it to someone, as a link or to their account. Nothing moves on Bitcoin, and they can check that nobody signed a withdrawal before it reached them. Only they can open it.
01 · seal
Every vault comes with its own Bitcoin, Base and Solana addresses. Send coins from anywhere. While the seal is intact, nobody can even ask for a withdrawal signature.
Bitcoin
tb1q 8v4z wq7m … 9pdl
Base
0x71C7 656E … 9A2f
Solana
7xKX tg2C … gAsU
Unopened · 0 signatures ever requested
02 · transfer
Send a sealed vault to any NEAR account. The new holder gets control of all three addresses and everything at them. The coins stay exactly where they are.
alice.testnet
Sender
bob.testnet
Recipient
Back of the vault · custody
Transferred to bob.testnet. Nothing moved on Bitcoin, Base or Solana.
03 · reject
Once alice.testnet hands the vault to bob.testnet, every attempt from alice.testnet is refused, on every chain. There's no signature to have kept: none was ever requested.
alice.testnet
former owner
No. 0042
owner bob.testnet
$ alice.testnet → withdraw_btc(vault 42)
✓ rejected: ERR_NOT_OWNER
You no longer hold this vault. Only bob.testnet can withdraw from it.
test: alice_cannot_withdraw_after_transfer (T1)
$ alice.testnet → break_seal(vault 42)
✓ rejected: ERR_NOT_OWNER
test: alice_cannot_break_seal_after_transfer (T1)
$ alice.testnet → sign(any payload)
✓ rejected: MethodNotFound
test: no_privileged_methods (T11)
04 · open
Only the current holder can break the seal. It goes in the same NEAR transaction as their first withdrawal, then NEAR's MPC network signs a transaction the contract built itself.
Try it · nothing is sent
No. 0042Press and hold the seal to break it
On a real vault this goes in the same NEAR transaction as the first withdrawal, after a screen that says exactly what can't be undone.
05 · verify
Every vault has a public page that answers who can withdraw, what's inside and what you're trusting, with evidence you can check yourself.
No. No withdrawal can have been signed for it, and only its holder can break the seal.
Held now by bob.testnet.
Unopened
No signature has ever been requested for this vault.
You're trusting
Beyond these checks: NEAR's MPC network, where a threshold of operators must agree, and the NEAR testnet RPCs this page reads. Live checks read the chain now; rules are the locked contract's code, covered by tests; balances are observed from public data.
Before the transfer
alice.testnet
owner
Canbreaks the seal first
bob.testnet
not yet
Can'tdoesn't hold it
After the transfer
alice.testnet
former owner
Can'tERR_NOT_OWNER
bob.testnet
owner
Canbreaks the seal first
a kept signature
alice's
Can'tnone exists · 0 ever requested
Each bar is a rule the contract enforces, with a sandbox test. No numbers here are measured.
Uses
Attack lab
A former owner withdrawing, an opened vault changing hands, a withdrawal from a sealed vault, a raw signature request: each was sent to the locked contract as a real transaction, and each was refused. Check them yourself; your browser reads the answers from NEAR.
See every attack and its testSent to bearer.testnet as real transactions on 9 Nov. Check one: your browser reads the contract's answer from NEAR.
Former owner tries to withdraw
withdraw_evm(vault 1) · expects ERR_NOT_OWNER
Former owner tries to break the seal
break_seal(vault 4) · expects ERR_NOT_OWNER
Transfer an opened vault
nft_transfer(vault 1, opened) · expects ERR_VAULT_OPENED
Withdraw without breaking the seal
withdraw_evm(vault 4, sealed) · expects ERR_VAULT_SEALED
Ask the contract to sign arbitrary bytes
sign(32 bytes) · expects MethodNotFound
Results appear here.
What you're trusting
A threshold of independent operators must agree before any signature exists. Only the Bearer contract can ask for one, and only for a vault's current owner after the seal is broken.
Open source and locked: no full-access keys and no upgrade method, so nobody can change its rules. Its code hash matches a build you can reproduce.
Balances come from public explorers and RPCs, labelled with source and time. The contract never relies on them.
Testnet prototype, not audited. Once opened, a vault can't change hands, and Bearer doesn't escrow payments between people.
Read the full trust model