
Attico
On-chain rental agreements with portable, privacy-preserving tenant reputation via ZK proofs.
Demo
About
Attico is a base protocol for on-chain lease management that builds portable, privacy-preserving tenant reputation from payment history. Tenants pay rent in stablecoins through smart contracts and accumulate soulbound attestations for each payment. They can then generate zero-knowledge proofs showing "18 months on-time, 0 missed" — without revealing amounts, addresses, or landlord identities. Identity is decoupled from wallet addresses: reputation is tied to a Self Protocol nullifier derived from passport verification, with World ID as a secondary proof-of-humanity layer — users who complete both get a "double-verified" badge, creating strong sybil resistance. Users can link multiple wallets and switch freely. Think of it as the Lens Protocol of housing — a reputation layer any rental platform can build on.
How it's made
Attico's protocol layer is five Solidity contracts (AtticoRegistry, PaymentAttestation, Agreement, AgreementFactory, ReputationVerifier) deployed on Celo Sepolia using Hardhat 3. Identity verification uses Self Protocol — AtticoRegistry inherits SelfVerificationRoot and registers a VerificationConfigV2 on Hub V2, with passport nullifiers as the identity anchor. World ID adds a secondary sybil-resistance layer via cloud API verification (IDKit widget + /api/v4/verify) — chain-agnostic, so it works on Celo without on-chain World ID contracts. Agreements are deployed as EIP-1167 minimal proxies via AgreementFactory for gas efficiency. PaymentAttestation is a soulbound ERC-721 (ERC-5192) with a two-tier minter authorization chain. The frontend is Next.js 14 App Router with Tailwind and shadcn/ui. Auth uses Privy with embedded wallets created on login for non-crypto users. Gasless transactions route through Circle Paymaster. Hardware signing uses Ledger DMK with ERC-7730 clear signing descriptors so users see human-readable transaction details on device. Contract events are indexed via The Graph (subgraph on Graph Studio) for reputation queries. wagmi + viem handle all contract interactions, with @privy-io/wagmi providing the provider stack.