@zkproofport-ai/sdk 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,7 @@ Client SDK for ZKProofport zero-knowledge proof generation on Base Mainnet.
4
4
 
5
5
  ## Overview
6
6
 
7
- @zkproofport-ai/sdk is a TypeScript SDK for generating privacy-preserving zero-knowledge proofs using Coinbase KYC attestations. Generate a proof with a single function call, or fine-tune each step for custom workflows.
7
+ @zkproofport-ai/sdk is a TypeScript SDK for generating privacy-preserving zero-knowledge proofs using Coinbase KYC attestations and OIDC JWT tokens. Generate a proof with a single function call, or fine-tune each step for custom workflows.
8
8
 
9
9
  Proofs are generated in trusted execution environments (Nitro Enclaves) with cryptographic attestation. Payment is handled transparently via the x402 protocol using EIP-3009 (no user gas costs).
10
10
 
@@ -40,14 +40,14 @@ Before using the SDK, you need:
40
40
  3. **USDC balance on Base** — At least $0.10 per proof. Payment is gasless (EIP-3009 signature, facilitator pays gas).
41
41
  4. **Attestation wallet private key** (required) — The private key of the wallet that holds the EAS attestation. This is always a raw private key because the attestation is tied to a specific address.
42
42
 
43
- 5. **Payment wallet** (optional) — Wallet with USDC balance for proof payment. Defaults to the attestation wallet. Choose one:
43
+ 5. **Payment wallet** (recommended) — Separate wallet with USDC balance for proof payment. Choose one:
44
44
 
45
- - **Same as attestation wallet** — No additional setup. The attestation wallet must hold USDC.
46
- > ⚠️ **Privacy risk:** Using the attestation wallet for payment exposes your KYC-verified wallet address on-chain in the payment transaction, linking your identity to on-chain activity. Use a separate payment wallet for privacy.
45
+ - **Same as attestation wallet (NOT recommended)** — No additional setup, but **defeats zero-knowledge privacy**.
46
+ > ⚠️ **Privacy risk:** Using the attestation wallet for payment exposes your KYC-verified wallet address on-chain in the payment transaction, **directly linking your real-world identity to on-chain activity**. This defeats the purpose of zero-knowledge proofs. Always use a separate payment wallet (private key or CDP) to preserve privacy.
47
47
  - **Separate private key** — A different wallet with USDC balance.
48
48
  - **CDP MPC wallet** — Coinbase Developer Platform managed wallet. Private keys never leave Coinbase's TEE. Get credentials at [CDP Portal](https://portal.cdp.coinbase.com). Requires additional install:
49
49
  ```bash
50
- npm install @coinbase/agentkit @coinbase/cdp-sdk
50
+ npm install @coinbase/cdp-sdk
51
51
  ```
52
52
  | Credential | Required | Description |
53
53
  |------------|----------|-------------|
@@ -58,25 +58,7 @@ Before using the SDK, you need:
58
58
 
59
59
  ## Quick Start
60
60
 
61
- ### Single Wallet (attestation + payment)
62
-
63
- ```typescript
64
- import { generateProof, createConfig, fromPrivateKey, verifyProof } from '@zkproofport-ai/sdk';
65
-
66
- const config = createConfig();
67
- const signer = fromPrivateKey(process.env.PRIVATE_KEY);
68
-
69
- const result = await generateProof(
70
- config,
71
- { attestation: signer },
72
- { circuit: 'coinbase_kyc', scope: 'my-app' }
73
- );
74
-
75
- const verification = await verifyProof(result);
76
- console.log('Valid:', verification.valid);
77
- ```
78
-
79
- ### Separate Payment Wallet
61
+ ### Separate Payment Wallet (Recommended)
80
62
 
81
63
  ```typescript
82
64
  import { generateProof, createConfig, fromPrivateKey, verifyProof } from '@zkproofport-ai/sdk';
@@ -98,14 +80,34 @@ console.log('Valid:', verification.valid);
98
80
  ### With CDP Payment Wallet
99
81
 
100
82
  ```typescript
101
- import { generateProof, createConfig, fromPrivateKey, CdpWalletSigner, verifyProof } from '@zkproofport-ai/sdk';
83
+ import { generateProof, createConfig, fromPrivateKey, fromExternalWallet, verifyProof } from '@zkproofport-ai/sdk';
84
+ import { CdpClient } from '@coinbase/cdp-sdk';
102
85
 
103
86
  const config = createConfig();
104
87
  const attestationSigner = fromPrivateKey(process.env.ATTESTATION_KEY);
