@zkproofport-ai/sdk 0.2.17 → 0.3.0

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,6 +4,8 @@ Client SDK for ZKProofport zero-knowledge proofs, including experimental exact-a
4
4
 
5
5
  The shared `hashTypedAction` helper is available from **SDK 0.2.12**. Arc/GIWA optional actions require **SDK 0.2.14 or later**; MCP stepwise input preparation requires **MCP 0.2.15 or later**. Release Please owns the versions. Confirm the resolved npm versions before using this path.
6
6
 
7
+ Human action approval requires SDK **0.3.0 or later** and a compatible AI service with the approval API enabled. For the CLI/MCP flow, use MCP **0.3.0 or later** as well. Earlier releases that support action hashing do not implement this approval lifecycle. Action requests now pause for human approval; handle `ActionApprovalRequiredError` and resume as shown below.
8
+
7
9
  ## Overview
8
10
 
9
11
  @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.
@@ -93,11 +95,11 @@ Use **SDK 0.2.14 or later** and **MCP 0.2.15 or later** for both Arc/GIWA signat
93
95
 
94
96
  1. **Coinbase account with KYC verification** — Complete identity verification on [Coinbase](https://www.coinbase.com/)
95
97
  2. **Coinbase KYC EAS attestation on Base** — Obtain an attestation via [Coinbase Verifications](https://www.coinbase.com/onchain-verify). This creates an on-chain EAS attestation on Base linked to your wallet address.
96
- 3. **Credential signer** (required) — A local signer for the wallet holding the EAS attestation. The CLI uses `ATTESTATION_KEY`; programmatic callers can supply a compatible `ProofportSigner`. Keep key material outside model context.
98
+ 3. **Credential signer for proofs without an action** — A local signer for the wallet holding the EAS attestation. The CLI uses `ATTESTATION_KEY`; programmatic callers can supply a compatible `ProofportSigner`. An Arc/GIWA action instead requires the credential holder to connect a wallet and sign through the approval page. Keep key material outside model context.
97
99
 
98
100
  **For OIDC circuits** (`oidc_domain`): No wallet or attestation needed — just a JWT `id_token` from your OIDC provider.
99
101
 
100
- **For GIWA** (`giwa_attestation`): an attestation from GIWA's attester on **GIWA Sepolia**, and a local signer for that wallet. It is not a Coinbase attestation — one wallet is rarely attested by both, so the key you pass must be the wallet attested on the chain the circuit reads.
102
+ **For GIWA** (`giwa_attestation`): an attestation from GIWA's attester on **GIWA Sepolia**, and control of that wallet. Without an action, supply its local signer; with an action, the person connects that wallet on the approval page. The attestation must belong to the wallet signing the proof request on the chain the circuit reads.
101
103
 
102
104
  **For the circuits that can bind an action** (`arc_eligibility`, `giwa_attestation`): the attestation above for whichever one you ask for. What differs is what the wallet signs, and the action is **optional** — see below.
103
105
 
@@ -135,7 +137,7 @@ console.log('Valid:', verification.valid);
135
137
  >
136
138
  > The Ledger House EligibilityGate on Arc is `0xD0F3eE648386B59B484157332E736388Fcc41F47`. Public-input layouts and deployments may change; do not put either in front of real funds. Generally available: `coinbase_kyc`, `coinbase_country`, `oidc_domain`.
137
139
  >
138
- > **The action is optional on both.** Send one and the wallet signs typed data; send none and it signs the request's signal hash exactly as `coinbase_kyc` does. The circuits branch on this, and refuse a request that tries to be both. Until 2026-09-22 `arc_eligibility` required an action — its circuit had no second path — and `giwa_attestation` could not take one at all.
140
+ > **The action is optional on both.** Send one and the SDK pauses for a human to connect a wallet and sign the exact typed data. Send none and the supplied credential signer signs the request's signal hash as before. Supplying `ATTESTATION_KEY` does not bypass action approval.
139
141
 
140
142
  ### The problem it solves
141
143
 
@@ -154,15 +156,18 @@ wallet and scope no matter what the proof is later used for, so:
154
156
 
155
157
  ### What changes
156
158
 
157
- Pass an `action` and the wallet signs an [EIP-712](https://eips.ethereum.org/EIPS/eip-712)
158
- typed structure instead. You define the structure — this SDK keeps no registry
159
- of action shapes and never invents one.
159
+ Pass an `action` and a human wallet signs an [EIP-712](https://eips.ethereum.org/EIPS/eip-712)
160
+ typed structure through the AI service's approval page. You define the structure;
161
+ the SDK does not invent action fields. No proof challenge or payment starts while
162
+ approval is pending. The agent's payment wallet remains separately configured.
160
163
 
161
164
  ```typescript
162
- const result = await generateProof(
163
- config,
164
- { attestation: attestationSigner },
165
- {
165
+ import {
166
+ ActionApprovalRequiredError, generateProof, getActionApprovalStatus,
167
+ type ActionApproval, type ClientConfig, type PaymentWallet, type ProofParams,
168
+ } from '@zkproofport-ai/sdk';
169
+
170
+ const params: ProofParams = {
166
171
  circuit: 'arc_eligibility',
167
172
  scope: 'my-app',
168
173
  action: {
@@ -180,15 +185,56 @@ const result = await generateProof(
180
185
  ],
181
186
  },
182
187
  primaryType: 'Deposit',
183
- message: { amount: 100_000n, nonce: 1n, expiry: deadline },
188
+ message: { amount: '100000', nonce: '1', expiry: String(deadline) },
184
189
  },
185
- },
186
- );
190
+ };
191
+
192
+ // For a CLI or backend with an appropriate request lifetime. An MCP tool should
193
+ // return the URL promptly and resume in a later call instead of waiting here.
194
+ async function waitForHumanApproval(config: ClientConfig, approval: ActionApproval) {
195
+ while (Date.now() < Date.parse(approval.expiresAt)) {
196
+ const status = await getActionApprovalStatus(config, approval);
197
+ if (status.status === 'approved') return;
198
+ if (status.status !== 'pending') throw new Error(`Action approval is ${status.status}`);
199
+ await new Promise(resolve => setTimeout(resolve, 2000));
200
+ }
201
+ throw new Error('Action approval expired');
202
+ }
203
+
204
+ async function generateWithHumanApproval(config: ClientConfig, payment: PaymentWallet, params: ProofParams) {
205
+ try {
206
+ return await generateProof(config, { payment }, params);
207
+ } catch (error) {
208
+ if (!(error instanceof ActionApprovalRequiredError)) throw error;
209
+ const approval = error.approval;
210
+ console.error('Review and sign:', approval.approvalUrl);
211
+ await waitForHumanApproval(config, approval);
212
+ // Consume once. Do not retry this call automatically after a failure.
213
+ return generateProof(config, { payment }, { ...params, actionApproval: approval });
214
+ }
215
+ }
216
+
217
+ const result = await generateWithHumanApproval(config, payment, params);
187
218
  ```
188
219
 
189
- Ask for `giwa_attestation` instead and the same call works against GIWA's
190
- attestation, with the domain naming chain `91342`. A wallet refuses typed data
191
- whose domain names a chain it is not on, so the chain id follows the circuit.
220
+ `ActionApprovalRequiredError` is a pause, not a failed proof. Its `.approval`
221
+ handle contains `{approvalId, approvalUrl, requesterToken, expiresAt}`. Keep
222
+ `requesterToken` in private application storage; only show the approval URL to
223
+ the person. Status replies contain no signature. `resolveActionApproval`
224
+ checks the original circuit, scope, full action and recovered signer before
225
+ preparing inputs. Rejected, expired and consumed sessions cannot proceed.
226
+
227
+ The session expires after ten minutes and can be consumed once. If a response
228
+ is lost after consumption, inspect the previous proof/payment outcome before
229
+ requesting fresh approval; never automatically pay again. Session expiry does
230
+ not expire the EIP-712 signature on chain. The relying contract must enforce
231
+ the action's own nonce and deadline. This flow supports EOA credential wallets;
232
+ contract-wallet signature verification is outside the current circuit.
233
+
234
+ Ask for `giwa_attestation` instead to use the credential wallet's GIWA Sepolia
235
+ attestation. The action domain names the relying contract's execution chain;
236
+ it is independent of the chain used for attestation lookup or proof payment.
237
+ The approval page asks the wallet to use the action's declared chain.
192
238
 
193
239
  The wallet renders `amount`, `nonce` and `expiry` by name for the person to
194
240
  read. Two 32-byte hashes reach the circuit — the EIP-712 domain separator and
@@ -239,11 +285,11 @@ the one-per-person property it exists for.
239
285
 
240
286
  ### Omitting `action`
241
287
 
242
- `arc_eligibility` requires `action`; omitting it is rejected. Other circuits reject `action`; Coinbase uses `personal_sign`, while OIDC uses its JWT flow without wallet signing. The application must verify the exact target, operational wallet, amount, nonce and deadline as well as the proof.
288
+ Both `arc_eligibility` and `giwa_attestation` accept an omitted action and retain their local `personal_sign` path. Coinbase circuits reject `action` and retain their existing signing path; OIDC rejects `action` and uses its JWT flow without wallet signing. For action proofs, the application must verify the exact target, operational wallet, amount, nonce and deadline as well as the proof.
243
289
 
244
290
  ## Arc Circle Agent Wallet path — EXPERIMENTAL
245
291
 
246
- Use the existing Circle CLI login and selected Arc Agent Wallet; do not create or switch wallets as part of proof generation. Install the CLI if needed, then let the user complete any missing login locally. Load A’s `ATTESTATION_KEY` only through the trusted local client environment or secret store. Keep A’s key and address out of the dApp service, model context, UI, logs, Git and npm package contents. Keep Circle login secrets local too.
292
+ Use the existing Circle CLI login and selected Arc Agent Wallet; do not create or switch wallets as part of proof generation. Install the CLI if needed, then let the user complete any missing login locally. Credential holder A connects their wallet on the human approval page; this action flow does not load A's `ATTESTATION_KEY`. Keep credential data and Circle login secrets outside model context and ordinary logs.
247
293
 
248
294
  ```bash
249
295
  npm install -g @circle-fin/cli
@@ -261,17 +307,15 @@ After the user reviews the action and the live x402 offer, save those exact appr
261
307
  ```typescript
262
308
  import { readFile } from 'node:fs/promises';
263
309
  import {
264
- createConfig, fromPrivateKey, generateProof, verifyProof, walletFor,
310
+ createConfig, verifyProof, walletFor,
265
311
  type ProofParams, type ApprovedPayment,
266
312
  } from '@zkproofport-ai/sdk';
267
313
 
268
314
  const config = createConfig({baseUrl: 'https://stg-ai.zkproofport.app'});
269
315
  const action: NonNullable<ProofParams['action']> = JSON.parse(await readFile('approved-action.json', 'utf8'));
270
316
  const approvedPayment: ApprovedPayment = JSON.parse(await readFile('approved-payment.json', 'utf8'));
271
- const result = await generateProof(config, {
272
- attestation: fromPrivateKey(process.env.ATTESTATION_KEY!), // local credential holder A
273
- payment: await walletFor('arc'), // existing Circle wallet B
274
- }, {
317
+ // generateWithHumanApproval is the bounded catch/poll/resume helper above.
318
+ const result = await generateWithHumanApproval(config, await walletFor('arc'), {
275
319
  circuit: 'arc_eligibility', scope: 'ledger-house', action,
276
320
  payOn: 'arc-testnet-nano', maxPayment: '0.001', approvedPayment,
277
321
  });
@@ -299,7 +343,7 @@ Both `generateProof`/`generate_proof` and Arc input preparation use this complet
299
343
  | `primaryType` | non-empty string | The declared top-level struct; it must equal the single root inferred by the encoder. |
300
344
  | `message` | object | Values matching the declared field types, including nested objects and arrays. |
301
345
 
302
- No SDK action registry restricts struct names, field names or business values. For example, `Instruction` can contain `terms: Terms` and `labels: string[]`, where `Terms` contains `quantity: uint256` and `memo: string`. The circuit binds their hashes; each relying application decides which structures it can execute. Declare every approval-critical field in `types`: extra message keys absent from the schema are not signed. Invalid shape, missing declared fields (including nested structs/arrays), non-boolean `bool` values, malformed field declarations/encoded values, ambiguous roots and a mismatched `primaryType` are rejected before local signing. Field names and type declarations must be non-empty strings.
346
+ No SDK action registry restricts business-specific struct names, field names or values. For example, `Instruction` can contain `terms: Terms` and `labels: string[]`, where `Terms` contains `quantity: uint256` and `memo: string`. The circuit binds their hashes; each relying application decides which structures it can execute. Declare every approval-critical field in `types`; the approval API rejects extra unsigned message keys. Invalid shape, missing declared fields (including nested structs/arrays), non-boolean `bool` values, malformed field declarations/encoded values, ambiguous roots and a mismatched `primaryType` are rejected before human signing. The API also bounds request size, nesting, array length and declaration count.
303
347
 
304
348
  Use decimal **integer strings** for JSON integer message values, especially `uint256` (for example `"10000000"`); JSON cannot represent `bigint`, and large JavaScript numbers can lose precision. Addresses/bytes are `0x` strings, booleans remain JSON booleans, and nested values follow their declared types. `domain.chainId` remains an integer JSON number.
305
349
 
@@ -441,14 +485,14 @@ if (verification.valid) {
441
485
 
442
486
  ## Step-by-Step API
443
487
 
444
- For Arc, validate/hash **before** local signing. `prepareInputs` needs the camelCase hashes to recover A's public key from the EIP-712 digest; it does not add those hashes to its returned object. Attach the snake_case fields for submission. `signal_hash` is still computed internally for nullifier derivation and is not the Arc signing message.
488
+ For Arc/GIWA actions, obtain human approval before preparing inputs. `prepareInputs` needs the camelCase hashes to recover A's public key from the approved EIP-712 digest; it does not add those hashes to its returned object. Attach the snake_case fields for submission. `signal_hash` is still computed internally for nullifier derivation and is not the action signing message. Low-level witness APIs accept signatures but cannot establish who operated the signing wallet.
445
489
 
446
490
  Prepared inputs are **private witness data**: they include A's public key, signature and attestation data. Keep them inside trusted local code and send them only to the chosen prover (encrypted when a supported TEE key is provided). Do not forward them to the dApp, model, UI or logs. The `generateProof` public result is the boundary for sharing a proof; step callbacks and `proofport://config` can contain sensitive signer data and must not be forwarded wholesale.
447
491
 
448
492
  ```typescript
449
493
  import { readFile } from 'node:fs/promises';
450
494
  import {
451
- createConfig, fromPrivateKey, hashTypedAction, prepareInputs,
495
+ createConfig, createActionApproval, resolveActionApproval, hashTypedAction, prepareInputs,
452
496
  requestChallenge, signPayment, submitProof, submitEncryptedProof,
453
497
  encryptForTee, walletFor, CIRCUIT_IDS,
454
498
  type TypedAction, type ApprovedPayment,
@@ -457,17 +501,20 @@ import {
457
501
  const config = createConfig({ baseUrl: 'https://stg-ai.zkproofport.app' });
458
502
  const action: TypedAction = JSON.parse(await readFile('approved-action.json', 'utf8'));
459
503
  const approvedPayment: ApprovedPayment = JSON.parse(await readFile('approved-payment.json', 'utf8'));
460
- const signer = fromPrivateKey(process.env.ATTESTATION_KEY!); // local A only
461
504
  const scope = 'ledger-house';
462
505
 
463
- // 1. Validate the exact user-approved action, then sign it locally.
506
+ // 1. Create an immutable request, then let the person connect and sign.
464
507
  const { domainSeparator, actionHash } = hashTypedAction(action);
465
- const userSignature = await signer.signTypedData(action.domain, action.types, action.message);
508
+ const request = { circuit: 'arc_eligibility' as const, scope, action };
509
+ const approval = await createActionApproval(config, request);
510
+ console.error('Review and sign:', approval.approvalUrl);
511
+ await waitForHumanApproval(config, approval); // bounded helper from the example above
512
+ const approved = await resolveActionApproval(config, request, approval);
466
513
 
467
- // 2. Recover from the typed digest and build the private witness locally.
514
+ // 2. The signature has been verified and consumed. Build the private witness.
468
515
  const prepared = await prepareInputs(config, {
469
516
  circuitId: CIRCUIT_IDS.ARC_ELIGIBILITY,
470
- userAddress: await signer.getAddress(), userSignature, scope,
517
+ userAddress: approved.address, userSignature: approved.signature, scope,
471
518
  domainSeparator, actionHash,
472
519
  });
473
520
  const inputs = { ...prepared, domain_separator: domainSeparator, action_hash: actionHash };
@@ -616,8 +663,8 @@ The proof contains 148 public input fields (32 bytes each):
616
663
  **Circuit Types:**
617
664
 
618
665
  ```typescript
619
- type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain' | 'arc_eligibility';
620
- type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation' | 'arc_eligibility';
666
+ type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain' | 'arc_eligibility' | 'giwa_attestation';
667
+ type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation' | 'arc_eligibility' | 'giwa_attestation';
621
668
  ```
622
669
 
623
670
  **Configuration:**
@@ -651,6 +698,7 @@ function fromSigner(signer: ethers.Signer): ProofportSigner;
651
698
  interface ProofParams {
652
699
  circuit: CircuitName;
653
700
  action?: { domain: { name: string; version: string; chainId: number; verifyingContract: string }; types: Record<string, Array<{name: string; type: string}>>; primaryType: string; message: Record<string, unknown> }; // optional for arc_eligibility and giwa_attestation
701
+ actionApproval?: ActionApproval; // private handle; resume the original action after human approval
654
702
  payOn?: string;
655
703
  maxPayment?: string; // decimal USDC
656
704
  approvedPayment?: ApprovedPayment;
@@ -0,0 +1,51 @@
1
+ import type { CircuitName, ClientConfig, TypedAction } from './types.js';
2
+ /** Requester capability. Keep this handle private; show only approvalUrl to the person. */
3
+ export interface ActionApproval {
4
+ approvalId: string;
5
+ approvalUrl: string;
6
+ requesterToken: string;
7
+ /** Fixed session expiry, as an ISO timestamp. This is not an on-chain signature deadline. */
8
+ expiresAt: string;
9
+ }
10
+ export interface ActionApprovalRequest {
11
+ circuit: CircuitName;
12
+ scope: string;
13
+ action: TypedAction;
14
+ expectedSigner?: string;
15
+ }
16
+ export type ActionApprovalState = 'pending' | 'approved' | 'rejected' | 'consumed' | 'expired';
17
+ export interface ActionApprovalStatus extends ActionApprovalRequest {
18
+ approvalId: string;
19
+ status: ActionApprovalState;
20
+ expiresAt: string;
21
+ address?: string;
22
+ }
23
+ export type ActionApprovalErrorCode = 'ACTION_APPROVAL_INVALID' | 'ACTION_APPROVAL_REJECTED' | 'ACTION_APPROVAL_CONSUMED' | 'ACTION_APPROVAL_EXPIRED' | 'ACTION_APPROVAL_UNAVAILABLE';
24
+ export declare class ActionApprovalError extends Error {
25
+ readonly code: ActionApprovalErrorCode;
26
+ constructor(code: ActionApprovalErrorCode, message: string);
27
+ }
28
+ /** A resumable pause before proof work or payment, not a failed proof. */
29
+ export declare class ActionApprovalRequiredError extends Error {
30
+ readonly code = "ACTION_APPROVAL_REQUIRED";
31
+ readonly approval: ActionApproval;
32
+ constructor(approval: ActionApproval);
33
+ }
34
+ /** Create a pending session; this does not sign, prepare a proof, or pay. */
35
+ export declare function createActionApproval(config: ClientConfig, request: ActionApprovalRequest): Promise<ActionApproval>;
36
+ /** Status never returns a raw signature or a requester credential. */
37
+ export declare function getActionApprovalStatus(config: ClientConfig, approval: ActionApproval): Promise<ActionApprovalStatus>;
38
+ /**
39
+ * Consume once and cryptographically check the returned signature against the
40
+ * caller's frozen action. A lost response must be inspected, never auto-retried.
41
+ */
42
+ export declare function consumeActionApproval(config: ClientConfig, request: ActionApprovalRequest, approval: ActionApproval): Promise<{
43
+ address: string;
44
+ signature: string;
45
+ }>;
46
+ /** Resume an approved action, or yield a handle for human review before any proof work. */
47
+ export declare function resolveActionApproval(config: ClientConfig, request: ActionApprovalRequest, approval?: ActionApproval): Promise<{
48
+ address: string;
49
+ signature: string;
50
+ }>;
51
+ //# sourceMappingURL=actionApproval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionApproval.d.ts","sourceRoot":"","sources":["../src/actionApproval.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/F,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAC/B,yBAAyB,GACzB,0BAA0B,GAC1B,0BAA0B,GAC1B,yBAAyB,GACzB,6BAA6B,CAAC;AAElC,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,IAAI,EAAE,uBAAuB;gBAA7B,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM;CAI3E;AAED,0EAA0E;AAC1E,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,SAAiB,QAAQ,EAAE,cAAc,CAAC;gBAE9B,QAAQ,EAAE,cAAc;CAMrC;AAiGD,6EAA6E;AAC7E,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAOxH;AAED,sEAAsE;AACtE,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAa3H;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB3K;AAED,2FAA2F;AAC3F,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB5K"}
@@ -0,0 +1,216 @@
1
+ import { getAddress, verifyTypedData } from 'ethers';
2
+ import { hashTypedAction } from './action.js';
3
+ export class ActionApprovalError extends Error {
4
+ code;
5
+ constructor(code, message) {
6
+ super(message);
7
+ this.code = code;
8
+ this.name = 'ActionApprovalError';
9
+ }
10
+ }
11
+ /** A resumable pause before proof work or payment, not a failed proof. */
12
+ export class ActionApprovalRequiredError extends Error {
13
+ code = 'ACTION_APPROVAL_REQUIRED';
14
+ constructor(approval) {
15
+ super('Human wallet approval is required before this action proof can continue.');
16
+ this.name = 'ActionApprovalRequiredError';
17
+ // Generic error serialization must not expose the requester capability.
18
+ Object.defineProperty(this, 'approval', { value: { ...approval }, enumerable: false });
19
+ }
20
+ }
21
+ const invalid = () => new ActionApprovalError('ACTION_APPROVAL_INVALID', 'Action approval does not match the requested action or has an invalid response.');
22
+ const expired = () => new ActionApprovalError('ACTION_APPROVAL_EXPIRED', 'Action approval expired. A new human approval is required.');
23
+ function object(value) {
24
+ if (!value || typeof value !== 'object' || Array.isArray(value))
25
+ throw invalid();
26
+ return value;
27
+ }
28
+ /** Compare the full JSON request, independently of object-key ordering. */
29
+ function canonical(value, depth = 0) {
30
+ if (depth > 64)
31
+ throw invalid();
32
+ if (value === null || typeof value === 'string' || typeof value === 'boolean')
33
+ return JSON.stringify(value);
34
+ if (typeof value === 'number' && Number.isFinite(value))
35
+ return JSON.stringify(value);
36
+ if (Array.isArray(value))
37
+ return '[' + value.map(item => canonical(item, depth + 1)).join(',') + ']';
38
+ if (value && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype) {
39
+ return '{' + Object.keys(value).sort().map(key => JSON.stringify(key) + ':' + canonical(value[key], depth + 1)).join(',') + '}';
40
+ }
41
+ // JSON cannot preserve bigint/undefined/functions. Use decimal strings for large integers.
42
+ throw invalid();
43
+ }
44
+ function address(value) {
45
+ if (typeof value !== 'string')
46
+ throw invalid();
47
+ try {
48
+ return getAddress(value);
49
+ }
50
+ catch {
51
+ throw invalid();
52
+ }
53
+ }
54
+ function snapshotRequest(request) {
55
+ try {
56
+ const copy = structuredClone(request);
57
+ if (copy.circuit !== 'giwa_attestation' && copy.circuit !== 'arc_eligibility')
58
+ throw invalid();
59
+ if (typeof copy.scope !== 'string' || !copy.scope.trim())
60
+ throw invalid();
61
+ canonical(copy.action);
62
+ hashTypedAction(copy.action);
63
+ if (copy.expectedSigner !== undefined)
64
+ copy.expectedSigner = address(copy.expectedSigner);
65
+ return copy;
66
+ }
67
+ catch {
68
+ throw invalid();
69
+ }
70
+ }
71
+ function timestamp(value) {
72
+ if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}T/.test(value))
73
+ throw invalid();
74
+ const time = Date.parse(value);
75
+ if (!Number.isFinite(time))
76
+ throw invalid();
77
+ return time;
78
+ }
79
+ function snapshotApproval(value) {
80
+ const item = object(value);
81
+ if (typeof item.approvalId !== 'string' || !/^[A-Za-z0-9_-]{1,200}$/.test(item.approvalId))
82
+ throw invalid();
83
+ if (typeof item.requesterToken !== 'string' || !/^[A-Za-z0-9._~-]{1,512}$/.test(item.requesterToken))
84
+ throw invalid();
85
+ if (typeof item.approvalUrl !== 'string')
86
+ throw invalid();
87
+ try {
88
+ const url = new URL(item.approvalUrl);
89
+ if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password)
90
+ throw invalid();
91
+ }
92
+ catch {
93
+ throw invalid();
94
+ }
95
+ timestamp(item.expiresAt);
96
+ return { approvalId: item.approvalId, approvalUrl: item.approvalUrl,
97
+ requesterToken: item.requesterToken, expiresAt: item.expiresAt };
98
+ }
99
+ function assertLive(approval) {
100
+ if (timestamp(approval.expiresAt) <= Date.now())
101
+ throw expired();
102
+ }
103
+ function assertRequest(response, request) {
104
+ if (response.circuit !== request.circuit || response.scope !== request.scope || canonical(response.action) !== canonical(request.action))
105
+ throw invalid();
106
+ // Also revalidate the EIP-712 schema and digest of the independently received action.
107
+ try {
108
+ const actual = hashTypedAction(response.action);
109
+ const expected = hashTypedAction(request.action);
110
+ if (actual.domainSeparator !== expected.domainSeparator || actual.actionHash !== expected.actionHash)
111
+ throw invalid();
112
+ }
113
+ catch {
114
+ throw invalid();
115
+ }
116
+ }
117
+ async function api(config, path, method, token, body) {
118
+ try {
119
+ const response = await fetch(`${config.baseUrl.replace(/\/$/, '')}/api/v1/action-approvals${path}`, {
120
+ method,
121
+ headers: { 'Content-Type': 'application/json', ...(token && { Authorization: `Bearer ${token}` }) },
122
+ ...(body !== undefined && { body: JSON.stringify(body) }),
123
+ signal: AbortSignal.timeout(15_000),
124
+ cache: 'no-store',
125
+ redirect: 'error',
126
+ referrerPolicy: 'no-referrer',
127
+ });
128
+ if (!response.ok) {
129
+ // Provider bodies can reflect secrets; never incorporate them into an error.
130
+ throw new ActionApprovalError('ACTION_APPROVAL_UNAVAILABLE', `Action approval request failed (HTTP ${response.status}). Check its status before trying again.`);
131
+ }
132
+ return object(await response.json());
133
+ }
134
+ catch (error) {
135
+ if (error instanceof ActionApprovalError)
136
+ throw error;
137
+ throw new ActionApprovalError('ACTION_APPROVAL_UNAVAILABLE', 'Action approval request could not be completed. Check its status before trying again.');
138
+ }
139
+ }
140
+ /** Create a pending session; this does not sign, prepare a proof, or pay. */
141
+ export async function createActionApproval(config, request) {
142
+ const frozen = snapshotRequest(request);
143
+ const response = await api(config, '', 'POST', undefined, frozen);
144
+ if (response.status !== 'pending')
145
+ throw invalid();
146
+ const approval = snapshotApproval(response);
147
+ assertLive(approval);
148
+ return approval;
149
+ }
150
+ /** Status never returns a raw signature or a requester credential. */
151
+ export async function getActionApprovalStatus(config, approval) {
152
+ const handle = snapshotApproval(approval);
153
+ const response = await api(config, `/${encodeURIComponent(handle.approvalId)}`, 'GET', handle.requesterToken);
154
+ if (response.approvalId !== handle.approvalId || timestamp(response.expiresAt) !== timestamp(handle.expiresAt))
155
+ throw invalid();
156
+ const state = response.status;
157
+ if (state !== 'pending' && state !== 'approved' && state !== 'rejected' && state !== 'consumed' && state !== 'expired')
158
+ throw invalid();
159
+ const request = snapshotRequest({ circuit: response.circuit, scope: response.scope, action: response.action,
160
+ ...(response.expectedSigner !== undefined && { expectedSigner: response.expectedSigner }) });
161
+ const signer = response.address === undefined ? undefined : address(response.address);
162
+ if (state === 'approved' && !signer)
163
+ throw invalid();
164
+ if (signer && request.expectedSigner && signer !== request.expectedSigner)
165
+ throw invalid();
166
+ return { ...request, approvalId: handle.approvalId, status: state, expiresAt: handle.expiresAt,
167
+ ...(signer && { address: signer }) };
168
+ }
169
+ /**
170
+ * Consume once and cryptographically check the returned signature against the
171
+ * caller's frozen action. A lost response must be inspected, never auto-retried.
172
+ */
173
+ export async function consumeActionApproval(config, request, approval) {
174
+ const frozen = snapshotRequest(request);
175
+ const handle = snapshotApproval(approval);
176
+ assertLive(handle);
177
+ const response = await api(config, `/${encodeURIComponent(handle.approvalId)}/consume`, 'POST', handle.requesterToken, { circuit: frozen.circuit, scope: frozen.scope, action: frozen.action });
178
+ assertLive(handle);
179
+ assertRequest(response, frozen);
180
+ const signer = address(response.address);
181
+ if (frozen.expectedSigner && signer !== frozen.expectedSigner)
182
+ throw invalid();
183
+ if (typeof response.signature !== 'string' || !/^0x[0-9a-fA-F]{130}$/.test(response.signature))
184
+ throw invalid();
185
+ try {
186
+ const recovered = verifyTypedData(frozen.action.domain, frozen.action.types, frozen.action.message, response.signature);
187
+ if (getAddress(recovered) !== signer)
188
+ throw invalid();
189
+ }
190
+ catch {
191
+ throw invalid();
192
+ }
193
+ return { address: signer, signature: response.signature };
194
+ }
195
+ /** Resume an approved action, or yield a handle for human review before any proof work. */
196
+ export async function resolveActionApproval(config, request, approval) {
197
+ const frozen = snapshotRequest(request);
198
+ if (!approval)
199
+ throw new ActionApprovalRequiredError(await createActionApproval(config, frozen));
200
+ const handle = snapshotApproval(approval);
201
+ assertLive(handle);
202
+ const status = await getActionApprovalStatus(config, handle);
203
+ assertLive(handle);
204
+ assertRequest(status, frozen);
205
+ if (frozen.expectedSigner && status.expectedSigner !== frozen.expectedSigner)
206
+ throw invalid();
207
+ switch (status.status) {
208
+ case 'pending': throw new ActionApprovalRequiredError(handle);
209
+ case 'rejected': throw new ActionApprovalError('ACTION_APPROVAL_REJECTED', 'The person rejected this action approval.');
210
+ case 'expired': throw expired();
211
+ case 'consumed': throw new ActionApprovalError('ACTION_APPROVAL_CONSUMED', 'This action approval was already consumed. Check the previous proof/payment outcome before requesting a new approval.');
212
+ case 'approved': return consumeActionApproval(config, { ...frozen, expectedSigner: status.address }, handle);
213
+ default: throw invalid();
214
+ }
215
+ }
216
+ //# sourceMappingURL=actionApproval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionApproval.js","sourceRoot":"","sources":["../src/actionApproval.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arcWallet.d.ts","sourceRoot":"","sources":["../src/arcWallet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,yDAAyD;AACzD,eAAO,MAAM,cAAc;;;CAAsD,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAuC/E,kEAAkE;AAClE,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,WAAoC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKxG;AAED,kDAAkD;AAClD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK5D;AAiBD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkE9B"}
1
+ {"version":3,"file":"arcWallet.d.ts","sourceRoot":"","sources":["../src/arcWallet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,yDAAyD;AACzD,eAAO,MAAM,cAAc;;;CAAsD,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AA+C/E,kEAAkE;AAClE,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,WAAoC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKxG;AAED,kDAAkD;AAClD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK5D;AAiBD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;CAChB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkE9B"}
package/dist/arcWallet.js CHANGED
@@ -43,7 +43,7 @@ async function circle(args) {
43
43
  const err = error;
44
44
  if (err.code === 'ENOENT') {
45
45
  throw new Error('Circle CLI is not installed, so an Arc agent wallet cannot sign. Install it with ' +
46
- '`npm install -g @circle-fin/cli`, then `circle wallet login <email> --testnet`.');
46
+ '`npm install -g @circle-fin/cli@>=1.1.4`, then `circle wallet login <email> --testnet`.');
47
47
  }
48
48
  // The CLI prints a JSON error on stdout even when it exits non-zero.
49
49
  let reason = err.stderr?.trim() || err.message || 'unknown error';
@@ -56,6 +56,12 @@ async function circle(args) {
56
56
  catch {
57
57
  // stdout was not JSON; the stderr text above is the best there is.
58
58
  }
59
+ if (/no longer supported/i.test(reason)) {
60
+ throw new Error(`Circle CLI is too old: ${reason} Update it with \`circle update\` or ` +
61
+ '`npm install -g @circle-fin/cli@latest`. Circle disables wallet operations on ' +
62
+ 'versions it has retired, so the pin cannot be held here — 1.0.0 stopped working ' +
63
+ 'for wallet commands and 1.1.4 was current on 2026-09-22.');
64
+ }
59
65
  if (/AUTH_REQUIRED|Not logged in/i.test(reason)) {
60
66
  throw new Error(`Circle CLI is not logged in for this environment: ${reason}. ` +
61
67
  'Testnet and mainnet are separate logins — `circle wallet login <email> --testnet` for Arc Testnet.');
@@ -1 +1 @@
1
- {"version":3,"file":"arcWallet.js","sourceRoot":"","sources":["../src/arcWallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arcWallet.js","sourceRoot":"","sources":["../src/arcWallet.ts"],"names":[],"mappings":"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"}
package/dist/flow.d.ts CHANGED
@@ -13,13 +13,13 @@ export interface FlowCallbacks {
13
13
  * sent in plaintext.
14
14
  *
15
15
  * @param config - Server URL
16
- * @param signers - ProofportSigner for attestation (required)
16
+ * @param signers - Attestation signer for proofs without an action; optional payment wallet
17
17
  * @param params - Circuit name, scope, and optional country params
18
18
  * @param callbacks - Optional callbacks for step progress
19
19
  * @returns ProofResult with proof, publicInputs, and attestation info
20
20
  */
21
21
  export declare function generateProof(config: ClientConfig, signers: {
22
- attestation: ProofportSigner;
22
+ attestation?: ProofportSigner;
23
23
  /**
24
24
  * The wallet that pays, when the service charges. A different wallet from
25
25
  * `attestation` and deliberately so: the attestation wallet is fixed by
@@ -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,EACX,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,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;IACP,WAAW,EAAE,eAAe,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,EACD,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,WAAW,CAAC,CAgMtB"}
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,EACX,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,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;IACP,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,EACD,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,WAAW,CAAC,CA4MtB"}
package/dist/flow.js CHANGED
@@ -9,6 +9,7 @@ import { CIRCUITS } from './constants.js';
9
9
  import { hashTypedAction } from './action.js';
10
10
  import { CIRCUIT_IDS } from './circuits.js';
11
11
  import { encryptForTee } from './tee.js';
12
+ import { ActionApprovalError, resolveActionApproval } from './actionApproval.js';
12
13
  /**
13
14
  * Generate a ZK proof end-to-end.
14
15
  *
@@ -18,17 +19,21 @@ import { encryptForTee } from './tee.js';
18
19
  * sent in plaintext.
19
20
  *
20
21
  * @param config - Server URL
21
- * @param signers - ProofportSigner for attestation (required)
22
+ * @param signers - Attestation signer for proofs without an action; optional payment wallet
22
23
  * @param params - Circuit name, scope, and optional country params
23
24
  * @param callbacks - Optional callbacks for step progress
24
25
  * @returns ProofResult with proof, publicInputs, and attestation info
25
26
  */
26
27
  export async function generateProof(config, signers, params, callbacks) {
27
- // Keep the approved values stable across asynchronous signer operations.
28
+ // Keep the requested circuit and approved values stable across asynchronous operations.
29
+ const circuit = params.circuit;
28
30
  const action = params.action ? structuredClone(params.action) : params.action;
29
- const circuitId = CIRCUIT_NAME_MAP[params.circuit];
31
+ const circuitId = CIRCUIT_NAME_MAP[circuit];
30
32
  const scope = params.scope || 'proofport';
31
33
  const isOidc = CIRCUITS[circuitId]?.inputType === 'oidc';
34
+ if (params.actionApproval && !action) {
35
+ throw new ActionApprovalError('ACTION_APPROVAL_INVALID', 'Resuming an action approval requires its original action.');
36
+ }
32
37
  const steps = [];
33
38
  function recordStep(step, name, data, startTime) {
34
39
  const result = { step, name, data, durationMs: Date.now() - startTime };
@@ -60,6 +65,10 @@ export async function generateProof(config, signers, params, callbacks) {
60
65
  }
61
66
  const actionHashes = action ? hashTypedAction(action) : undefined;
62
67
  if (!isOidc) {
68
+ const credentialSigner = signers.attestation;
69
+ if (!action && !credentialSigner) {
70
+ throw new Error('An attestation signer is required for this proof without an action. Pass signers.attestation.');
71
+ }
63
72
  // Step 1: Sign.
64
73
  //
65
74
  // `signal_hash` is computed either way, because the nullifier derives from
@@ -71,25 +80,27 @@ export async function generateProof(config, signers, params, callbacks) {
71
80
  // structure, which the wallet renders as named fields, and the verifying
72
81
  // contract can recompute.
73
82
  let t = Date.now();
74
- const attestationAddress = await signers.attestation.getAddress();
83
+ const approved = action
84
+ ? await resolveActionApproval(config, { circuit, scope, action }, params.actionApproval)
85
+ : undefined;
86
+ const attestationAddress = approved ? approved.address : await credentialSigner.getAddress();
75
87
  const signalHash = computeSignalHash(attestationAddress, scope, circuitId);
76
88
  const signalHashHex = ethers.hexlify(signalHash);
77
89
  let signature;
78
90
  if (action) {
79
- const { domain, types, message } = action;
91
+ const { domain } = action;
80
92
  ({ domainSeparator, actionHash } = actionHashes);
81
- signature = await signers.attestation.signTypedData(domain, types, message);
82
- recordStep(1, 'Sign Typed Action', {
93
+ signature = approved.signature;
94
+ recordStep(1, 'Approve Typed Action', {
83
95
  signalHash: signalHashHex,
84
96
  domainSeparator,
85
97
  actionHash,
86
98
  primaryType: action.primaryType,
87
99
  verifyingContract: domain.verifyingContract,
88
- signature,
89
100
  }, t);
90
101
  }
91
102
  else {
92
- signature = await signers.attestation.signMessage(signalHash);
103
+ signature = await credentialSigner.signMessage(signalHash);
93
104
  recordStep(1, 'Sign Signal Hash', { signalHash: signalHashHex, signature }, t);
94
105
  }
95
106
  // Step 2: Prepare inputs
@@ -127,9 +138,9 @@ export async function generateProof(config, signers, params, callbacks) {
127
138
  }
128
139
  // Step 3: Request challenge (server returns nonce + TEE key if available)
129
140
  let t = Date.now();
130
- const challenge = await requestChallenge(config, params.circuit);
141
+ const challenge = await requestChallenge(config, circuit);
131
142
  const isE2E = !!challenge.teePublicKey;
132
- recordStep(3, 'Request Challenge', { nonce: challenge.nonce, e2e: isE2E, keyId: challenge.teePublicKey?.keyId ?? null }, t);
143
+ recordStep(3, 'Request Challenge', action ? { e2e: isE2E } : { nonce: challenge.nonce, e2e: isE2E, keyId: challenge.teePublicKey?.keyId ?? null }, t);
133
144
  // Step 3b: Pay, if the service charges.
134
145
  //
135
146
  // The buyer signs an EIP-3009 authorization and the service settles it, so
@@ -160,17 +171,17 @@ export async function generateProof(config, signers, params, callbacks) {
160
171
  const inputsToEncrypt = isOidc ? oidcPayload : easInputs;
161
172
  const encryptedPayload = encryptForTee(JSON.stringify({ circuitId, inputs: inputsToEncrypt }), challenge.teePublicKey.publicKey);
162
173
  proveResponse = await submitEncryptedProof(config, {
163
- circuit: params.circuit,
174
+ circuit,
164
175
  encryptedPayload,
165
176
  nonce: challenge.nonce,
166
177
  paymentHeaders,
167
178
  });
168
- recordStep(4, 'Generate Proof (E2E Encrypted)', proveResponse, t);
179
+ recordStep(4, 'Generate Proof (E2E Encrypted)', action ? { circuit, completed: true } : proveResponse, t);
169
180
  }
170
181
  else if (isOidc) {
171
182
  // OIDC plaintext path: send payload (JWT + JWKS) — server relays to prover, prover validates + builds inputs
172
183
  proveResponse = await submitProof(config, {
173
- circuit: params.circuit,
184
+ circuit,
174
185
  inputs: oidcPayload,
175
186
  nonce: challenge.nonce,
176
187
  paymentHeaders,
@@ -180,12 +191,14 @@ export async function generateProof(config, signers, params, callbacks) {
180
191
  else {
181
192
  // Coinbase plaintext path: send pre-computed inputs (TEE disabled / local dev)
182
193
  proveResponse = await submitProof(config, {
183
- circuit: params.circuit,
194
+ circuit,
184
195
  inputs: easInputs,
185
196
  nonce: challenge.nonce,
186
197
  paymentHeaders,
187
198
  });
188
- recordStep(4, 'Generate Proof', proveResponse, t);
199
+ // An untrusted response may echo witness fields. Progress for an action
200
+ // reports completion without forwarding the provider's response object.
201
+ recordStep(4, 'Generate Proof', action ? { circuit, completed: true } : proveResponse, t);
189
202
  }
190
203
  return {
191
204
  circuit: proveResponse.circuit,
package/dist/flow.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { CIRCUITS, COINBASE_ATTESTER_CONTRACT, AUTHORIZED_SIGNERS, } from './con
6
6
  export { createConfig } from './config.js';
7
7
  export { generateProof } from './flow.js';
8
8
  export type { FlowCallbacks } from './flow.js';
9
+ export { createActionApproval, getActionApprovalStatus, consumeActionApproval, resolveActionApproval, ActionApprovalRequiredError, ActionApprovalError, } from './actionApproval.js';
10
+ export type { ActionApproval, ActionApprovalRequest, ActionApprovalStatus, ActionApprovalState, ActionApprovalErrorCode, } from './actionApproval.js';
9
11
  export { requestChallenge, createSession } from './session.js';
10
12
  export { submitProof, submitEncryptedProof } from './prove.js';
11
13
  export { encryptForTee } from './tee.js';
@@ -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,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI9D,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,GACnB,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,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,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,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG/F,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { CIRCUITS, COINBASE_ATTESTER_CONTRACT, AUTHORIZED_SIGNERS, } from './con
8
8
  export { createConfig } from './config.js';
9
9
  // Flow (main entry point)
10
10
  export { generateProof } from './flow.js';
11
+ export { createActionApproval, getActionApprovalStatus, consumeActionApproval, resolveActionApproval, ActionApprovalRequiredError, ActionApprovalError, } from './actionApproval.js';
11
12
  // Individual steps (for step-by-step usage)
12
13
  export { requestChallenge, createSession } from './session.js';
13
14
  export { submitProof, submitEncryptedProof } from './prove.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,iCAAiC;AACjC,8EAA8E;AAC9E,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,GACnB,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,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMzE,6EAA6E;AAC7E,6DAA6D;AAC7D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAEtB,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,gEAAgE;AAChE,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,+EAA+E;AAC/E,wEAAwE;AACxE,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAE1B,uEAAuE;AACvE,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GAEf,MAAM,gBAAgB,CAAC;AAExB,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,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,iCAAiC;AACjC,8EAA8E;AAC9E,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAS7B,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAMzE,6EAA6E;AAC7E,6DAA6D;AAC7D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,cAAc,CAAC;AAEtB,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,gEAAgE;AAChE,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,+EAA+E;AAC/E,wEAAwE;AACxE,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,kBAAkB,CAAC;AAE1B,uEAAuE;AACvE,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACV,uBAAuB,EACvB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GAEf,MAAM,gBAAgB,CAAC;AAExB,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { PROVABLE_CIRCUIT_IDS } from './circuits.js';
2
+ import type { ActionApproval } from './actionApproval.js';
2
3
  /** Client-friendly circuit aliases. */
3
4
  export type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain'
4
5
  /** Coinbase KYC, optionally binding the signature to one EIP-712 action. */
@@ -203,12 +204,16 @@ export interface ProofParams {
203
204
  /**
204
205
  * Optional for arc_eligibility and giwa_attestation; rejected for every
205
206
  * other circuit, including OIDC.
206
- * The local wallet signs these exact EIP-712 fields after shape, root-type and
207
- * value validation. The relying contract must compare the domain/action hashes
207
+ * A human wallet must approve these exact EIP-712 fields. generateProof throws
208
+ * ActionApprovalRequiredError with a resumable handle until approval is ready.
209
+ * The supplied attestation signer is never used for actions.
210
+ * The relying contract must compare the domain/action hashes
208
211
  * and enforce the approved actor, amount, nonce and deadline.
209
212
  * Coinbase circuits without an action use personal_sign; OIDC does not sign.
210
213
  */
211
214
  action?: TypedAction;
215
+ /** Private handle returned by ActionApprovalRequiredError; resume the same action with it. */
216
+ actionApproval?: ActionApproval;
212
217
  }
213
218
  export interface ProofResult {
214
219
  circuit: 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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAuBlE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,WAAW,CAAC,oBAAoB;IAC9C,gBAAgB,EAAE,WAAW,CAAC,4BAA4B;IAC1D,WAAW,EAAE,WAAW,CAAC,uBAAuB;IAChD,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;CAC/C,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,cAAc;IAClD,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,kBAAkB;IAC9D,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,aAAa;IACpD,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB;IAChD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CACnD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAwBlE,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,WAAW,CAAC,oBAAoB;IAC9C,gBAAgB,EAAE,WAAW,CAAC,4BAA4B;IAC1D,WAAW,EAAE,WAAW,CAAC,uBAAuB;IAChD,eAAe,EAAE,WAAW,CAAC,eAAe;IAC5C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;CAC/C,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,cAAc;IAClD,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE,kBAAkB;IAC9D,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,aAAa;IACpD,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB;IAChD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;CACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkproofport-ai/sdk",
3
- "version": "0.2.17",
3
+ "version": "0.3.0",
4
4
  "description": "TypeScript SDK for ZKProofport Coinbase KYC, country, OIDC, Arc eligibility and GIWA attestation proofs. Optional EIP-712 action binding for Arc/GIWA; x402 USDC and Circle Gateway payments.",
5
5
  "keywords": [
6
6
  "sdk",