
PerkOS Runtime
Seven AI agents research tokenized stocks with Uniswap; World gates authority, ENS proves identity.
Demo
About
EQLTY Desk continues our ETHGlobal Lisbon project, EQLTY, as a Desk inside PerkOS Runtime. PerkOS Runtime is the app where Desks run: a desktop app for macOS, Ubuntu and Windows — the demonstration link is where you download it, and the video walks the whole journey. Each Desk is a team of agents with its own market and screens. You sign in with your wallet, pick the AI you want (Grok, ChatGPT, Claude, a model on your own machine, or PerkOS LLM when your wallet has access) and talk to Sparky, the assistant, by text or by voice. Turn memory on and Sparky's notes stay on your computer, encrypted under a key that comes from your wallet's signature. EQLTY Desk works tokenized stocks on Robinhood Chain. Seven roles share market facts, Uniswap quotes and an inspectable history. Analyze and advise turns use Scout, Risk, Quote, Trader and Auditor; launch analysis uses Scout, Risk, Hooks, Treasury and Auditor. A research turn never sends an order. The person reviews a fresh quote and explicitly holds to approve a buy. PerkOS validates the delegated wallet's authority, limits and transaction policy before signing permitted Uniswap v4 calls on Robinhood Chain. World protects a separate trust event: granting or increasing the selected Trader's wallet authority, with exact-parameter binding, backend verification and single-use approval. ENSv2 on Sepolia gives the team seven named identities, scoped evidence permissions and ERC-8004 associations verified through ENSIP-25. The owner can move the whole branch between authorized parents while keeping wallets and IDs, and published task packets stay verifiable at their original block. Runtime shows every ENS action with its signer, status, hash, block and an ENS Explorer link. We demonstrated live World sandbox approval and cancellation with both IDKit and World ID for Agents, and public Sepolia identity and evidence verification. Stock-buy execution is implemented and tested behind the owner's hold; we do not claim a live Tokyo swap receipt. Our Continuity disclosure separates the earlier EQLTY and PerkOS work from what we built at this event.
How it's made
Runtime is an Electron shell over a Next.js 16 app served on 127.0.0.1, started with Electron's own Node so it behaves the same on macOS, Ubuntu and Windows. Each launch mints a token that every local request carries, and the local API answers only loopback, same-origin calls. Persistent secrets stay in Electron safeStorage (Keychain, DPAPI or libsecret). Typed workspace packages sit under it: ai (Grok, ChatGPT, Claude, Ollama, LM Studio and PerkOS LLM providers), desk-contract (Desk contract v1 as zod schemas; Runtime refuses a desk answer that breaks it), perkos-client (the typed client for api.perkos.xyz), vault (memory encrypted with AES-256-GCM under a wallet-derived key sealed with a device secret) and ens (a keyless ENSv2 SDK that reads and verifies on its own). EQLTY Desk is a separate Hono and viem service that holds no keys. Its manifest declares the roster, turns and rules. It prices Robinhood Chain Stock Tokens in USDG and asks the Uniswap Trading API for V4-only quotes with V4_NO_HOOKS and X-Agent-Info (autonomous for quotes, human_mediated for swaps), and it checks every built swap (Universal Router 2.1.1, the swapper, chain 4663, zero value) before any calldata leaves. Runtime's turn engine fetches numbered facts (F1, F2, and so on), runs Scout and Risk with the Quote, Hooks or Treasury specialists in parallel, then Trader and Auditor with phase one's answers, and keeps every turn in History. PerkOS API owns authentication, the hosted agents, World verification and the signing boundaries. OIDC uses PKCE, a nonce and a public HTTPS callback; IDKit proofs are verified remotely; a fresh approval is consumed in the same transaction that saves the exact Trader rights. For stock orders the API reprices, checks a narrow policy (only V4_SWAP through Universal Router with Permit2, allowlisted contracts, a per-order cap) and simulates, and only then does a Dynamic delegated wallet sign under a Robinhood Chain signer rule. For ENS, each agent signs with its own Dynamic server wallet; the API persists every operation with nonce locks and reconciles receipts, while Runtime independently checks canonical pointers, scoped grants and ENSIP-25 associations. Runtime's launch flow drafts a stock-paired token through the Bankr Token Launch API, simulates it and waits for the owner's hold. Worth mentioning: our signer rule cannot list hook contracts, so quotes exclude hooked pools; measured live, that cost 0.27% of the output on AAPL and 0.04% on AMD. The ENS team moved to a new parent in 19 transactions without losing wallets, ERC-8004 IDs or grants, and its old evidence still verifies at the original block.