Search projects, hackathons, sponsors and tech

    ← All projects

    Relay

    Bundle your APIs then delegate by ENS name to anyone with Enhanced Access Control

    Demo

    About

    Relay explores a simpler way to share API access across an organization: bundle all the API and delegate the API permissions through ENSv2 Enhanced Access Control. As we start to adopt AI agents, access becomes harder to manage. Employees, agents, and subagents need different services, spending allowances, and session durations. Sharing a single credential makes it difficult to track responsibility or withdraw access from one branch. Relay organizes these relationships into six levels: company → department → team → user → agent → subagent. An interactive access tree shows each identity, its provider permissions, and its relationship to the rest of the organization. Names such as derek.eng.sodalabs.eth make the delegation path readable. Children entity can only access API services their parents allow with and simulated usage counts toward every ancestor’s allowance. An integrated activity log makes changes visible alongside the tree. Our goal is to let organizations delegate API access with only 1 API without distributing the underlying API.

    How it's made

    Relay is built with Next.js App Router, React, JavaScript, and custom CSS. The page layout and dashboard are React components, while an interaction controller manages tree selection, department filtering, zoom, provider lists, permission editing, and activity updates. The permission model is separated from the interface in a JavaScript module. Each identity stores its parent, wallet address, provider allowances, budget period, usage, and optional expiry. The model walks the ancestor chain to calculate inherited access and the remaining allowance. Before accepting simulated usage, it checks the entire chain, then updates each ancestor’s usage so multiple descendants consume a shared parent budget. Revocation and expiry also propagate through that chain. The access tree uses positioned cards and SVG connections. A fit-to-view calculation scales the hierarchy to its container. Provider marks are inline SVGs sourced from Simple Icons and Lobe Icons, restyled into a consistent khaki-and-stone badge system. Overflow circles reveal the complete provider list without crowding the cards. One practical implementation choice was to preserve the original DOM-based interaction controller during the Next.js migration, mounting it through a React effect with cleanup for listeners, timers, and observers. This let us retain the prototype’s interactions while separating the permission logic for testing. Automated tests use Node’s built-in test runner to cover hierarchy construction, permission validation, shared budgets, cascading revocation, expiry, and demo data consistency. State currently lives in browser memory and resets on reload. ENS is represented through the naming model; no ENS contracts, World ID, MultiBaas, live provider APIs, or production authentication are integrated in this version.