Technical Architecture

How it's built

Two layers on Solana mainnet. Compressed NFTs for keepsakes. Custom Anchor program for escrow. Deployed March 16, 2026.

Solana MainnetCompressed NFTs (Bubblegum)Arweave (Permanent Storage)Anchor Escrow ProgramTime-Locked DepositsMulti-Depositor

Two-layer architecture

Layer 1: Keepsakes

  • cNFTs via Metaplex Bubblegum — compressed NFTs at ~$0.00005 per mint
  • Images uploaded to Arweave via Irys — permanent, decentralized storage
  • Server-side minting — parent never signs or pays. Server wallet covers gas.
  • Merkle tree — depth 14, 16,384 capacity. One tree for the entire network.
  • Appears in Phantom Collectibles with full image + metadata

Layer 2: Escrow

  • Custom Anchor program — 9 instructions, upgradeable
  • Multi-depositor — anyone can deposit SOL to any milestone
  • Time-locks — Immediate, 3yr, 5yr, 7yr, 10yr, 15yr
  • PDA escrow — SOL held in program-derived accounts (no human controls keys)
  • Safety — 7-day refund, guardian transfer, child wallet update, min deposit

Smart contract instructions

Program ID: FqCSNerRsjdxamLyiyTvqiGKZ4vnfYngLUuTKtSi7RTC

initialize_child
Creates child profile linking guardian wallet to child wallet(Guardian)
create_milestone
Creates milestone record for a tooth (no NFT — cNFT minted separately)(Guardian)
log_milestone
Creates milestone + mints traditional NFT via Metaplex CPI(Guardian)
deposit
Deposits SOL with chosen time-lock and depositor name(Anyone)
claim_deposit
Releases SOL to child wallet (enforces time-lock)(Guardian)
refund_deposit
Reclaims SOL within 7-day grace period(Original depositor)
transfer_guardianship
Transfers control to a new wallet(Guardian)
update_child_wallet
Changes the child's destination wallet(Guardian)

Why Solana

  • Cost: ~$0.00005 per cNFT mint. Families shouldn't pay $5 in gas to record a lost tooth.
  • Speed: ~400ms confirmation. The experience feels instant.
  • Ecosystem: Phantom has 15M+ monthly active users. Largest consumer crypto wallet. Our distribution channel.
  • Compressed NFTs: Bubblegum enables NFTs at 1/1000th the cost of traditional mints. Makes "free for parents" economically viable.
  • Anchor framework: Rust-based, type-safe, battle-tested. The contract is auditable and upgradeable.

Wallet support & roadmap

Current support

Phantom — Desktop extension + mobile (in-app browser). Primary wallet.
Backpack, Solflare, Jupiter — Compatible via Wallet Standard. Not yet tested.
Solana Blinks — Action endpoint deployed. One-click deposits from any wallet that supports Actions.

On the roadmap

Non-crypto onboarding — Email login via Privy/Dynamic. Parent doesn't need to know what a wallet is.
Fiat deposits — Stripe or MoonPay integration. Grandma pays $50, we convert to SOL and deposit.
Fee sponsorship — All transactions sponsored by the network. Zero-fee for families.
Mobile app — Camera-first experience. Push notifications when family deposits.

Development status

Concept, narrative, videoLanding page, 59s video, storyboard assets
cNFT minting pipelinePhoto → Arweave → Bubblegum cNFT → Phantom Collectibles
Escrow smart contract9 instructions, multi-depositor, time-locks, deployed on mainnet
Frontend app5-step mint flow + deposit + dashboard + shareable gift links
Solana BlinksAction endpoint for one-click deposits from any wallet
Mobile supportPhantom in-app browser with universal link detection
toothfairy.networkCustom domain, live on Vercel, SSL, Cloudflare DNS
UX polishReduce friction, better animations, inline dashboard
Multi-wallet testingBackpack, Solflare, Jupiter wallet verification
Grant submissionsSuperteam Canada, FranklinDAO, ALLMIGHT
Non-crypto onboardingEmail login, fiat deposits, fee sponsorship
Family graphMulti-stakeholder permissions, notification system
Mobile appCamera-first native experience
Done Next Future

Open questions

Active technical questions. If you have experience in Solana development, wallet infrastructure, or consumer crypto — let's talk.

  • • Best pattern for non-crypto onboarding — Privy vs Dynamic vs Web3Auth for email-based wallets?
  • • Fiat on-ramp strategy — Stripe + MoonPay, or build a custom solution?
  • • Fee sponsorship model — who pays when everything is free for families?
  • • Multi-wallet testing — are there edge cases with Backpack/Solflare wallet adapters?
  • • Time-lock UX — how to communicate "your money is locked for 10 years" without scaring parents?

Want to discuss the architecture or contribute?

Reach out at hello@toothfairy.network