Search projects, hackathons, sponsors and tech

    ← All projects

    Plumb

    Onchain rent escrow releasing USDC when an NYC HPD violation resolves, verified by Chainlink CRE

    About

    Plumb is an onchain escrow for rent withheld over housing violations. When a NYC tenant's apartment has an open HPD (Housing Preservation & Development) violation, their rent is locked in a USDC escrow on Arc instead of flowing to the landlord. A Chainlink CRE oracle checks the violation's real status against NYC's official open-data feed and posts the verified outcome onchain, which settles the escrow automatically: if the landlord fixes the issue (violation Closed), the contractor who did the repair is paid their fee and the landlord receives the remaining rent; if the violation is Dismissed, the landlord is made whole. Any yield earned on the locked funds always goes to the tenant. No party can release the money unilaterally — settlement is driven only by the city's own verified data.

    How it's made

    The core is a Solidity EscrowVault on Arc testnet (chain 5042002) holding USDC — Arc's native gas token, 6 decimals — which it deposits into a yield source for the lock period and settles per-escrow through an oracle-gated updateStatus(). The real-world data comes from a Chainlink CRE (Chainlink Runtime Environment) workflow in TypeScript: a cron job polls NYC's HPD Housing Maintenance Code Violations dataset (Socrata wvxf-dwi5) by violationId, maps violationstatus/currentstatus to an onchain Status enum (Open/Closed/Dismissed), and delivers a signed report through the Chainlink Keystone forwarder to an EscrowVaultReceiver that inherits Chainlink's ReceiverTemplate and is registered as the vault's authorized oracle. The frontend is Next.js + Privy (embedded wallets) + viem. Two things worth noting: we vendored Chainlink's ReceiverTemplate/IReceiver verbatim from the official docs rather than reconstructing them, so the auth and interface match upstream exactly; and we proved the full loop end-to-end in CRE simulation against live HPD data — using the Arc MockForwarder, a real corrected violation (ID 18100032) drove escrow #1 to settle onchain, with the contractor/landlord/tenant payouts verified by reading contract state, not logs. The production path swaps the MockForwarder for the live KeystoneForwarder (DON-signed reports).