Impeccable MVP for a pre-recording verification simulator that ingests synthetic notarized bundles, verifies a simulated RON seal and notary authority, emits immutable-style receipts, and anchors receipt hashes on EVM.
npm install
npm -w apps/api run db:generate
npm -w apps/api run db:push
npm -w apps/api run devIn another terminal:
npm -w apps/web run devAPI defaults to http://localhost:3001, web runs on http://localhost:3000.
Runs 50 synthetic verifications, anchors 5 receipts, and verifies receipt integrity.
npm run demo- Local mode (default)
- Requires a local EVM RPC at
LOCAL_CHAIN_URL(defaults tohttp://127.0.0.1:8545). - Requires
LOCAL_PRIVATE_KEY(demo sets it automatically).
- Requires a local EVM RPC at
- Sepolia mode
- Set
SEPOLIA_RPC_URLandPRIVATE_KEY. - Provide
ANCHOR_REGISTRY_ADDRESS(deployed contract address).
- Set
If Sepolia env vars are missing, the API uses local mode.
curl -s http://localhost:3001/api/v1/healthcurl -s http://localhost:3001/api/v1/synthetic | \
curl -s -X POST http://localhost:3001/api/v1/verify \
-H 'content-type: application/json' \
-d @-curl -s http://localhost:3001/api/v1/receipt/<receiptId>curl -s -X POST http://localhost:3001/api/v1/anchor/<receiptId>OpenAPI spec: apps/api/openapi.json.
- Synthetic-only: no real PII is ingested or persisted.
- Receipts are immutable-style: integrity is derived from canonical JSON hashing.
- Anchoring stores only hashes; no document contents are posted on-chain.
- Trust registry validation rejects unsigned or tampered registries.
apps/api: Fastify API + Prisma (SQLite)apps/web: Next.js portal UIpackages/core: canonicalization, hashing, registry, verification enginepackages/contracts: Solidity AnchorRegistry + deploy scriptsscripts/demo.ts: end-to-end demo run
Deed Shield v2 introduces advanced risk detection and privacy-preserving proofs.
An AI-driven module that analyzes deed PDFs for anomalies before recording.
- Forensics: Dectects suspicious metadata/timestamps.
- Layout: Validates structure against known templates.
- Result: Generates a
fraudRiskobject in the verification receipt (Low/Medium/High risk bands).
Proves policy compliance without revealing private transaction details (Notary ID, County codes).
- Output:
zkpAttestationembedded in receipts. - Privacy: Does not expose PII or internal rule logic.
Allows lifecycle management of issued receipts.
- Endpoint:
POST /api/v1/receipt/:receiptId/revoke - Mechanism: Updates status in registry; reflected in verification responses.
Designed for multi-chain anchoring.
- Stub:
PortableAnchorManagerin core prepares for swapping anchor providers without invalidating historical proofs.
Full user documentation is available in the User Manual.