dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻译准备中
尚未检测到更新。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