Repository navigation
Home
Every Hour, Sealed on Chain. — timevault.tv
Time Vault turns freelance hours into tradable on-chain assets. A provider mints their availability as a Service NFT, a buyer's funds lock in smart-contract escrow, and a panel of seven specialised AI agents handles pricing, verification, matching, reputation, and disputes. Settlement is automatic once delivery is verified.
This wiki covers how the system fits together. For setup and file layout, see the README.
| Page | URL | What it is |
|---|---|---|
| Landing | / | Brand intro, agent cards, live marketplace preview |
| App | /app | Vault Overview, Browse, Mint, Orders, Disputes, Agent Console |
| Whitepaper | /whitepaper | Tokenomics, technical diagrams, roadmap |
- Mint — a provider tokenises hours into a Service NFT. SOLON suggests a rate from live market data; the provider is free to override it.
- Escrow — the buyer purchases hours. Funds move into a smart-contract vault, held by neither party.
- Deliver — the provider submits proof of work.
- Verify — KAIROS inspects the deliverable and emits a Confidence Score (0–100). That score is the escrow trigger, not a human approval.
- Settle — funds release automatically. NERIS updates the provider's Skill Score.
- Dispute — if either side objects, VORIAN reviews both sides and issues a binding decision. Escrow stays locked until it does.
| Agent | Role | What it decides |
|---|---|---|
| LYRA | Concierge & onboarding | Guides NFT creation, answers questions, routes buyers |
| VORIAN | Escrow arbiter | Binding verdicts on disputes |
| NERIS | Reputation engine | Skill Score from delivery quality, not self-reported ratings |
| SOLON | Pricing oracle | Rate recommendations and demand forecasts |
| KAIROS | Verification engine | Confidence Score that releases escrow |
| ATLAS | Talent scout | Buyer ↔ provider matching via skill embeddings |
| CIRION | Treasury manager | Portfolio, yield, buyback, DAO reporting |
LYRA is the only agent with a live backend today (server/). The rest are specified and
represented in the interface while the on-chain layer is built.
Frontend — vanilla HTML, CSS, and JavaScript. No build step, no framework, no bundler.
Three.js and Google Fonts load from CDN; everything else is served as static files. Each
page defines its design tokens as CSS variables in :root.
Shared modules live in assets/js/ and are self-contained — each injects its own
markup and styles, so a page only needs the script tag:
-
agent-menu.js— agent panels and chat on the landing page -
vault-notes.js— draggable terminal notepad, stored per wallet -
wallet-connect.js— EIP-6963 wallet discovery -
tv-auth.js— email sign-in via Supabase
Backend — server/ runs the LYRA agent behind nginx at /api/lyra. It is Python
standard-library HTTP, no framework. Every credential is read from the environment; none
are stored in this repository.
Wallets — connection uses EIP-6963 multi-injected provider discovery, so MetaMask, Rabby, OKX, Coinbase Wallet, Trust and others are picked up without hardcoding any of them. The connector requests accounts only. It never asks for a signature or a transaction.
Any static server works — there is nothing to compile.
npx http-server . -p 8080
Then open http://localhost:8080. The marketplace runs client-side, so the app is fully
browsable without a backend; only LYRA's chat needs server/ running.
The site is static files behind nginx, fronted by Cloudflare. URLs are extensionless —
nginx maps /app to app.html via try_files, and any /name.html 301-redirects to
/name.
One rule matters more than the rest: never copy nginx-timevault.conf over a live
vhost. Once certbot has run it owns that file and adds the listen 443 ssl block.
Overwriting it deletes that block and takes HTTPS down — and because Cloudflare keeps
serving pages, the outage is easy to miss. Use deploy/patch-clean-urls.sh as the model:
patch in place, test with nginx -t, roll back on failure.
Full runbook: deploy/DEPLOY.md.
Pre-launch. The frontend platform is complete and the brand system is final. Marketplace data currently runs client-side while the on-chain layer is built.
Next milestones:
- Contracts — $TV (ERC-20), Service NFT (ERC-721), Escrow Vault to testnet, then audit
- Backend — persistent marketplace, orders, disputes
- Launch — $TV on letscash.fun, Robinhood Chain integration as it becomes public
Is the token live? No. Time Vault is pre-launch. Any contract address shown in the interface is a placeholder until audited contracts ship.