Trust without data
Your users don't hand over email or phone to talk to you. Trust is the wallet PIC — a verified credential, not a form field.
For merchants · Aithne ecosystem
Integrate the Aithne PPIL client, hold the cts-api-key-cumarsaide license, and broker pseudonymous relay conversations between your site and your users. Signing stays under your control. No PII enters your schema or ours.
Your users don't hand over email or phone to talk to you. Trust is the wallet PIC — a verified credential, not a form field.
Your signing keys and hooks stay in your systems or HSM. The client never holds your private keys — signing happens in your hooks.
A single requestRelay call opens a signed, ephemeral relay via PPIL — with callbacks wired into your correlation state.
All integration happens under merchant control. No PII enters the contract.
Key id cts-api-key-cumarsaide, configured server-side in config/ppil-client-config.json or env. Never in client bundles or repos.
authenticatePIC, getSignedPIC (signing via external signer/HSM), correlation/session storage, and optional signalCorrelation. The client throws if required hooks are missing.
Hooks run under merchant control. Your signing keys never ship to CTS or the browser.
CTS pushes relay events to POST {merchant}/ppil/cts-callback; persist via setCorrelation, notify via signalCorrelation (its failure doesn't fail the callback). Idempotent on correlationId.
Verify with contract tests; ensure no raw tokens in logs (maskSensitive → abc****xyz), no PII fields in your schema, and your signing keys never ship to CTS or the browser.
All values are structural references — no real keys or tokens appear in this documentation.
| Item | Contract |
|---|---|
| Endpoint | POST /cts/ppil/comm/request-relay |
| Auth header | API key — key id cts-api-key-cumarsaide (value configured server-side) |
| Required header | correlationId — non-empty; drives idempotency/retry |
| Body | { pptId, purpose, commToken, addrToken } |
| Callback | POST {merchant}/ppil/cts-callback — correlation/relay payloads |
| Token handling | ephemeral · server-side verified · masked in logs (abc****xyz) |
Your signing keys never enter these calls. Signing happens in your hooks. The client never logs raw tokens.
import PPILClient from '@aithne/ppil-client'; const client = new PPILClient('./config/ppil-client-config.json'); await client.register(app, './config/ppil-hooks.js'); await client.requestRelay({ pptId, // from wallet PIC purpose: 'order_support', correlationId: crypto.randomUUID(), commToken, // wallet-issued, ephemeral addrToken // routing scope, ephemeral });
Your signing keys never enter this call — signing happens in your hooks.
Both sides share one absolute: no PII is collected, stored, or logged — anywhere in the flow.
CTS · cts-api-key-cumarsaide Operational
Merchant onboarding is wallet-based and managed through the Aithne ecosystem. To begin, get the wallet — no email or phone form.
Open Aithne Wallet