ERC-4337-style account abstraction live on AERE. Create a smart account, sign a UserOperation with your wallet key, the Paymaster pays gas, you transfer AERE without holding any AERE for gas. This is the exact flow consumer apps use to give end users gasless transactions.
Address is deterministic from your EOA + a salt. Deploys lazily via CREATE2.
Send some AERE to the smart account so it has balance for the inner transfer. Gas for THIS funding tx comes from your EOA, but every subsequent UserOp pays 0 gas (paymaster).
Sign a UserOp with your EOA key (free, just a signature, not a tx). Then the bundler (this page acts as bundler) submits it via the EntryPoint. Paymaster pays gas on your behalf.
Browser (Privy/Magic/MetaMask key) EntryPoint contract Paymaster
───────────────────────────── ──────────────────── ──────────
1. Build UserOp { sender, nonce, callData, ┐
paymasterAndData: [Paymaster addr] } │
2. getUserOpHash(op) ──────────────►│ returns hash bound to (chainId, EntryPoint)
3. Sign hash with EOA key │
4. handleOps([op], beneficiary) ───────────►│
│ 1. Verify account.validateUserOp(op)
│ 2. Verify paymaster has prefund
│ 3. Execute account.execute(to, value, data)
│ 4. Deduct gas cost from paymaster ──────►│ pays gas
│ 5. Pay fees to bundler
└ done · user paid 0 gas
For a consumer app: end users sign UserOps via their embedded wallet. The app backend acts as the bundler (or pays a third-party bundler). The app tops up the Paymaster prefund weekly. End users never need to hold AERE for gas.