U-net Docs
0.2.0-alpha.3

@union-networks/verification

High-level verification, check catalog, and checkout-bound verification helpers.

bashInstall
npm install @union-networks/verification@alpha

When to use it

Exports

listVerificationChecksiterateVerificationCheckscreateVerificationSessionpollVerificationResultcreateCheckoutVerificationpollCheckoutVerificationlistMiniPrograms

Examples

tsVerification QR
import {
  createVerificationSession,
  pollVerificationResult,
} from '@union-networks/verification';

const session = await createVerificationSession(
  {
    verifierId: 'shop.example.checkout',
    verifierDisplayName: 'Example Shop',
    requestedChecks: [{ requestType: 'age_over_18' }],
    ttlSeconds: 120,
  },
  { verifierBaseUrl: 'https://verifier.egress.live' },
);

renderQr(session.qrPayload);

const result = await pollVerificationResult(session.sessionId, {
  verifierBaseUrl: 'https://verifier.egress.live',
});

if (result.aggregateOutcome === 'passed') {
  allowRestrictedAction();
}
tsCheckout binding
import {
  createCheckoutVerification,
  pollCheckoutVerification,
} from '@union-networks/verification';

const checkout = await createCheckoutVerification(
  {
    serviceId: 'example-shop',
    assertionJws,
    requiredChecks: ['age_over_18'],
    restrictedResourceIds: ['wine-001'],
    ttlSeconds: 120,
  },
  { issuerBaseUrl: 'https://issuer.egress.live' },
);

if (checkout.requiresVerification && checkout.verification) {
  renderQr(checkout.verification.qrPayload);
  const finalCheckout = await pollCheckoutVerification(
    {
      checkoutId: checkout.checkout.checkoutId,
      serviceId: 'example-shop',
      assertionJws,
    },
    { issuerBaseUrl: 'https://issuer.egress.live' },
  );

  if (finalCheckout.checkout.status !== 'completed') {
    removeRestrictedItems(finalCheckout.checkout.failureReason);
  }
}