Instant authenticity checks
Signed allow or deny on every request. Gate staff and downstream systems get a binary answer backed by cryptographic evidence.
AffixIO · PQC verification · SDK 2.3.0
AffixIO returns a signed allow or deny for age, KYC outcomes, tickets, site access, and agent permissions. Built for post-quantum computing (PQC) with Noir zero-knowledge circuits and ML-DSA-65 (FIPS 204) attestation. Run prove and verify from @affix-io/sdk on your host, or call the REST API. Merkle audit when you need replayable evidence.
At a glance
Verification infrastructure for signed yes or no outcomes, plus a Node.js SDK that runs prove, verify, witness prep, gates, and audit from your own services.
npm i @affix-io/sdk · v2.3.0 · Node 18+
The problem
High-trust workflows need a signed yes or no at the boundary, not another database of identity records.
Signed allow or deny on every request. Gate staff and downstream systems get a binary answer backed by cryptographic evidence.
Spent-proof logic for QR tickets stops copies and replays before they reach the turnstile. Policy runs once at issue, not at every gate.
Noir zero-knowledge circuits prove policy compliance without exposing underlying personal data to every verifier in the chain.
REST API, Node.js SDK, and MCP connector. Call once at the boundary. Core systems stay unchanged.
Platform
Issue credentials, verify at the edge, and retain tamper-evident proof trails on the same API surface.
Bind policy, expiry, and event context at issue time. Outcomes carry verifiable metadata from the start.
Proof embedded in the code. Scanners verify locally without live database access in the scan path.
Public REST API on api.affix-io.com. Circuit verify, health, and Merkle audit endpoints. OpenAPI published.
Prove, verify, and witness prep on npm. Proof generation can run entirely on your infrastructure.
Tamper-evident proof events anchored in a Merkle tree. Public inclusion proofs for regulators and internal audit.
ML-DSA-65 signatures aligned with NIST FIPS 204. Built for post-quantum computing so long-lived proofs resist harvest-now-decrypt-later risk.
How verification works
Four steps from policy to signed outcome. The same flow powers API calls, QR gates, and agent boundaries.
Your system defines eligibility rules and requests a credential or proof packet.
Procurement and compliance teams get a repeatable policy boundary instead of ad hoc checks.
POST /verify · circuit: yesno | kyc | health_age · Noir + Barretenberg
Policy, expiry, and context are bound cryptographically. The proof cannot be reused outside its scope.
Fraud teams can trace every outcome back to the rule set that produced it.
event_id · expiry · spent-proof flag · ML-DSA-65 signature
The holder presents via QR scan, API call, or agent gate. No central lookup required at the edge.
Gate staff and field teams work offline when connectivity is poor.
surface: api | qr | agent | offline
Verifier receives allow or deny with signed evidence. Auditors can replay the proof without seeing raw PII.
Regulators and internal audit get tamper-evident records, not mutable logs.
outcome: ALLOW | DENY · sig + merkle ref
Solutions
Sector workflows built on the same verification primitives: policy in, ML-DSA-65 signed allow or deny out, Merkle-ready proof for audit.
Public programmes need eligibility at the service point without assembling a citizen profile at every gate.
Government sector Government programmes Privacy-preserving age check Proof-not-log audit
Physical goods need authenticity checks that work in shops and warehouses without publishing the supply chain map.
Brand partnerships Collaboration programmes Offline gate verification
Site access should depend on current qualifications, not paper certificates that can be forged or left out of date.
Access control sector Offline gate verification Proof-not-log audit
Gates need a yes or no that survives poor connectivity and resists screenshot reuse.
Offline tickets sector Anti-scalping tickets Offline gate verification Ticketing platforms
Automations and AI agents need a signed permission boundary before consequential actions.
AI agents sector Agent permissions Agent authorisation Agentic payments MCP connector
Retail age gates, field engineer access, and partner APIs need eligibility without copying customer or staff records into every channel system.
Telecommunications sector Privacy-preserving age check Access control Proof-not-log audit
Dealership, plant, and parts workflows need signed eligibility at gates where forged credentials and grey-market components create safety and warranty risk.
Manufacturing sector Transportation sector Access control Offline gate verification
Operators need fast, auditable eligibility at gates and depots, including when connectivity is weak.
Transportation sector Offline gate verification Anti-scalping tickets Double-spend prevention
Payment, programme, and partner boundaries need signed allow or deny that complements regulated KYC without re-copying documents into every downstream system.
Finance sector Agentic payments Fintech and payments Agent permissions
Sites, substations, and contractor boundaries need defensible yes or no decisions without standing up another identity copy in every OT vendor system.
Energy sector Utilities sector Access control Proof-not-log audit
Programmes need clear eligibility at facilities and partner boundaries, with post-quantum signatures suited to long-lived audit expectations.
Aerospace and defence sector Access control PQC migration Proof-not-log audit
Plants mix employees, contractors, and visitors across OT systems. Gates and line boundaries need signed allow or deny without another PII silo.
Manufacturing sector Access control Offline gate verification Proof-not-log audit
Stadiums, arenas, and multi-sport venues need signed entry and accreditation decisions that hold for every fixture type, from league matches to major tournaments.
Offline tickets sector Anti-scalping tickets Offline gate verification Ticketing platforms Age verification Access control
Security and architecture
ML-DSA-65 signatures, Noir zero-knowledge proofs, in-memory-only API processing, client-side proof generation via SDK, and a tamper-evident Merkle audit trail.
Post-quantum lattice signatures aligned with NIST FIPS 204. Every proof outcome carries a signature verifiers can check independently.
Noir circuits compiled with the open-source Barretenberg stack. Prove policy compliance without exposing underlying credential fields.
API requests are processed in memory and discarded after signing. No PII is retained at the verifier by default.
The Node.js SDK can generate proofs on your infrastructure. Credential data never has to reach AffixIO servers.
Proof events anchored in a Merkle tree. Public inclusion proofs for replayable audit evidence.
Security issues reported via security.txt. Documented architecture and trust materials published on the site.
Developers
Start with the live sandbox or install the Node.js SDK. No framework lock-in.
OpenAPI 1.4.2 · spec · api.affix-io.com
@affix-io/sdk on npm. Prove and verify on your infrastructure.
Live endpoints without local setup.
Quickstart · Noir circuits · Merkle audit
import { verifyProof } from "@affix-io/sdk";
const { allowed, proof_id } = await verifyProof({
apiKey: "YOUR_DEMO_KEY",
proof: "YOUR_PROOF_HEX",
circuit: "yesno",
requestAttestation: true,
});
Wales, United Kingdom
AffixIO is verification infrastructure built in Wales. The platform is live: public API, Node.js SDK, sandbox, and published field reports. GB patent application pending.
FAQ
Straight answers for buyers and builders. AffixIO returns signed allow or deny. The Node.js SDK runs on your host. Personal data stays in your systems.
Everyone
No jargon required. What AffixIO is, what it is not, and who holds the data.
AffixIO answers a yes or no eligibility question with a signed proof. That might be age, a KYC outcome, a ticket, site access, or an agent permission. Your other systems keep the personal details. AffixIO returns allow or deny plus evidence you can check later.
No. AffixIO is verification infrastructure. Your CRM, banking core, clinic system, or ticket platform stays the system of record. AffixIO returns a signed decision at the boundary.
No. Sandbox and demo pages are for trying the idea. Production installs the Node.js package @affix-io/sdk on your own server, laptop, clinic host, or worker. Your systems call prove and verify from there.
You do. Credentials and hashing stay on your host. AffixIO handles the prove and verify call, then discards inputs at the verifier by default. Optional Merkle audit stores proof metadata, not identity dossiers.
It is a clear gate decision you can act on and show later: let the payment through, open the door, accept the ticket, or refuse the agent action. The signature is the evidence that the decision was issued under your policy.
Yes. Each outcome can carry a cryptographic signature. Optional Merkle audit lets you replay that a decision existed without opening the underlying personal fields.
No. Identity providers and KYC vendors still establish who someone is. AffixIO checks a policy question at the moment of action and returns signed allow or deny.
Post-quantum computing (PQC) threatens classical public-key algorithms. AffixIO uses ML-DSA-65 aligned with NIST FIPS 204 so proofs signed today remain verifiable if ECDSA, EdDSA, or RSA break.
Use the sandbox, read the evaluation guide, or contact AffixIO for a scoped pilot. Procurement materials sit on the Trust and procurement paths.
Developers
Where prove and verify run, what stays on disk, and how to wire AffixIO into your stack.
You install @affix-io/sdk where your app already runs. Credentials, hashing, and optional files under .affix/ (queued jobs and recent proofs) stay on that host. The SDK talks to the AffixIO API for prove and verify. AffixIO does not become your customer database.
From your host you call sdk.prove, sdk.verify, or sdk.proveAndVerify. The SDK prepares the request on your side, then uses the AffixIO API to generate or check the proof. You can also verify a stored proof string from .affix/ without re-sending the original credentials.
No. @affix-io/sdk targets Node.js 18+ ESM. Keep API keys and prove calls in a server process, background worker, or CLI. Do not ship keys in client-side JavaScript or mobile binaries.
The REST API is the AffixIO service surface (health, prove, verify, Merkle). The SDK is the Node.js client on your infrastructure: those calls plus witness helpers, offline queue, local proof store, CLI, and gate helpers.
QR proofs can verify on a gate device without a live database. On the SDK host, failed prove jobs can queue under .affix/ and flushOfflineQueue replays them when the network returns. Stored proofs can be checked later without sending credentials again.
Optional local state on the host running the SDK: offline-queue.json for failed prove jobs, and proofs.json for recent proof strings you may want to re-verify later.
The published SDK is Node.js 18+ ESM (@affix-io/sdk on npm). Any stack that can call HTTPS can use the REST API and OpenAPI contract directly.
Each eligibility check maps to a circuit (for example yes/no claim, age, ticket). You pass credential, witness, or field inputs for that circuit. The SDK docs list the catalogue and input shapes.
Try the sandbox, install @affix-io/sdk from npm, and follow the SDK docs. OpenAPI is at /openapi.json; a Postman collection is published on the site.