Web dashboard for OutLayer — verifiable off-chain compute and agent custody for NEAR, running in Intel TDX enclaves.
Live at app.outlayer.ai (moving to app.outlayer.ai).
Extracted 2026-08-04 from the near-outlayer monorepo (dashboard/) with full history.
- Next.js 16 (App Router, Turbopack) + React 19 + TypeScript
- Tailwind CSS v4
- NEAR wallets via
@hot-labs/near-connect
npm install
cp .env.example .env.local # contracts, RPC URLs, coordinator API per network
npm run dev # http://localhost:3000public/llms.txt and public/llms-full.txt are tracked artifacts. Their markdown
sources (README, API.md, CUSTODY.md, wasi-examples, …) live in the near-outlayer
monorepo, so a standalone clone cannot rebuild them. To refresh after monorepo docs
change:
LLMS_SOURCES_ROOT=~/projects/near-offshore npm run llmsWithout LLMS_SOURCES_ROOT, dev/build keep the committed files untouched.
Edit scripts/llms-manifest.mjs to change what is indexed or inlined.
The deploy host can regenerate at build time from its own monorepo checkout.
Set the path once in .env.local (the script loads env files via @next/env,
same precedence as the app):
# .env.local on the deploy host
LLMS_SOURCES_ROOT=/path/to/near-outlayerThen every deploy is one command (as nextjs-user):
scripts/deploy.sh # resets llms artifacts, pulls, npm ci, builds, restarts the serviceTo also refresh the llms content, git pull the monorepo checkout first — the
script deliberately does not touch it. The git checkout -- step inside the
script matters: regeneration rewrites two TRACKED files, and a dirty tree makes
the next git pull abort. Restarting needs a narrow sudoers rule (see the
script header).