Assets escrow into a shared Estate.
Owner can withdraw while Active. After Triggered, heirs claim from on-chain state without the owner key.
estate.move + testnet packageSui-native inheritance · Lane B frontend
Bequest turns crypto succession into three humane flows: an owner creates a protected estate, an heir claims with Google, and an executor can stop false triggers before assets move.
Sign in with Google to claim your share. Gas is sponsored. The letter unlocks only after the on-chain trigger.
Claim with GoogleAlready live on Sui testnet
Owner can withdraw while Active. After Triggered, heirs claim from on-chain state without the owner key.
estate.move + testnet packageKeeper arms after inactivity, grace protects false alarms, executor can pause Pending before assets move.
keeper seed -> arm -> finalizeSeal denies access while Active, then releases after the Estate status flips to Triggered.
LAST-WISHES PASSEDA keeper created, funded, triggered, and distributed a two-heir SUI estate on testnet.
DISTRIBUTION PASSEDClickable mocked flows
These interactions are intentionally mocked. They exercise the exact product states Lane B owns while Enoki credentials and the real testnet SDK are still being wired.
createEstate()setHeirs()deposit()uploadWishes()The three flows Lane B owns
Owner setup
Google sign-in through zkLogin, heir bindings, split ratios, inactivity window, SUI/NFT deposits, and an encrypted letter stored behind a Seal policy.
Heir claim
After the trigger, Maya sees an inheritance banner, signs in with Google, clicks Claim, receives assets gaslessly, then decrypts the letter.
Executor dashboard
During the grace period, the executor sees the pending trigger and can pause or cancel before the estate becomes claimable.
Live, against the frozen SDK
This card reads a real Estate from the testnet package through the frozen SDK contract, falling back to the demo when no estate exists yet — the product flows never had to be redesigned.
createEstate(config) -> estateIddeposit(estateId, assets[])setHeirs(estateId, heirs[])heartbeat(estateId)armTrigger(estateId, params)claim(estateId)executorOverride(estateId, action)readEstate(estateId) -> EstateViewuploadWishes(estateId, blob)decryptWishes(estateId)Next integration gates
Can the owner pre-name a Google heir before they onboard?
Can Maya complete the claim with no SUI and no wallet funding?
Position as probate augmentation, not a legal replacement.