105
- const paymentSigner = new CdpWalletSigner({
106
- getAddress: () => myWallet.getAddress(),
107
- signMessage: (msg) => myWallet.signMessage(msg),
108
- signTypedData: (domain, types, message) => myWallet.signTypedData(domain, types, message),
88
+
89
+ // Create CDP MPC wallet (private keys never leave Coinbase's TEE)
90
+ const cdp = new CdpClient();
91
+ const account = await cdp.evm.getOrCreateAccount({ name: 'proofport-payment' });
92
+
93
+ const paymentSigner = fromExternalWallet({
94
+ getAddress: () => account.address!,
95
+ signMessage: async (msg) => {
96
+ const message = msg instanceof Uint8Array ? Buffer.from(msg).toString() : msg;
97
+ const result = await cdp.evm.signMessage({ address: account.address!, message });
98
+ return result.signature;
99
+ },
100
+ signTypedData: async (domain, types, message) => {
101
+ const primaryType = Object.keys(types).find(k => k !== 'EIP712Domain') || '';
102
+ const result = await cdp.evm.signTypedData({ address: account.address!, domain, types, primaryType, message });
103
+ return result.signature;
104
+ },
105
+ sendTransaction: async (tx) => {
106
+ const result = await cdp.evm.sendTransaction({
107
+ address: account.address!, transaction: tx, network: 'base-sepolia',
108
+ });
109
+ return { hash: result.transactionHash, wait: async () => ({ status: 1 }) };
110
+ },
109
111
  });
110
112
 
111
113
  const result = await generateProof(
@@ -352,13 +354,36 @@ const result = await generateProof(config, signers, {
352
354
  });
353
355
  ```
354
356
 
357
+ ### OIDC Domain
358
+
359
+ Proves email domain affiliation using an OIDC JWT token (e.g., Google, Microsoft). No EAS attestation or Coinbase account required — only a payment wallet and a JWT `id_token`.
360
+
361
+ ```typescript
362
+ import { createConfig, generateProof, fromPrivateKey } from '@zkproofport-ai/sdk';
363
+
364
+ const config = createConfig();
365
+ const paymentSigner = fromPrivateKey(process.env.PAYMENT_KEY);
366
+
367
+ const result = await generateProof(
368
+ config,
369
+ { attestation: paymentSigner }, // OIDC skips attestation; payment signer is used for x402 payment only
370
+ {
371
+ circuit: 'oidc_domain',
372
+ jwt: idToken, // JWT id_token from Google/Microsoft OAuth
373
+ scope: 'myapp:verify-domain',
374
+ },
375
+ );
376
+ ```
377
+
378
+ > **Note:** For OIDC circuits, the `attestation` signer field is only used as a payment fallback. Pass your payment wallet — no EAS-attested wallet needed.
379
+
355
380
  ## Types Reference
356
381
 
357
382
  **Circuit Types:**
358
383
 
359
384
  ```typescript
360
- type CircuitName = 'coinbase_kyc' | 'coinbase_country';
361
- type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation';
385
+ type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain';
386
+ type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation';
362
387
  ```
363
388
 
364
389
  **Configuration:**
@@ -398,7 +423,7 @@ class CdpWalletSigner implements ProofportSigner {
398
423
 
399
424
  // Wrap external wallet (WalletConnect, MetaMask, Privy, etc.)
400
425
  function fromExternalWallet(wallet: {
401
- address: string | (() => Promise<string>);
426
+ getAddress(): string | Promise<string>;
402
427
  signMessage(message: Uint8Array): Promise<string>;
403
428
  signTypedData(domain: any, types: any, message: any): Promise<string>;
404
429
  sendTransaction?(tx: any): Promise<{ hash: string; wait(): Promise<any> }>;
@@ -413,6 +438,7 @@ interface ProofParams {
413
438
  scope?: string; // defaults to 'proofport'
414
439
  countryList?: string[]; // for coinbase_country only
415
440
  isIncluded?: boolean; // for coinbase_country only
441
+ jwt?: string; // JWT id_token for OIDC circuits (required for oidc_domain)
416
442
  }
417
443
  ```
418
444
 
@@ -448,6 +474,15 @@ interface ProofResult {
448
474
  }
449
475
  ```
450
476
 
477
+ **OIDC Inputs:**
478
+
479
+ ```typescript
480
+ interface OidcProveInputs {
481
+ jwt: string;
482
+ scope_string: string;
483
+ }
484
+ ```
485
+
451
486
  **Callbacks:**
452
487
 
453
488
  ```typescript
@@ -1,8 +1,8 @@
1
- import type { CircuitId } from './types.js';
2
- export declare const CIRCUITS: Record<CircuitId, {
1
+ export declare const CIRCUITS: Record<string, {
3
2
  displayName: string;
4
- easSchemaId: string;
5
- functionSelector: string;
3
+ easSchemaId?: string;
4
+ functionSelector?: string;
5
+ inputType?: string;
6
6
  }>;
7
7
  export declare const COINBASE_ATTESTER_CONTRACT = "0x357458739F90461b99789350868CD7CF330Dd7EE";
8
8
  export declare const AUTHORIZED_SIGNERS: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAWA,CAAC;AAEF,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AACtE,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAeA,CAAC;AAEF,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AACtE,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
package/dist/constants.js CHANGED
@@ -9,6 +9,10 @@ export const CIRCUITS = {
9
9
  easSchemaId: '0x1801901fabd0e6189356b4fb52bb0ab855276d84f7ec140839fbd1f6801ca065',
10
10
  functionSelector: '0x0a225248',
11
11
  },
12
+ oidc_domain_attestation: {
13
+ displayName: 'OIDC Domain',
14
+ inputType: 'oidc',
15
+ },
12
16
  };
13
17
  export const COINBASE_ATTESTER_CONTRACT = '0x357458739F90461b99789350868CD7CF330Dd7EE';
14
18
  export const AUTHORIZED_SIGNERS = [
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAIhB;IACH,oBAAoB,EAAE;QACpB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,4BAA4B,EAAE;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,4CAA4C;IAC5D,MAAM,EAAE,4CAA4C;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAKhB;IACH,oBAAoB,EAAE;QACpB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,4BAA4B,EAAE;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,uBAAuB,EAAE;QACvB,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,MAAM;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,4CAA4C;IAC5D,MAAM,EAAE,4CAA4C;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EACX,WAAW,EACX,UAAU,EAEX,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,EACpE,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,WAAW,CAAC,CAgGtB"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAEZ,WAAW,EACX,WAAW,EACX,UAAU,EAEX,MAAM,YAAY,CAAC;AAOpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,EACpE,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,WAAW,CAAC,CA4HtB"}
package/dist/flow.js CHANGED
@@ -2,9 +2,10 @@ import { ethers } from 'ethers';
2
2
  import { CIRCUIT_NAME_MAP } from './types.js';
3
3
  import { requestChallenge } from './session.js';
4
4
  import { prepareInputs, computeSignalHash } from './inputs.js';
5
+ import { prepareOidcInputs, buildOidcProverToml } from './oidc-inputs.js';
5
6
  import { makePayment } from './payment.js';
6
7
  import { submitProof, submitEncryptedProof } from './prove.js';
7
- import { USDC_ADDRESSES } from './constants.js';
8
+ import { CIRCUITS, USDC_ADDRESSES } from './constants.js';
8
9
  import { encryptForTee } from './tee.js';
9
10
  import { buildProverToml } from './toml.js';
10
11
  /**
@@ -25,6 +26,7 @@ export async function generateProof(config, signers, params, callbacks) {
25
26
  const circuitId = CIRCUIT_NAME_MAP[params.circuit];
26
27
  const scope = params.scope || 'proofport';
27
28
  const paymentSigner = signers.payment || signers.attestation;
29
+ const isOidc = CIRCUITS[circuitId]?.inputType === 'oidc';
28
30
  const steps = [];
29
31
  function recordStep(step, name, data, startTime) {
30
32
  const result = { step, name, data, durationMs: Date.now() - startTime };
@@ -32,27 +34,44 @@ export async function generateProof(config, signers, params, callbacks) {
32
34
  callbacks?.onStep?.(result);
33
35
  return data;
34
36
  }
35
- // Step 1: Sign signal hash
36
- let t = Date.now();
37
- const attestationAddress = await signers.attestation.getAddress();
38
- const signalHash = computeSignalHash(attestationAddress, scope, circuitId);
39
- const signalHashHex = ethers.hexlify(signalHash);
40
- const signature = await signers.attestation.signMessage(signalHash);
41
- recordStep(1, 'Sign Signal Hash', { signalHash: signalHashHex, signature }, t);
42
- // Step 2: Prepare inputs + build proverToml locally
43
- t = Date.now();
44
- const inputs = await prepareInputs(config, {
45
- circuitId,
46
- userAddress: attestationAddress,
47
- userSignature: signature,
48
- scope,
49
- countryList: params.countryList,
50
- isIncluded: params.isIncluded,
51
- });
52
- const proverToml = buildProverToml(circuitId, inputs);
53
- recordStep(2, 'Prepare Inputs', { inputFields: Object.keys(inputs).length, tomlLength: proverToml.length }, t);
37
+ // Steps 1-2: EAS attestation path (skipped for OIDC circuits)
38
+ let easInputs;
39
+ let proverToml;
40
+ if (!isOidc) {
41
+ // Step 1: Sign signal hash
42
+ let t = Date.now();
43
+ const attestationAddress = await signers.attestation.getAddress();
44
+ const signalHash = computeSignalHash(attestationAddress, scope, circuitId);
45
+ const signalHashHex = ethers.hexlify(signalHash);
46
+ const signature = await signers.attestation.signMessage(signalHash);
47
+ recordStep(1, 'Sign Signal Hash', { signalHash: signalHashHex, signature }, t);
48
+ // Step 2: Prepare inputs + build proverToml locally
49
+ t = Date.now();
50
+ easInputs = await prepareInputs(config, {
51
+ circuitId,
52
+ userAddress: attestationAddress,
53
+ userSignature: signature,
54
+ scope,
55
+ countryList: params.countryList,
56
+ isIncluded: params.isIncluded,
57
+ });
58
+ proverToml = buildProverToml(circuitId, easInputs);
59
+ recordStep(2, 'Prepare Inputs', { inputFields: Object.keys(easInputs).length, tomlLength: proverToml.length }, t);
60
+ }
61
+ else {
62
+ // OIDC path: no EAS attestation, prepare inputs locally from JWT
63
+ recordStep(1, 'Sign Signal Hash', { skipped: true, reason: 'oidc' }, Date.now());
64
+ // Step 2: Prepare OIDC inputs + build proverToml locally (JWT never leaves client)
65
+ let t2 = Date.now();
66
+ if (!params.jwt) {
67
+ throw new Error('jwt is required for OIDC circuits');
68
+ }
69
+ const oidcInputs = await prepareOidcInputs({ jwt: params.jwt, scope });
70
+ proverToml = buildOidcProverToml(oidcInputs);
71
+ recordStep(2, 'Prepare Inputs (OIDC)', { inputFields: Object.keys(oidcInputs).length, tomlLength: proverToml.length }, t2);
72
+ }
54
73
  // Step 3: Request 402 challenge (without inputs — server only needs circuit)
55
- t = Date.now();
74
+ let t = Date.now();
56
75
  const challenge = await requestChallenge(config, params.circuit);
57
76
  const isE2E = !!challenge.teePublicKey;
58
77
  recordStep(3, 'Request Challenge', { nonce: challenge.nonce, e2e: isE2E, keyId: challenge.teePublicKey?.keyId ?? null }, t);
@@ -83,11 +102,21 @@ export async function generateProof(config, signers, params, callbacks) {
83
102
  });
84
103
  recordStep(5, 'Generate Proof (E2E Encrypted)', proveResponse, t);
85
104
  }
105
+ else if (isOidc) {
106
+ // OIDC plaintext path: send pre-built proverToml (server never sees JWT)
107
+ proveResponse = await submitProof(config, {
108
+ circuit: params.circuit,
109
+ proverToml: proverToml,
110
+ paymentTxHash,
111
+ paymentNonce: challenge.nonce,
112
+ });
113
+ recordStep(5, 'Generate Proof (OIDC)', proveResponse, t);
114
+ }
86
115
  else {
87
- // Standard path: send plaintext inputs (TEE disabled / local dev)
116
+ // Coinbase plaintext path: send pre-computed inputs (TEE disabled / local dev)
88
117
  proveResponse = await submitProof(config, {
89
118
  circuit: params.circuit,
90
- inputs,
119
+ inputs: easInputs,
91
120
  paymentTxHash,
92
121
  paymentNonce: challenge.nonce,
93
122
  });
package/dist/flow.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAM5C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,OAAoE,EACpE,MAAmB,EACnB,SAAyB;IAEzB,MAAM,SAAS,GAAc,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;IAE7D,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,SAAS,UAAU,CAAI,IAAY,EAAE,IAAY,EAAE,IAAO,EAAE,SAAiB;QAC3E,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpE,UAAU,CAAC,CAAC,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/E,oDAAoD;IACpD,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;QACzC,SAAS;QACT,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,SAAS;QACxB,KAAK;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/G,6EAA6E;IAC7E,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;IACvC,UAAU,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5H,uBAAuB;IACvB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAiB,CAAC;IACpD,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK;QAClC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACrD,KAAK,EAAE,cAAc,CAAC,OAAsC,CAAC;QAC7D,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO;QAClC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW;KAC3C,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,aAAa,EACb,WAAW,EACX,MAAM,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,EACjD,MAAM,CAAC,kBAAkB,CAC1B,CAAC;IACF,UAAU,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5D,0EAA0E;IAC1E,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,aAAa,CAAC;IAElB,IAAI,KAAK,EAAE,CAAC;QACV,0DAA0D;QAC1D,MAAM,gBAAgB,GAAG,aAAa,CACpC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EACzC,SAAS,CAAC,YAAa,CAAC,SAAS,CAClC,CAAC;QACF,aAAa,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE;YACjD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,gBAAgB;YAChB,aAAa;YACb,YAAY,EAAE,SAAS,CAAC,KAAK;SAC9B,CAAC,CAAC;QACH,UAAU,CAAC,CAAC,EAAE,gCAAgC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,aAAa,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM;YACN,aAAa;YACb,YAAY,EAAE,SAAS,CAAC,KAAK;SAC9B,CAAC,CAAC;QACH,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,aAAa,CAAC,KAAK;QAC1B,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,eAAe,EAAE,aAAa,CAAC,eAAe;QAC9C,aAAa;QACb,WAAW,EAAE,aAAa,CAAC,WAAW;QACtC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,aAAa,CAAC,YAAY;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { ClientConfig, CircuitName, CircuitId, PaymentInfo, PaymentRequirements, ChallengeResponse, ProveInputs, ProveRequest, ProveResponse, VerifyResult, EASAttestation, AttestationData, ProofParams, ProofResult, StepResult, EncryptedProveRequest, } from './types.js';
1
+ export type { ClientConfig, CircuitName, CircuitId, PaymentInfo, PaymentRequirements, ChallengeResponse, ProveInputs, ProveRequest, ProveResponse, VerifyResult, EASAttestation, AttestationData, ProofParams, ProofResult, StepResult, } from './types.js';
2
2
  export { CIRCUIT_NAME_MAP, CIRCUIT_ID_MAP } from './types.js';
3
3
  export { CIRCUITS, COINBASE_ATTESTER_CONTRACT, AUTHORIZED_SIGNERS, USDC_ADDRESSES, } from './constants.js';
4
4
  export { createConfig } from './config.js';
@@ -7,15 +7,13 @@ export type { FlowCallbacks } from './flow.js';
7
7
  export { requestChallenge, createSession } from './session.js';
8
8
  export { makePayment } from './payment.js';
9
9
  export { submitProof, submitEncryptedProof } from './prove.js';
10
- export { verifyOnChain, verifyProof } from './verify.js';
11
- export { prepareInputs, computeSignalHash, computeScope, computeNullifier, recoverUserPubkey, hexToBytes, extractPubkeyCoordinates, } from './inputs.js';
12
- export { buildProverToml } from './toml.js';
13
- export { encryptForTee } from './tee.js';
14
- export type { EncryptedEnvelope } from './tee.js';
10
+ export { verifyProof } from './verify.js';
11
+ export { prepareInputs, computeSignalHash, computeScope, computeNullifier, } from './inputs.js';
12
+ export { prepareOidcInputs, buildOidcProverToml } from './oidc-inputs.js';
13
+ export type { OidcCircuitInputs, PrepareOidcParams } from './oidc-inputs.js';
15
14
  export type { ProofportSigner } from './signer.js';
16
15
  export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.js';
17
16
  export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
18
17
  export type { ExternalWallet } from './cdp.js';
19
- export { fetchAttestation, fetchAttestationFromEAS, fetchRawTransaction, recoverAttesterPubkey, getSignerAddress, } from './attestation.js';
20
- export { SimpleMerkleTree, findSignerIndex, buildSignerMerkleTree, } from './merkle.js';
18
+ export { fetchAttestation, getSignerAddress, } from './attestation.js';
21
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,EACV,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG7E,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -9,18 +9,14 @@ export { generateProof } from './flow.js';
9
9
  export { requestChallenge, createSession } from './session.js';
10
10
  export { makePayment } from './payment.js';
11
11
  export { submitProof, submitEncryptedProof } from './prove.js';
12
- export { verifyOnChain, verifyProof } from './verify.js';
13
- // Input computation
14
- export { prepareInputs, computeSignalHash, computeScope, computeNullifier, recoverUserPubkey, hexToBytes, extractPubkeyCoordinates, } from './inputs.js';
15
- // Prover.toml builder (for E2E encryption)
16
- export { buildProverToml } from './toml.js';
17
- // E2E Encryption
18
- export { encryptForTee } from './tee.js';
12
+ export { verifyProof } from './verify.js';
13
+ // Input computation (customer-facing helpers)
14
+ export { prepareInputs, computeSignalHash, computeScope, computeNullifier, } from './inputs.js';
15
+ // OIDC input computation (client-side JWT parsing)
16
+ export { prepareOidcInputs, buildOidcProverToml } from './oidc-inputs.js';
19
17
  export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.js';
20
18
  // CDP (Coinbase Developer Platform) signer
21
19
  export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
22
- // Attestation
23
- export { fetchAttestation, fetchAttestationFromEAS, fetchRawTransaction, recoverAttesterPubkey, getSignerAddress, } from './attestation.js';
24
- // Merkle
25
- export { SimpleMerkleTree, findSignerIndex, buildSignerMerkleTree, } from './merkle.js';
20
+ // Attestation (customer-facing helpers)
21
+ export { fetchAttestation, getSignerAddress, } from './attestation.js';
26
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,cAAc;AACd,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,mDAAmD;AACnD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * OIDC Domain Attestation — Input builder.
3
+ *
4
+ * Takes a raw JWT token + scope string, and produces all circuit inputs
5
+ * needed for the oidc_domain_attestation circuit.
6
+ *
7
+ * Steps:
8
+ * 1. Decode JWT header → kid, iss
9
+ * 2. Fetch JWKS via OIDC Discovery → find matching RSA public key
10
+ * 3. Compute RSA limbs (modulus, redc_params, signature) — 18 × 120-bit
11
+ * 4. Compute partial SHA-256 (precompute up to "email" key)
12
+ * 5. Extract email → derive domain
13
+ * 6. Compute scope = keccak256(scope_string)
14
+ * 7. Compute nullifier = keccak256(keccak256(email) ++ scope)
15
+ */
16
+ export declare const OIDC_MAX_PARTIAL_DATA_LENGTH = 640;
17
+ export declare const OIDC_MAX_DOMAIN_LENGTH = 64;
18
+ export declare const OIDC_MAX_EMAIL_LENGTH = 128;
19
+ export interface OidcCircuitInputs {
20
+ pubkey_modulus_limbs: string[];
21
+ domain: {
22
+ storage: number[];
23
+ len: number;
24
+ };
25
+ scope: number[];
26
+ nullifier: number[];
27
+ partial_data: {
28
+ storage: number[];
29
+ len: number;
30
+ };
31
+ partial_hash: number[];
32
+ full_data_length: number;
33
+ base64_decode_offset: number;
34
+ redc_params_limbs: string[];
35
+ signature_limbs: string[];
36
+ }
37
+ export interface PrepareOidcParams {
38
+ /** Raw JWT string (header.payload.signature) */
39
+ jwt: string;
40
+ /** Scope string for nullifier (e.g. "openstoa:topic:test") */
41
+ scope: string;
42
+ /** Domain to prove. If omitted, auto-extracted from email claim. */
43
+ domain?: string;
44
+ /** Override JWKS URL instead of using OIDC Discovery */
45
+ jwksUrl?: string;
46
+ }
47
+ /**
48
+ * Prepare all circuit inputs for oidc_domain_attestation from a raw JWT.
49
+ *
50
+ * @param params.jwt - Raw JWT string from OIDC provider (e.g. Google id_token)
51
+ * @param params.scope - Scope string for nullifier derivation
52
+ * @param params.domain - Domain to prove (auto-extracted from email if omitted)
53
+ * @param params.jwksUrl - Override JWKS URL (skips OIDC Discovery)
54
+ */
55
+ export declare function prepareOidcInputs(params: PrepareOidcParams): Promise<OidcCircuitInputs>;
56
+ /**
57
+ * Build a Prover.toml string from OidcCircuitInputs.
58
+ */
59
+ export declare function buildOidcProverToml(inputs: OidcCircuitInputs): string;
60
+ //# sourceMappingURL=oidc-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-inputs.d.ts","sourceRoot":"","sources":["../src/oidc-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,MAAM,WAAW,iBAAiB;IAEhC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IAGpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoJD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4G7F;AA2BD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyBrE"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * OIDC Domain Attestation — Input builder.
3
+ *
4
+ * Takes a raw JWT token + scope string, and produces all circuit inputs
5
+ * needed for the oidc_domain_attestation circuit.
6
+ *
7
+ * Steps:
8
+ * 1. Decode JWT header → kid, iss
9
+ * 2. Fetch JWKS via OIDC Discovery → find matching RSA public key
10
+ * 3. Compute RSA limbs (modulus, redc_params, signature) — 18 × 120-bit
11
+ * 4. Compute partial SHA-256 (precompute up to "email" key)
12
+ * 5. Extract email → derive domain
13
+ * 6. Compute scope = keccak256(scope_string)
14
+ * 7. Compute nullifier = keccak256(keccak256(email) ++ scope)
15
+ */
16
+ import { ethers } from 'ethers';
17
+ // ─── Circuit constants (must match main.nr) ─────────────────────────────
18
+ export const OIDC_MAX_PARTIAL_DATA_LENGTH = 640;
19
+ export const OIDC_MAX_DOMAIN_LENGTH = 64;
20
+ export const OIDC_MAX_EMAIL_LENGTH = 128;
21
+ // ─── BigInt helpers ─────────────────────────────────────────────────────
22
+ function base64urlToBytes(b64url) {
23
+ const b64 = b64url.replace(/-/g, '+').replace(/_/g, '/');
24
+ const pad = (4 - (b64.length % 4)) % 4;
25
+ const padded = b64 + '='.repeat(pad);
26
+ const binary = atob(padded);
27
+ const bytes = new Uint8Array(binary.length);
28
+ for (let i = 0; i < binary.length; i++) {
29
+ bytes[i] = binary.charCodeAt(i);
30
+ }
31
+ return bytes;
32
+ }
33
+ function bytesToBigInt(bytes) {
34
+ let hex = '0x';
35
+ for (const b of bytes) {
36
+ hex += b.toString(16).padStart(2, '0');
37
+ }
38
+ return BigInt(hex);
39
+ }
40
+ function splitBigIntToChunks(value, chunkSize, numChunks) {
41
+ const mask = (1n << BigInt(chunkSize)) - 1n;
42
+ const chunks = [];
43
+ for (let i = 0; i < numChunks; i++) {
44
+ chunks.push((value >> (BigInt(i) * BigInt(chunkSize))) & mask);
45
+ }
46
+ return chunks;
47
+ }
48
+ // ─── Partial SHA-256 ────────────────────────────────────────────────────
49
+ const SHA256_K = [
50
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
51
+ 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
52
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
53
+ 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
54
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
55
+ 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
56
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
57
+ 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
58
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
59
+ 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
60
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
61
+ ];
62
+ function rotr(n, x) {
63
+ return (x >>> n) | (x << (32 - n));
64
+ }
65
+ function sha256Block(H, block) {
66
+ const w = new Uint32Array(64);
67
+ let a = H[0], b = H[1], c = H[2], d = H[3];
68
+ let e = H[4], f = H[5], g = H[6], h = H[7];
69
+ for (let i = 0; i < 16; i++) {
70
+ w[i] = (block[i * 4] << 24) | (block[i * 4 + 1] << 16) | (block[i * 4 + 2] << 8) | block[i * 4 + 3];
71
+ }
72
+ for (let i = 16; i < 64; i++) {
73
+ const s0 = rotr(7, w[i - 15]) ^ rotr(18, w[i - 15]) ^ (w[i - 15] >>> 3);
74
+ const s1 = rotr(17, w[i - 2]) ^ rotr(19, w[i - 2]) ^ (w[i - 2] >>> 10);
75
+ w[i] = (w[i - 16] + s0 + w[i - 7] + s1) >>> 0;
76
+ }
77
+ for (let i = 0; i < 64; i++) {
78
+ const S1 = rotr(6, e) ^ rotr(11, e) ^ rotr(25, e);
79
+ const ch = (e & f) ^ (~e & g);
80
+ const temp1 = (h + S1 + ch + SHA256_K[i] + w[i]) >>> 0;
81
+ const S0 = rotr(2, a) ^ rotr(13, a) ^ rotr(22, a);
82
+ const maj = (a & b) ^ (a & c) ^ (b & c);
83
+ const temp2 = (S0 + maj) >>> 0;
84
+ h = g;
85
+ g = f;
86
+ f = e;
87
+ e = (d + temp1) >>> 0;
88
+ d = c;
89
+ c = b;
90
+ b = a;
91
+ a = (temp1 + temp2) >>> 0;
92
+ }
93
+ H[0] = (H[0] + a) >>> 0;
94
+ H[1] = (H[1] + b) >>> 0;
95
+ H[2] = (H[2] + c) >>> 0;
96
+ H[3] = (H[3] + d) >>> 0;
97
+ H[4] = (H[4] + e) >>> 0;
98
+ H[5] = (H[5] + f) >>> 0;
99
+ H[6] = (H[6] + g) >>> 0;
100
+ H[7] = (H[7] + h) >>> 0;
101
+ }
102
+ function generatePartialSHA256(data, hashUntilIndex) {
103
+ const blockSize = 64;
104
+ const blockIndex = Math.floor(hashUntilIndex / blockSize);
105
+ const H = new Uint32Array([
106
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
107
+ 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
108
+ ]);
109
+ for (let i = 0; i < blockIndex; i++) {
110
+ const block = new Uint8Array(blockSize);
111
+ block.set(data.slice(i * blockSize, (i + 1) * blockSize));
112
+ sha256Block(H, block);
113
+ }
114
+ return { partialHash: H, remainingData: data.slice(blockIndex * blockSize) };
115
+ }
116
+ async function fetchJwksUrl(issuer) {
117
+ const discoveryUrl = issuer.endsWith('/')
118
+ ? `${issuer}.well-known/openid-configuration`
119
+ : `${issuer}/.well-known/openid-configuration`;
120
+ const resp = await fetch(discoveryUrl);
121
+ if (!resp.ok) {
122
+ throw new Error(`OIDC Discovery failed for ${discoveryUrl}: ${resp.status}`);
123
+ }
124
+ const config = await resp.json();
125
+ if (!config.jwks_uri) {
126
+ throw new Error(`No jwks_uri in OIDC Discovery response from ${discoveryUrl}`);
127
+ }
128
+ return config.jwks_uri;
129
+ }
130
+ async function fetchMatchingKey(jwksUrl, kid) {
131
+ const resp = await fetch(jwksUrl);
132
+ if (!resp.ok) {
133
+ throw new Error(`JWKS fetch failed: ${resp.status}`);
134
+ }
135
+ const jwks = await resp.json();
136
+ const key = jwks.keys.find(k => k.kid === kid);
137
+ if (!key) {
138
+ throw new Error(`No JWKS key matching kid="${kid}". Available: ${jwks.keys.map(k => k.kid).join(', ')}`);
139
+ }
140
+ if (key.kty !== 'RSA') {
141
+ throw new Error(`Expected RSA key, got ${key.kty}`);
142
+ }
143
+ return key;
144
+ }
145
+ // ─── Keccak-256 helpers ─────────────────────────────────────────────────
146
+ function keccak256Bytes(data) {
147
+ return ethers.getBytes(ethers.keccak256(data));
148
+ }
149
+ // ─── Main export ────────────────────────────────────────────────────────
150
+ /**
151
+ * Prepare all circuit inputs for oidc_domain_attestation from a raw JWT.
152
+ *
153
+ * @param params.jwt - Raw JWT string from OIDC provider (e.g. Google id_token)
154
+ * @param params.scope - Scope string for nullifier derivation
155
+ * @param params.domain - Domain to prove (auto-extracted from email if omitted)
156
+ * @param params.jwksUrl - Override JWKS URL (skips OIDC Discovery)
157
+ */
158
+ export async function prepareOidcInputs(params) {
159
+ const { jwt, scope } = params;
160
+ // 1. Decode JWT
161
+ const [headerB64, payloadB64, signatureB64url] = jwt.split('.');
162
+ if (!headerB64 || !payloadB64 || !signatureB64url) {
163
+ throw new Error('Invalid JWT format: expected 3 dot-separated parts');
164
+ }
165
+ const header = JSON.parse(new TextDecoder().decode(base64urlToBytes(headerB64)));
166
+ const payload = JSON.parse(new TextDecoder().decode(base64urlToBytes(payloadB64)));
167
+ if (header.alg !== 'RS256') {
168
+ throw new Error(`Unsupported JWT algorithm: ${header.alg}. Only RS256 is supported.`);
169
+ }
170
+ if (!header.kid) {
171
+ throw new Error('JWT header missing kid');
172
+ }
173
+ if (!payload.email) {
174
+ throw new Error('JWT payload missing email claim');
175
+ }
176
+ if (!payload.email_verified) {
177
+ throw new Error('JWT email_verified is not true');
178
+ }
179
+ const email = payload.email;
180
+ const atIndex = email.indexOf('@');
181
+ if (atIndex === -1) {
182
+ throw new Error(`Invalid email format: ${email}`);
183
+ }
184
+ const domain = params.domain || email.substring(atIndex + 1);
185
+ // 2. Fetch JWKS and find matching key
186
+ const jwksUrl = params.jwksUrl || await fetchJwksUrl(payload.iss);
187
+ const jwk = await fetchMatchingKey(jwksUrl, header.kid);
188
+ // 3. Compute RSA limbs
189
+ const signedData = new TextEncoder().encode(`${headerB64}.${payloadB64}`);
190
+ const signatureBytes = base64urlToBytes(signatureB64url);
191
+ const signatureBigInt = bytesToBigInt(signatureBytes);
192
+ const modulusBytes = base64urlToBytes(jwk.n);
193
+ const modulusBigInt = bytesToBigInt(modulusBytes);
194
+ const redcParam = (1n << (2n * 2048n + 4n)) / modulusBigInt;
195
+ const pubkeyLimbs = splitBigIntToChunks(modulusBigInt, 120, 18).map(v => v.toString());
196
+ const redcLimbs = splitBigIntToChunks(redcParam, 120, 18).map(v => v.toString());
197
+ const sigLimbs = splitBigIntToChunks(signatureBigInt, 120, 18).map(v => v.toString());
198
+ // 4. Partial SHA-256 (precompute up to "email" key)
199
+ const payloadJson = new TextDecoder().decode(base64urlToBytes(payloadB64));
200
+ const emailKeyIndex = payloadJson.indexOf('"email"');
201
+ if (emailKeyIndex === -1) {
202
+ throw new Error('Could not find "email" key in JWT payload');
203
+ }
204
+ // Align to the base64 group boundary that contains the email key start.
205
+ // Base64 maps 3 decoded bytes → 4 base64 chars. Floor to group start ensures
206
+ // the full "email" key is included in partial_data after base64 decoding.
207
+ const emailKeyIndexB64 = Math.floor(emailKeyIndex / 3) * 4;
208
+ const sliceStart = headerB64.length + 1 + emailKeyIndexB64;
209
+ const { partialHash, remainingData } = generatePartialSHA256(signedData, sliceStart);
210
+ if (remainingData.length > OIDC_MAX_PARTIAL_DATA_LENGTH) {
211
+ throw new Error(`Remaining data after partial SHA (${remainingData.length} bytes) exceeds ` +
212
+ `MAX_PARTIAL_DATA_LENGTH (${OIDC_MAX_PARTIAL_DATA_LENGTH}). JWT payload is too large.`);
213
+ }
214
+ const partialDataPadded = new Uint8Array(OIDC_MAX_PARTIAL_DATA_LENGTH);
215
+ partialDataPadded.set(remainingData);
216
+ const shaCutoffIndex = signedData.length - remainingData.length;
217
+ const payloadBytesInShaPrecompute = shaCutoffIndex - (headerB64.length + 1);
218
+ const base64DecodeOffset = (4 - (payloadBytesInShaPrecompute % 4)) % 4;
219
+ // 5. Domain BoundedVec
220
+ const domainBytes = new TextEncoder().encode(domain);
221
+ if (domainBytes.length > OIDC_MAX_DOMAIN_LENGTH) {
222
+ throw new Error(`Domain "${domain}" exceeds max length ${OIDC_MAX_DOMAIN_LENGTH}`);
223
+ }
224
+ const domainStorage = new Uint8Array(OIDC_MAX_DOMAIN_LENGTH);
225
+ domainStorage.set(domainBytes);
226
+ // 6. Scope = keccak256(scope_string)
227
+ const scopeBytes = keccak256Bytes(new TextEncoder().encode(scope));
228
+ // 7. Nullifier = keccak256(keccak256(email) ++ scope)
229
+ const emailBytes = new TextEncoder().encode(email);
230
+ const emailHash = keccak256Bytes(emailBytes);
231
+ const preimage = new Uint8Array(64);
232
+ preimage.set(emailHash, 0);
233
+ preimage.set(scopeBytes, 32);
234
+ const nullifierBytes = keccak256Bytes(preimage);
235
+ return {
236
+ pubkey_modulus_limbs: pubkeyLimbs,
237
+ domain: { storage: Array.from(domainStorage), len: domainBytes.length },
238
+ scope: Array.from(scopeBytes),
239
+ nullifier: Array.from(nullifierBytes),
240
+ partial_data: { storage: Array.from(partialDataPadded), len: remainingData.length },
241
+ partial_hash: Array.from(partialHash),
242
+ full_data_length: signedData.length,
243
+ base64_decode_offset: base64DecodeOffset,
244
+ redc_params_limbs: redcLimbs,
245
+ signature_limbs: sigLimbs,
246
+ };
247
+ }
248
+ // ─── Prover.toml builder ────────────────────────────────────────────────
249
+ function toHexArray(bytes) {
250
+ const lines = [];
251
+ for (let i = 0; i < bytes.length; i += 16) {
252
+ const chunk = bytes.slice(i, i + 16);
253
+ lines.push(' ' + chunk.map(b => '0x' + b.toString(16).padStart(2, '0')).join(', '));
254
+ }
255
+ return '[\n' + lines.join(',\n') + '\n]';
256
+ }
257
+ function toDecimalArray(values) {
258
+ return '[\n' + values.map((v, i) => {
259
+ const comma = i < values.length - 1 ? ',' : '';
260
+ return ` "${v}"${comma}`;
261
+ }).join('\n') + '\n]';
262
+ }
263
+ function toU32Array(values) {
264
+ return '[\n' + values.map((v, i) => {
265
+ const comma = i < values.length - 1 ? ',' : '';
266
+ return ` ${v >>> 0}${comma}`;
267
+ }).join('\n') + '\n]';
268
+ }
269
+ /**
270
+ * Build a Prover.toml string from OidcCircuitInputs.
271
+ */
272
+ export function buildOidcProverToml(inputs) {
273
+ const lines = [];
274
+ lines.push('# Public Inputs');
275
+ lines.push(`pubkey_modulus_limbs = ${toDecimalArray(inputs.pubkey_modulus_limbs)}`);
276
+ lines.push(`scope = ${toHexArray(inputs.scope)}`);
277
+ lines.push(`nullifier = ${toHexArray(inputs.nullifier)}`);
278
+ lines.push('');
279
+ lines.push('# Private Inputs');
280
+ lines.push(`partial_hash = ${toU32Array(inputs.partial_hash)}`);
281
+ lines.push(`full_data_length = ${inputs.full_data_length}`);
282
+ lines.push(`base64_decode_offset = ${inputs.base64_decode_offset}`);
283
+ lines.push(`redc_params_limbs = ${toDecimalArray(inputs.redc_params_limbs)}`);
284
+ lines.push(`signature_limbs = ${toDecimalArray(inputs.signature_limbs)}`);
285
+ lines.push('');
286
+ lines.push('# BoundedVec tables (must be last in TOML)');
287
+ lines.push('[domain]');
288
+ lines.push(`storage = ${toHexArray(inputs.domain.storage)}`);
289
+ lines.push(`len = ${inputs.domain.len}`);
290
+ lines.push('');
291
+ lines.push('[partial_data]');
292
+ lines.push(`storage = ${toHexArray(inputs.partial_data.storage)}`);
293
+ lines.push(`len = ${inputs.partial_data.len}`);
294
+ return lines.join('\n') + '\n';
295
+ }
296
+ //# sourceMappingURL=oidc-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-inputs.js","sourceRoot":"","sources":["../src/oidc-inputs.ts"],"names":[],"mappings":"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"}
package/dist/prove.d.ts CHANGED
@@ -3,10 +3,15 @@ import type { EncryptedEnvelope } from './tee.js';
3
3
  /**
4
4
  * Submit proof generation with x402 payment headers.
5
5
  * POST /api/v1/prove with X-Payment-TX and X-Payment-Nonce headers.
6
+ *
7
+ * Supports two modes:
8
+ * - `inputs`: client-computed ProveInputs (server builds proverToml)
9
+ * - `proverToml`: pre-built Prover.toml string (server passes directly to prover)
6
10
  */
7
11
  export declare function submitProof(config: ClientConfig, request: {
8
12
  circuit: CircuitName;
9
- inputs: ProveInputs;
13
+ inputs?: ProveInputs;
14
+ proverToml?: string;
10
15
  paymentTxHash: string;
11
16
  paymentNonce: string;
12
17
  }): Promise<ProveResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
1
+ {"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
package/dist/prove.js CHANGED
@@ -1,9 +1,20 @@
1
1
  /**
2
2
  * Submit proof generation with x402 payment headers.
3
3
  * POST /api/v1/prove with X-Payment-TX and X-Payment-Nonce headers.
4
+ *
5
+ * Supports two modes:
6
+ * - `inputs`: client-computed ProveInputs (server builds proverToml)
7
+ * - `proverToml`: pre-built Prover.toml string (server passes directly to prover)
4
8
  */
5
9
  export async function submitProof(config, request) {
6
10
  const url = `${config.baseUrl}/api/v1/prove`;
11
+ const body = { circuit: request.circuit };
12
+ if (request.proverToml) {
13
+ body.prover_toml = request.proverToml;
14
+ }
15
+ else {
16
+ body.inputs = request.inputs;
17
+ }
7
18
  const response = await fetch(url, {
8
19
  method: 'POST',
9
20
  headers: {
@@ -11,10 +22,7 @@ export async function submitProof(config, request) {
11
22
  'X-Payment-TX': request.paymentTxHash,
12
23
  'X-Payment-Nonce': request.paymentNonce,
13
24
  },
14
- body: JSON.stringify({
15
- circuit: request.circuit,
16
- inputs: request.inputs,
17
- }),
25
+ body: JSON.stringify(body),
18
26
  });
19
27
  if (!response.ok) {
20
28
  const error = await response.json().catch(() => ({ message: `HTTP ${response.status}` }));
package/dist/prove.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"prove.js","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAoB,EACpB,OAKC;IAED,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,iBAAiB,EAAE,OAAO,CAAC,YAAY;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA4B,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,OAKC;IAED,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,iBAAiB,EAAE,OAAO,CAAC,YAAY;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,OAAO,CAAC,gBAAgB;SAC5C,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA4B,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"prove.js","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAoB,EACpB,OAMC;IAED,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC;IAC7C,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACnE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,iBAAiB,EAAE,OAAO,CAAC,YAAY;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA4B,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,OAKC;IAED,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,iBAAiB,EAAE,OAAO,CAAC,YAAY;SACxC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,iBAAiB,EAAE,OAAO,CAAC,gBAAgB;SAC5C,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA4B,CAAC;AACnD,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** Client-friendly circuit aliases. */
2
- export type CircuitName = 'coinbase_kyc' | 'coinbase_country';
2
+ export type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain';
3
3
  /** Canonical circuit IDs matching Nargo.toml names. */
4
- export type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation';
4
+ export type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation';
5
5
  /** Map client-friendly names to canonical circuit IDs. */
6
6
  export declare const CIRCUIT_NAME_MAP: Record<CircuitName, CircuitId>;
7
7
  /** Map canonical circuit IDs back to client-friendly names. */
@@ -74,6 +74,7 @@ export interface ProveInputs {
74
74
  export interface ProveRequest {
75
75
  circuit: CircuitName;
76
76
  inputs?: ProveInputs;
77
+ prover_toml?: string;
77
78
  encrypted_payload?: EncryptedProveRequest['encrypted_payload'];
78
79
  }
79
80
  export interface EncryptedProveRequest {
@@ -137,6 +138,8 @@ export interface ProofParams {
137
138
  countryList?: string[];
138
139
  /** Whether the country list is an inclusion or exclusion list */
139
140
  isIncluded?: boolean;
141
+ /** JWT token for OIDC circuit (oidc_domain) */
142
+ jwt?: string;
140
143
  }
141
144
  export interface ProofResult {
142
145
  proof: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -3,10 +3,12 @@
3
3
  export const CIRCUIT_NAME_MAP = {
4
4
  coinbase_kyc: 'coinbase_attestation',
5
5
  coinbase_country: 'coinbase_country_attestation',
6
+ oidc_domain: 'oidc_domain_attestation',
6
7
  };
7
8
  /** Map canonical circuit IDs back to client-friendly names. */
8
9
  export const CIRCUIT_ID_MAP = {
9
10
  coinbase_attestation: 'coinbase_kyc',
10
11
  coinbase_country_attestation: 'coinbase_country',
12
+ oidc_domain_attestation: 'oidc_domain',
11
13
  };
12
14
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAQ3E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,8BAA8B;CACjD,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,oBAAoB,EAAE,cAAc;IACpC,4BAA4B,EAAE,kBAAkB;CACjD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAQ3E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,8BAA8B;IAChD,WAAW,EAAE,yBAAyB;CACvC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,oBAAoB,EAAE,cAAc;IACpC,4BAA4B,EAAE,kBAAkB;IAChD,uBAAuB,EAAE,aAAa;CACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkproofport-ai/sdk",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Client SDK for ZKProofport proof generation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",