BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
ProofAPI — Tamper-Evident Receipts for AI Answers
ProofAPI puts a digital seal on every AI answer. The input, the answer and the settings are fingerprinted and recorded by our own Solana program. Anyone with the link can check that nothing was changed — no account, no crypto wallet.
All code in this repository was written during the hackathon (first commit on 30 September 2026). It uses open-source libraries listed under Tech Stack.檢視完整 README ↗ProofAPI puts a digital seal on every AI answer. The input, the answer and the settings are fingerprinted and recorded by our own Solana program. Anyone with the link can check that nothing was changed — no account, no crypto wallet.
Live Demo · Video Demo · Video Pitch · Presentation · Docs · npm · X
| Name | Role | Contact |
|---|---|---|
| Bekarys | CEO | [email protected] · X |
| Nurdaulet | CTO | GitHub |
| Submission material | Link |
|---|---|
| Pitch video | Watch the pitch |
| Product demo video | Watch the demo |
| Live application | proofapi.vercel.app |
| Presentation | Google Slides |
| Contact email | [email protected] |
All code in this repository was written during the hackathon (first commit on 30 September 2026). It uses open-source libraries listed under Tech Stack.
| Genuine | After someone edits the AI answer |
|---|---|
What a certificate does not prove: that the AI answer is correct, or which model really ran (the model is declared by the caller). It proves the recorded data hasn't changed since it was sealed.
Clock, so records can't be back-dated.POST /api/v1/seal with API keys, TypeScript SDK on npm (npm install proofapi), playground, console with keys, usage and recordsproofapi-mcp) with seal_answer, seal_hashes, verify_record and get_evidence; machine-readable llms.txt and openapi.jsonverifier.html that checks it against Solana directly| Layer | Technology |
|---|---|
| On-chain program | Rust · Anchor (built and deployed with Solana Playground) |
| Chain client | TypeScript · @solana/web3.js v1 · hand-written Anchor encoding |
| Web app and API | Next.js 15 (App Router) · React 19 · Tailwind CSS 4 · shadcn/ui (Base UI) |
| Auth | Auth.js (NextAuth) with GitHub · hashed API keys |
| Database | Prisma 6 · SQLite locally · Postgres (Neon) in production |
| SDK and MCP | TypeScript ESM package proofapi · Model Context Protocol SDK |
| AI | Google Gemini with structured output; deterministic mock without a key |
| Independent verifier | Single HTML file · WebCrypto · Solana JSON-RPC |
| Testing | Vitest (135 tests) · byte-level fake of the program · devnet end-to-end script · GitHub Actions |
| Hosting | Vercel (fra1) |
AI agent (MCP) · SDK · HTTP API · Browser
│ input + answer (or fingerprints only)
▼
┌─────────────────────────── Next.js app ───────────────────────────┐
│ API key / session → limits → canonical JSON → salted SHA-256 x3 │
│ (input, output, metadata) │
│ │
│ Postgres: users, API keys, records, salt ProofService │
└───────────────────────────────────┬───────────────────────────────┘
│ create_proof(proof_id, 3 hashes)
▼
┌──────────────── Solana program proof_registry ────────────────────┐
│ Issuer PDA ["issuer", authority] writer key, active, count, │
│ last_record_hash │
│ ProofRecord ["proof", issuer, seq] hashes, prev_record_hash, │
│ record_hash, timestamp │
│ record_hash = SHA256("proofapi-v1" ‖ fields ‖ prev ‖ timestamp) │
└───────────────────────────────────┬───────────────────────────────┘
│ getAccountInfo (any RPC)
▼
Certificate page · History audit · verifier.html (offline)
Program: programs/proof_registry/src/lib.rs — instructions register_issuer, set_writer, set_active, create_proof. There is no instruction to edit or delete a record.
Devnet deployment: program 5ffvduJkfxLgFiJEoZ9Pjq7oPVW1aKCgfqzmEto1FqjU. Details in programs/proof_registry/README.md.
npm install proofapi
import { ProofAPI } from 'proofapi';
const proofapi = new ProofAPI({ apiKey: process.env.PROOFAPI_API_KEY }); // key from /console/keys
const record = await proofapi.seal({ input: prompt, output: answer, model: 'your-model' });
console.log(record.certificateUrl); // share this link
Connect an AI agent through MCP (Claude, Cursor and other clients):
{
"mcpServers": {
"proofapi": {
"command": "npx",
"args": ["-y", "-p", "proofapi", "proofapi-mcp"],
"env": { "PROOFAPI_API_KEY": "pk_live_..." }
}
}
}
Prerequisites: Node.js 20+. No Rust toolchain is needed: the program is built in Solana Playground.
git clone https://github.com/Kriazer078/proofapi
cd proofapi
npm install
cp .env.example .env
npm run db:push
npm test
npm run dev
Open http://localhost:3000. By default CHAIN_MODE=memory runs a local simulation of the program. Set AUTH_DEV_LOGIN=1 to try the console without a GitHub app (ignored in production).
On Solana devnet:
npm run setup # creates server keys in .keys/ (git-ignored)
# fund the printed writer address at https://faucet.solana.com
# set PROGRAM_ID and CHAIN_MODE=anchor in .env (or deploy your own copy, see programs/proof_registry/README.md)
npm run register-issuer
npm run chain:status
npm run e2e:devnet # create, verify, tamper, audit, and write an evidence pack
Production settings: GEMINI_API_KEY for AI review, AUTH_GITHUB_ID and AUTH_GITHUB_SECRET for GitHub sign-in (callback /api/auth/callback/github). The sign-in secret is derived from IP_HASH_SALT unless AUTH_SECRET is set.
MIT — see LICENSE