Каждый ответ ИИ
с квитанцией.
Вставьте документ, который составил ИИ. Proof Kit найдёт каждое упомянутое дело в базе CourtListener и покажет, какие существуют. К результату прилагается подписанная квитанция: её проверят партнёр, клиент или суд, и для этого им не нужно нам звонить.
- Открытая спецификация
- Ed25519 + публичная цепочка хешей
- Источник: CourtListener
- Исследование, DOI 10.5281/zenodo.22848827
sig gN-7XztHZP4GRO5MZ0zZ…pEDA
digest 64997144dd1234f4…7fdc24
log #33 → d23cc14c…e55e
Живое демо
Вставьте абзац из черновика ИИ.
Каждая ссылка на дело США сверяется с CourtListener. Вы получаете вердикт по каждой ссылке и подписанную receipt.json.
Почему Proof Kit
Проверка, которую не стыдно показать судье.
Большинство сервисов просят вторую нейросеть оценить первую и выдают процент уверенности. Судье процент не нужен. Ему нужен источник и запись о том, что проверку провели.
Выдуманные дела видны сразу
Если ссылка ведёт в пустоту или на другое дело, вы это увидите, и рядом будет ссылка на запись в базе.
Подпись и защита от подмены
К каждой проверке прилагается receipt.json с подписью Ed25519. Поменяете хоть одну букву, и подпись перестанет сходиться.
Публичная цепочка хешей
Каждая квитанция попадает в открытый журнал. Тихо удалить или исправить запись нельзя никому, нам тоже.
Проверка без нас
Десять строк на Node или Python, или страница в браузере. Аккаунт не нужен, к нашим серверам скрипт не обращается.
Запись для аудита
Положите квитанцию в дело. В ней видно, что проверяли, когда и по какому источнику. Это пригодится, если вы обязаны вести журнал по ст. 12 EU AI Act.
Быстрее, чем перечитать
На иск в 30 страниц уходит столько же времени, сколько на то, чтобы его вставить. Лучше проверить до подачи, чем узнать об ошибке от другой стороны.
Как это работает
От черновика до подписанной квитанции за три шага.
Вставьте текст или вызовите API
Отправьте текст в веб-проверку или POST /api/v1/check. Мы извлекаем ссылки на судебные сборники США (U.S., S. Ct., F.3d, F. Supp., штатов).
Каждая ссылка проверяется
Поиск в CourtListener и сравнение названия дела по словам. Вердикты: подтверждено, другое дело, не найдено, неоднозначно, не проверяется.
Вы получаете подписанную квитанцию
Результат подписывается, его отпечаток добавляется в публичную цепочку. Партнёр, клиент или суд проверит его, не доверяя нам.
{
"body": {
"spec": "sapir-receipt/1",
"kind": "citation-check",
"ts": "2026-10-28T20:51:04.775Z",
"input_sha256": "e8115555b9505b63…d061b211c69",
"checker": "CourtListener citation resolver (courtlistener.com/c/), name-token match >= 0.5",
"results": [
{ "cite": "410 U.S. 113", "name": "Roe v. Wade", "verdict": "verified",
"source": "https://www.courtlistener.com/opinion/108713/roe-v-wade/" },
{ "cite": "925 F.3d 1339", "name": "Varghese v. China Southern Airlines Co.", "verdict": "not_found",
"note": "No case at this citation in CourtListener. Likely fabricated." }
],
"summary": { "total": 2, "verified": 1, "flagged": 1 },
"key": { "alg": "Ed25519", "x": "RMJOfCYzDOsYHFAMA5W5VPmnYN51jh7_sgDPzijAzu0" }
},
"sig": "gN-7XztHZP4GRO5MZ0zZTKAuat8V…JAegI0In4lE3gGpEDA",
"digest": "64997144dd1234f4…2e987fdc24",
"log": { "n": 33, "hash": "d23cc14ceead753a…52e95f85e55e" }
}Здесь сокращено. В настоящей квитанции полные хеши и все пояснения.
curl -X POST https://proof.sapir861.com/api/v1/check \
-H "content-type: application/json" \
-d '{"text":"See Roe v. Wade, 410 U.S. 113 (1973)."}'import { readFileSync } from "node:fs"; // node verify.mjs receipt.json (Node 20+)
const r = JSON.parse(readFileSync(process.argv[2] || "receipt.json", "utf8"));
const canon = o => o === null || typeof o !== "object" ? JSON.stringify(o) : Array.isArray(o) ? "[" + o.map(canon).join(",") + "]"
: "{" + Object.keys(o).sort().filter(k => o[k] !== undefined).map(k => JSON.stringify(k) + ":" + canon(o[k])).join(",") + "}";
const msg = new TextEncoder().encode(canon(r.body));
const hex = Buffer.from(await crypto.subtle.digest("SHA-256", msg)).toString("hex");
const pub = (await (await fetch("https://proof.sapir861.com/.well-known/proofkit-pubkey")).json()).jwk;
const key = await crypto.subtle.importKey("jwk", pub, { name: "Ed25519" }, false, ["verify"]);
const ok = await crypto.subtle.verify({ name: "Ed25519" }, key, Buffer.from(r.sig, "base64url"), msg);
console.log(ok && hex === r.digest && pub.x === r.body.key.x ? "VALID" : "INVALID");# pip install cryptography ; python verify.py receipt.json
import json, sys, base64, hashlib, urllib.request
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
r = json.load(open(sys.argv[1] if len(sys.argv) > 1 else "receipt.json", encoding="utf-8"))
b64 = lambda s: base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))
msg = json.dumps(r["body"], sort_keys=True, separators=(",", ":"), ensure_ascii=False).encode()
pub = json.load(urllib.request.urlopen("https://proof.sapir861.com/.well-known/proofkit-pubkey"))["jwk"]
try:
Ed25519PublicKey.from_public_bytes(b64(pub["x"])).verify(b64(r["sig"]), msg)
ok = hashlib.sha256(msg).hexdigest() == r["digest"] and pub["x"] == r["body"]["key"]["x"]
except Exception: ok = False
print("VALID" if ok else "INVALID")Без установки: откройте https://proof.sapir861.com/ru/verify и вставьте receipt.json.
Проверка идёт локально в браузере (WebCrypto Ed25519). Ничего не загружается.Публичный ключ: /.well-known/proofkit-pubkey
Применение
Сейчас работает для судебной практики. Следом цены и арифметика.
Судебные ссылки
Для фирм и legal-tech команд, у которых черновики пишет ИИ. В открытых базах уже больше 2 000 судебных решений о выдуманных делах, штрафы доходят до сотен тысяч долларов.
Попробовать →Цены против документа
ИИ взял цену, дату или сумму из вашего PDF или таблицы. Мы покажем, из какой ячейки, и совпадает ли цифра.
В лист ожидания →Арифметика в ответах ИИ
Пересчитываем итоги, проценты и единицы в ответе и показываем, где ИИ ошибся.
Запросить доступ →Цены
Платите за период. Не нужно — не продлеваете.
После оплаты ключ API приходит на почту в течение минуты. Повторно с карты ничего не списываем.
Pro
₪149 в месяц₪1 490 за 12 месяцев
- Ключ API сразу после оплаты
- 5 000 проверок в месяц
- Архив квитанций
- Поддержка по почте
Team
₪759 в месяц₪7 590 за 12 месяцев
- 30 000 проверок в месяц
- Экспорт для аудита (CSV + квитанции)
- Созвон по настройке
- Приоритетная поддержка
Пилот
₪4 590 · 30 дней
- 30 дней на ваших документах
- Отчёт по каждой помеченной ссылке
- Если ошибок в черновиках ИИ не найдём, пилот бесплатный
Списание в шекелях через PayPlus · квитанция прилагается · Предоплата · без автопродления · возврат 14 дней
Вопросы или счёт на компанию? Отвечаем в течение 24 часов в рабочие дни.
Вопросы
Что обычно спрашивают юристы
Что именно проверяется?
Существует ли каждая ссылка на дело США в CourtListener и совпадает ли название дела. Мы не оцениваем, подтверждает ли дело ваш аргумент.
Вы храните мой текст?
Нет. Текст обрабатывается в памяти. В квитанцию попадает только его хеш SHA-256, а в открытый журнал только отпечаток квитанции.
Как третья сторона проверит квитанцию?
Скриптом из десяти строк выше или на странице /verify. Подпись Ed25519 сверяется с нашим открытым ключом у вас на компьютере, к нам ничего не уходит.
А ссылки Westlaw / Lexis?
Открытой базы для них нет, поэтому мы помечаем их как непроверяемые. Молча пропускать их мы не будем.
Это доказано?
Частично. В открытом тесте подтвердили 5 из 5 настоящих дел и поймали 3 из 3 выдуманных. Выборка маленькая. Большая независимая проверка идёт сейчас, метод опубликован с DOI.
Что умеем и чего нет. Проверка показывает, есть ли ссылка в CourtListener и совпадает ли название дела. Она не оценивает, подтверждает ли дело ваш аргумент. Охват — судебная практика США в CourtListener; ссылки только из Westlaw/Lexis помечаются как непроверяемые. Независимая оценка на других моделях и больших данных — в работе.
Проверьте следующий черновик ИИ до подачи в суд.
Бесплатно до 100 ссылок в месяц. Без регистрации.