尚未检测到更新。GitHub 发布版本后会显示在这里。
Market research workspace that turns a question into an inspectable brief: every value tagged with source, time and status, gaps marked unavailable, with optional digest receipts on BOT Chain.
翻译准备中
正在加载完整 README。
查看完整 README ↗A market-context workspace for one question at a time. Loxen turns a market question into an inspectable research brief: every value carries its source, timestamp and status, anything missing stays marked as missing, and the brief says what would make its view less credible. A salted digest of a brief can optionally be recorded on BOT Chain as a public receipt.
Loxen is a research tool. It does not trade, hold funds, issue a token or give advice. A brief is not a signal, and a receipt proves only that a wallet recorded a digest at a block, not that the brief is true.
| Part | State |
|---|---|
| Brief composer, local save, Markdown and JSON export | Working |
| Stale, conflict and rule checks | Working |
| Live evidence: BOTScan and BOT Chain RPC (contract verification, holders, transfers, total supply) | Working, for BOT Chain contract addresses |
| Prices, pool liquidity, volume | Not live: entered by hand. No DEX source has been verified yet |
ResearchReceiptRegistry | Deployed and verified on BOT Chain mainnet at 0x4e76FeE7…941298 |
| Receipt commit, history search, profile, package verification | Working on BOT Chain mainnet |
| Model-generated summaries | Off |
| Public API for agents | Not built (later phase) |
Everything above "Working" is covered by tests; see Tests.
| Route | What it is for |
|---|---|
/ | What Loxen is, its source coverage, and a live demo of what goes on-chain |
/workbench | Compose a brief: question, asset, horizon, lens, evidence, rules, unknowns |
/brief/[id] | A saved brief's evidence trail, record and exports |
/registry | Commit a receipt, after seeing exactly what is written |
/history | Search receipts by wallet or ID; verify a receipt package |
/profile | Your on-chain receipts beside the briefs on this device |
/methodology, /privacy, /terms | How evidence is handled; what is stored; boundaries |
Visual design, copy and components are specified in docs/FRONTEND.md. The product requirements are in Loxen_PRD.md.
Browser (Next.js app) Server (Next.js route handlers) BOT Chain
─────────────────────────────────────── ─────────────────────────────── ─────────────────────
Workbench ── briefs in localStorage /api/evidence ─┬─ BOTScan adapter ──▶ scan.*/api/v2
│ (src/lib/storage.ts) └─ RPC adapter ──────▶ rpc (eth_call at one block)
│ cache 60 s · timeouts 8 s · 20 req/min/client
├─ checks: src/lib/evaluate.ts /api/providers ── provider health
├─ export: src/lib/export.ts
└─ digest: src/lib/digest.ts ──────────────────────────────────────────────────▶ ResearchReceiptRegistry
Registry/History/Profile ── wallet (EIP-1193) + viem reads ─────────────────────▶ (contracts/)
src/server/providers/) each parse only their own source and report a
failure as an error with a reason, never as an empty or zero value. Switch them with
NEXT_PUBLIC_LOXEN_PROVIDERS; the coverage shown on the home page is computed from that switch.src/lib/evaluate.ts): a provider value is Live for 10 minutes after it is
read, then Cached; source data older than the horizon allows is Stale; two values for one metric
more than 2% apart (prices, supply) or 10% apart (counts) are both Conflicting; expected metrics with
no value stay in the brief as Unavailable with the reason.{domain, schema, chainId, owner, salt, brief}. The salt is 32 random bytes and never leaves the
user's receipt package. The scheme is pinned by a test vector computed independently with
Foundry's cast keccak.Requirements: Node 22+, and Foundry for the contract.
npm install
cp .env.example .env.local # then set NEXT_PUBLIC_LOXEN_REGISTRY_ADDRESS (mainnet address above)
npm run dev # http://localhost:3000
| Variable | Meaning |
|---|---|
NEXT_PUBLIC_LOXEN_CHAIN | mainnet (677, default) or local (Anvil, 31337, development only) |
NEXT_PUBLIC_LOXEN_REGISTRY_ADDRESS | Registry address. Empty: commit, history and profile say receipts cannot be committed or read |
NEXT_PUBLIC_LOXEN_PROVIDERS | Enabled providers, default botscan,botchain-rpc |
NEXT_DIST_DIR | Build folder, so a second server (tests) can run beside npm run dev |
Network values were checked against the
BOT Chain developer guide on 19 October
2026 (mainnet: chain 677, https://rpc.botchain.ai, https://scan.botchain.ai). Re-check them before any deployment.
npm test # 61 unit tests (Vitest)
npm run test:e2e # 5 end-to-end tests (Playwright, uses installed Edge; E2E_BROWSER_CHANNEL=chrome for Chrome)
cd contracts && forge test # 21 contract tests including a 512-run fuzz test
npm run check:abi # frontend ABI matches the compiled contract (after forge build)
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