Institutional infrastructure · Contract 586.v1
Verify signed trust decisions without Abraxas as your trust root
Install the distributable institutional verification SDK in your own Node backend. Cryptography, digest v2 trust pins, tenant binding, revocation freshness, and replay guards stay fail-closed without Abraxas Supabase or Next.js.
What the verifier checks
- Ed25519 receipt signature against your pinned ABRAXAS_RECEIPT_VERIFICATION_REGISTRY (offline).
- Partner and policy binding for the relying party scope you configure.
- Expiration and revocation signals — unsigned revocation hints are rejected.
- Authenticated portable revocation snapshots with monotonic checkpoint advancement.
- Optional single-use receipt consumption to block replay at your application boundary.
- Cross-application isolation — the same presentation must not authorize under another tenant's policy.
Environment capabilities
Use build546/build586 adversarial fixtures and in-memory consumption stores. No network trust root.
Pin sandbox registry JSON + institutional portable revocation trust. Holder-authorized receipts from Launchpad sandbox apps.
Pin production receipt key digest, durable replay store on your infrastructure, and operator-issued portable revocation trust.
Who this is for
- Institutional engineering teams operating their own authorization API (banks, exchanges, hospitality platforms, identity orchestrators).
- Security engineers who must pin issuer keys and digest v2 trust material independently of Abraxas hosted UI.
- Backend teams that need inspect-only cryptography separate from authorize-with-replay enforcement.
Package delivery (Build #587)
Package @abraxas/institutional-verification at version 0.1.0 ships as a controlled local tarball — not on public npm until founder approval.
# Inside abraxas-app (maintainers) npm run pack:institutional-sdk # → packages/abraxas-institutional-verification/abraxas-institutional-verification-0.1.0.tgz # Your backend (third party) npm install ./abraxas-institutional-verification-0.1.0.tgz
Node.js 20+. Runtime deps: tweetnacl only. Optional PostgreSQL adapter remains institution-implemented via ReceiptConsumptionStore.
Integration module
The tarball bundles production Build #546/#586 verification logic — no duplicate signature math and no @/ path aliases at runtime.
// Controlled release — install from founder-approved tarball (not public npm yet)
// npm install ./abraxas-institutional-verification-0.1.0.tgz
import {
resolveInstitutionalTrustEnv,
inspectSignedDecisionReceipt,
verifySignedDecisionReceipt,
RECEIPT_TRUST_DIGEST_VERSION,
} from "@abraxas/institutional-verification";
import { FileReceiptConsumptionStore } from "@abraxas/institutional-verification/consumption";
const trust = await resolveInstitutionalTrustEnv({
receipt_verification_registry_json: process.env.ABRAXAS_RECEIPT_VERIFICATION_REGISTRY,
pinned_receipt_key_document_digest: process.env.ABRAXAS_RECEIPT_KEY_DOCUMENT_DIGEST,
});
if (!trust.ok) throw new Error(trust.code);
// Inspection — never grants access (no replay writes)
const inspected = await inspectSignedDecisionReceipt({
signed_record: holderReceipt,
relying_party: { partner_id: "your-partner", policy_id: "your-policy" },
request_id: "checkout_inspect",
trust_env: trust.env,
});
// Authorization — durable replay + authenticated revocation on your infrastructure
const store = new FileReceiptConsumptionStore(process.env.RP_CONSUMPTION_DIR!);
const decision = await verifySignedDecisionReceipt({
signed_record: holderReceipt,
relying_party: { partner_id: "your-partner", policy_id: "your-policy" },
request_id: "checkout_123",
trust_env: trust.env,
consumption_store: store,
revocation_source: institutionOperatedRevocationFeed,
});
if (!decision.authorize) {
return res.status(403).json({ errors: decision.rejection_reasons, digest_v: RECEIPT_TRUST_DIGEST_VERSION });
}Monorepo reference: examples/institutional-verifier-backend · Clean-room consumer smoke: examples/external-sdk-consumer
Replay and revocation
- FileReceiptConsumptionStore — single-host reference only; requires shared atomic filesystem for multiple processes.
- Multi-instance production — implement ReceiptConsumptionStore with PostgreSQL, Redis, or equivalent compare-and-set semantics.
- Revocation — use an institution-operated adapter with observed_at freshness; never treat arbitrary JSON as authenticated issuer evidence.
- Digest v2 — re-pin ABRAXAS_RECEIPT_KEY_DOCUMENT_DIGEST when rotating keys or changing lifecycle metadata.
Rejection reason codes (partner-safe)
issuer_untrustedSigning key is not in the institution's pinned receipt verification registry.tenant_policy_mismatchReceipt policy_id does not match the relying party's configured policy.replay_detectedSingle-use consumption guard saw this receipt_id already at this partner/policy scope.revocation_stalePortable revocation snapshot sequence regressed or failed freshness checks.trust_material_pin_mismatchFetched receipt key document digest does not match operator-pinned material.portable_revocation_unsignedAuthorization requires an authenticated portable revocation snapshot.Separation of concerns
- Receipt verification — cryptographic authenticity + registry (this module).
- Application policy enforcement — your product rules after authorize === true.
- Issuer trust configuration — pinned env + optional digest-checked fetch.
- Revocation freshness — authenticated portable snapshots + checkpoint store on your side.
- Replay state — durable consumption store you operate (filesystem or DB).
Billing and metering can wrap successful authorize events without making signature verification depend on Abraxas online services.
Quick links
Institutional protocol access and signed receipts. Commerce Partner Flow is a separate path.
- Step 1Create application
Create or select your sandbox application in Launchpad.
Launchpad → - Step 2Choose verification
Select organization protocol access for this integration.
Verify → - Step 3Connect application
Add callbacks and sandbox credentials.
Connect → - Step 4Test sandbox
Run tests and complete holder verification.
Test → - Step 5View receipt
Review the signed receipt and integration activity.
Workspace → - Step 6Request Production
Submit sandbox evidence for Production authorization.
Production →