Hacki
All BUIDLs

About the project

One USD₮ wallet for a whole household. The money sits in Aave earning, and everyone who spends from it, whether that is a kid, a shop, or Netflix, holds a permission with a cap that a contract enforces. The app cannot widen it, and neither can they.

Built on Tether WDK, gasless, on Base Sepolia.

Test it here: https://familia-v8ug.onrender.com/

How it works

  • The pot. The parent supplies USD₮ to Aave V3 and holds real aUSDT.

Custody never moves. tx

  • A permission. The parent grants a scope on our ScopedSpendManager:

per-purchase cap, period cap, expiry, and an optional allowlist of payable addresses. This happens before the spender even has an account.

  • Joining. The kid opens a link, touches Face ID once, and has a working

account. No install, no seed phrase, no gas.

  • Paying. The kid's own account calls spend. The manager checks the

caller, both caps, the expiry and the allowlist, then pulls the parent's aUSDT and has Aave pay the shop the underlying USD₮, all in one transaction. tx

  • Over the cap, or off the list. The payment becomes an on-chain request

instead of a failure. The parent approves it from their phone, which raises the allowance by exactly that amount, settles, and puts it back atomically. the ask · the approval

  • Revoking is instant and on-chain.

tx

!Flow Diagram

Subscriptions are the same object

A mandate is a scope with a biller as the spender instead of a person. No new contract was needed.

  • Both caps are one month's price, so a second collection inside the same

period is refused with OverPeriodCap.

  • The allowlist pins the destination, so the biller cannot pay itself.
  • The expiry is twelve periods, so it lapses on its own if nobody cancels.
  • Collecting is the biller's own transaction, paying its own gas. No parent

signature is taken, because permission was given when the scope was granted.

Cancelling is a revoke. The service does not get asked. mandate · collection · cancellation

Where WDK does the work

Every write in the app is a WDK-built ERC-4337 UserOperation from an EIP-7702 delegated EOA.

SurfaceWhat it does
wdk-wallet-evm-7702-gaslessevery account, parent and kid
Batched sendTransactiona deposit is mint, approve, supply and fee approval in one signature
quoteSendTransactionthe fee shown before signing is priced against the exact batch
wdk-secret-managerencrypts the wallet entropy; the key is a WebAuthn PRF output and is never stored
registerPolicya kid's account is locally refused anything but the manager

Fees, in USD₮

No provider prices gas in USD₮ on Base Sepolia, so we deployed our own paymaster with an ERC-7677 service in front of it. The parent pays their own fees in USD₮. Kids pay nothing, because a child should not need a balance to spend an allowance. Nobody touches a native token at any point.