Search projects, hackathons, sponsors and tech

    ← All projects

    Branch Zero

    A walkable 3D bank where every desk is a real smart-account op—no wallet pop-ups after one consent.

    Demo

    About

    Most crypto apps hide security behind wallet pop-ups. Branch Zero makes the security the building. You walk a low-poly 3D bank in the browser (Godot 4.5). Staff speak everyday bank language; the chain does the real work. At Account Opening you sign in once with Privy and grant a scoped session signer. After that, tellers stamp slips—no more modals. Each desk is a live Bloxchain AccountBlox operation via the public @bloxchain/sdk: • Counter (Eve) — routine payments via instant meta-tx to approved payees • Vault (Bob) — large wires with an on-chain timelock; the clock is releaseTime • Manager (Mr. Walker) — priority release or cancel while PENDING • Name Desk (Petra) — claim you.branchzero.eth (ENSv2 subnames + passbook text records) • FX Desk (Johnny) — quote and swap practice USD→EUR|ILS through Uniswap v4, only because your account’s guard list whitelists the Universal Router Boards, clocks, and balances are read from chain (Sepolia Live Main; Remote EVM for Developer Mode)—honest theatre, not local fiction. Tone: Papers, Please procedure + Animal Crossing warmth. What’s next: polish the public demo path, deepen the FX/ENS surfaces judges care about, and keep Arc as a deferred “second wing” rather than a half-shipped claim.

    How it's made

    Three runtimes, one governed account per player, public packages only—no custom Solidity in this repo. Browser: Godot 4.5 (GDScript, single-thread WebGL2) for the walkable bank. A Vite + React shell hosts the canvas and owns the one Privy modal. Godot never holds keys or talks RPC; it only calls window.BranchZero over JavaScriptBridge. The bridge uses @bloxchain/sdk + viem for reads (timelock state, roles, guards, ENS) and HTTP/SSE to the Teller Desk for writes. Server: Teller Desk is Node 20 + Fastify. It provisions AccountBlox, requests EIP-712 signatures via Privy’s session-signer RPC under a typed-data policy, and broadcasts with a hot wallet that pays gas. Neither piece can move funds alone—enclave signs only in-policy typed data; on-chain guards enforce targets and selectors. Chain: Live Main on Ethereum Sepolia (AccountBlox, practice USDC, ENSv2, Uniswap v4). Developer Mode uses a private Remote EVM (1337). Sponsor seams that mattered: • Privy — one embedded-wallet consent + policy-bound session signer so the game never interrupts with pop-ups (B2B treasury workflow under bank fiction). • ENS — real Sepolia ENSv2 subnames under branchzero.eth; resolve-to-pay and passbook text records, not a nickname table. • Uniswap v4 — FX desk hand-encodes Universal Router calldata with viem; AccountBlox guard list allows only the router. Quoter + StateView feed an honest rate board before the player accepts. Notable hack: single-thread Godot web export (threaded wasm needs COOP/COEP that breaks Privy’s iframe). Also shipping a lean wasm budget so the game can load same-origin on Cloudflare Pages.