SDK

@idn-network/sdk

TypeScript clients for the IDN sponsor-binding protocol v1.0. Verifiers check who is accountable for an agent; issuers sign sponsor attestations. Signing keys never leave your adapter, the website only reads and reserves.

Packages

Verifier: the five-line integration

verifyAgent is the hosted path, it calls the verifier API with your key and returns the sponsor summary.

npm install @idn-network/sdk-verifier
import { IDNVerifier } from '@idn-network/sdk-verifier';

const verifier = new IDNVerifier({ apiKey: process.env.IDN_API_KEY });
const result = await verifier.verifyAgent(jwsToken);
if (result.valid && result.sponsor_class === 'bank' && result.tenure_bucket >= 'T3') {
  // proceed with the transaction
}

Need offline verification with no API key? Use verifyLocal, which runs the signature, timing, and policy checks in process against issuer public keys.

Issuer: sign a sponsor attestation

Signing goes through the versioned IssuerAdapterinterface. Swap the in-process JwkIssuerAdapter for a KMS- or HSM-backed adapter without changing issuer logic, so a private key never leaves the adapter.

npm install @idn-network/sdk-issuer
import { IDNIssuer } from '@idn-network/sdk-issuer';

const issuer = new IDNIssuer({
  issuerId: 'bank.mizuho.jp',
  signingKey: myEd25519Key,
});

const attestation = await issuer.issueSponsorAttestation({
  agentId: 'agent.example.com',
  sponsorClass: 'bank',
  jurisdiction: 'JP',
  tenureBucket: 'T3',
});

// Publish the key set so verifiers can fetch the public key:
await issuer.jwks();

issueSponsorAttestation requires the agent id, sponsor class, jurisdiction, and tenure bucket. The validity window is capped at twenty-four hours. To sign with a KMS or HSM, implement IssuerAdapter and pass it as adapterinstead of signingKey.

Source and packages

GitHub repository · sdk-verifier · sdk-issuer · sdk-core

Apache-2.0 licensed.