OpenRung
무료·프라이버시 우선 릴레이 네트워크로 개방형 인터넷 접근을 지원 오픈소스·비영리 운영
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗AI agents now pay for things on-chain, one API call at a time (x402 on Base). Every payment is public. Glasshouse shows what a stranger can work out from those payments: which wallets are the same person, the exchange that likely knows their name, their time zone from when the payments stop at night, and what is going on in their life. Then one switch, Shield mode, pays from one-time wallets and the same analysis traces nothing.
Live: https://glasshouse-eta.vercel.app · Team 0xkalp · Hacker House Goa 2026
/): a simulated person whose agents made 238 paid calls. "Pays openly" traces all 238 to them;
"Shield mode" traces 0, and each payment could belong to any of 221 people. Add ?fixtures=1 to use the saved
copy with no network./audit): sign one free message and see what that wallet's last day of Base payments
gives away. Works with browser wallets (each installed wallet gets its own button), smart wallets (Coinbase Smart
Wallet, Safe: ERC-1271/6492), and agent wallets on a server (sign the challenge there with Foundry, Node or Python
and paste only the signature). Only the wallet's owner can audit it./tour): the whole story in seven screens, live where it can be./real): a snapshot of what real x402 agent wallets on Base give away (time zone, exchange
funding, linked wallets, what they pay for), from public chain data. Totals only: no wallet is named or stored.| Part | Where |
|---|---|
| Linking rules, profile, time zone, graph view (pure TypeScript, runs offline) | packages/engine |
| The same linking in TigerGraph (GSQL), checked equal to the engine | packages/tigergraph |
| Base ingest, x402 client, one-time wallets, signature check | packages/chain |
| Rail contract (Solidity, Foundry) | contracts/ |
| Web app and API (Next.js on Vercel) | apps/web |
The API uses TigerGraph for linking and falls back to the engine when OFFLINE_MODE=true or TigerGraph is
unreachable (the x-glasshouse-links header says which answered).
Safety rules, in code: a real wallet's profile goes only to whoever signed for it; public real-chain data is shown only as totals; usage numbers are totals (wallets deduped by hash); a real audit is never sent to an outside AI model; anything that signs is testnet-only.
Known limits: the 238-payment person is simulated; real audits read one day of history; the Rail's relayer is trusted (it knows which deposit funded which one-time wallet), so Shield mode is a prototype of the idea, not a trustless privacy pool.
Needs Node ≥ 22.12 and pnpm (corepack enable). Foundry (forge) only for the contract.
pnpm install
pnpm --filter @glasshouse/web dev # http://localhost:3000
pnpm test # unit tests, every package
pnpm typecheck
pnpm demo:check # every gate as PASS / FAIL / PENDING
pnpm --filter @glasshouse/web test:e2e # browser tests at desktop, projector and phone sizes
Copy .env.example to .env (never commit it). Everything degrades gracefully: without keys the demo still runs
on the engine and the write-up uses a built-in template.
| Task | Command |
|---|---|
| Create the TigerGraph schema and install the queries | pnpm tg:setup |
Check TigerGraph gives exactly the engine's answers (reloads data; add --no-load to skip) | pnpm test:parity |
| Put 10 test USDC from the relayer into the Rail (Base Sepolia) | pnpm shield:fund |
| Save the real testnet Shield transactions as a ledger | pnpm shield:export |
| Run any ledger through the analysis | pnpm analyze:ledger <ledger.json> <wallet> |
| Rebuild the x402 service → category map from Coinbase's public x402 list | pnpm real:services |
| Re-take the real-data snapshot (totals only; a few minutes) | pnpm real:totals |
GET /api/health shows which dependencies are up (store, TigerGraph, Base, the Shield Rail's balance, keys), with no
secrets in the output.
With TG_SECRET set, the API renews an expired TigerGraph token by itself. To renew one by hand:
curl -s -X POST "$TG_HOST/gsql/v1/tokens" -H 'Content-Type: application/json' -d '{"secret": "<secret>"}'.