@coinbase/cdp-sdk 1.51.0 → 1.51.2

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.
Files changed (77) hide show
  1. package/_cjs/actions/evm/getUserOperation.js +1 -0
  2. package/_cjs/actions/evm/getUserOperation.js.map +1 -1
  3. package/_cjs/actions/evm/sendUserOperation.js +2 -0
  4. package/_cjs/actions/evm/sendUserOperation.js.map +1 -1
  5. package/_cjs/actions/evm/transfer/transferWithViem.js +0 -11
  6. package/_cjs/actions/evm/transfer/transferWithViem.js.map +1 -1
  7. package/_cjs/client/evm/evm.js +5 -0
  8. package/_cjs/client/evm/evm.js.map +1 -1
  9. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +176 -2
  10. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  11. package/_cjs/openapi-client/generated/end-user-account-management/end-user-account-management.js +3 -0
  12. package/_cjs/openapi-client/generated/end-user-account-management/end-user-account-management.js.map +1 -1
  13. package/_cjs/openapi-client/generated/onramp/onramp.js +35 -3
  14. package/_cjs/openapi-client/generated/onramp/onramp.js.map +1 -1
  15. package/_cjs/openapi-client/generated/sql-api/sql-api.js +23 -10
  16. package/_cjs/openapi-client/generated/sql-api/sql-api.js.map +1 -1
  17. package/_cjs/openapi-client/generated/webhooks/webhooks.js +15 -43
  18. package/_cjs/openapi-client/generated/webhooks/webhooks.js.map +1 -1
  19. package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.js +17 -1
  20. package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -1
  21. package/_cjs/version.js +1 -1
  22. package/_esm/actions/evm/getUserOperation.js +1 -0
  23. package/_esm/actions/evm/getUserOperation.js.map +1 -1
  24. package/_esm/actions/evm/sendUserOperation.js +2 -0
  25. package/_esm/actions/evm/sendUserOperation.js.map +1 -1
  26. package/_esm/actions/evm/transfer/transferWithViem.js +0 -11
  27. package/_esm/actions/evm/transfer/transferWithViem.js.map +1 -1
  28. package/_esm/client/evm/evm.js +5 -0
  29. package/_esm/client/evm/evm.js.map +1 -1
  30. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +174 -0
  31. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  32. package/_esm/openapi-client/generated/end-user-account-management/end-user-account-management.js +3 -0
  33. package/_esm/openapi-client/generated/end-user-account-management/end-user-account-management.js.map +1 -1
  34. package/_esm/openapi-client/generated/onramp/onramp.js +32 -2
  35. package/_esm/openapi-client/generated/onramp/onramp.js.map +1 -1
  36. package/_esm/openapi-client/generated/sql-api/sql-api.js +23 -10
  37. package/_esm/openapi-client/generated/sql-api/sql-api.js.map +1 -1
  38. package/_esm/openapi-client/generated/webhooks/webhooks.js +15 -43
  39. package/_esm/openapi-client/generated/webhooks/webhooks.js.map +1 -1
  40. package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.js +15 -0
  41. package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -1
  42. package/_esm/version.js +1 -1
  43. package/_types/actions/evm/getUserOperation.d.ts.map +1 -1
  44. package/_types/actions/evm/sendUserOperation.d.ts +7 -0
  45. package/_types/actions/evm/sendUserOperation.d.ts.map +1 -1
  46. package/_types/actions/evm/transfer/transferWithViem.d.ts.map +1 -1
  47. package/_types/client/evm/evm.d.ts +1 -0
  48. package/_types/client/evm/evm.d.ts.map +1 -1
  49. package/_types/client/evm/evm.types.d.ts +7 -1
  50. package/_types/client/evm/evm.types.d.ts.map +1 -1
  51. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +1064 -83
  52. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  53. package/_types/openapi-client/generated/end-user-account-management/end-user-account-management.d.ts +3 -0
  54. package/_types/openapi-client/generated/end-user-account-management/end-user-account-management.d.ts.map +1 -1
  55. package/_types/openapi-client/generated/onramp/onramp.d.ts +20 -2
  56. package/_types/openapi-client/generated/onramp/onramp.d.ts.map +1 -1
  57. package/_types/openapi-client/generated/sql-api/sql-api.d.ts +23 -10
  58. package/_types/openapi-client/generated/sql-api/sql-api.d.ts.map +1 -1
  59. package/_types/openapi-client/generated/webhooks/webhooks.d.ts +15 -43
  60. package/_types/openapi-client/generated/webhooks/webhooks.d.ts.map +1 -1
  61. package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts +10 -1
  62. package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts.map +1 -1
  63. package/_types/openapi-client/index.d.ts.map +1 -1
  64. package/_types/version.d.ts +1 -1
  65. package/package.json +1 -1
  66. package/src/actions/evm/getUserOperation.ts +1 -0
  67. package/src/actions/evm/sendUserOperation.ts +9 -0
  68. package/src/actions/evm/transfer/transferWithViem.ts +0 -12
  69. package/src/client/evm/evm.ts +5 -0
  70. package/src/client/evm/evm.types.ts +7 -0
  71. package/src/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +1358 -100
  72. package/src/openapi-client/generated/end-user-account-management/end-user-account-management.ts +3 -0
  73. package/src/openapi-client/generated/onramp/onramp.ts +57 -3
  74. package/src/openapi-client/generated/sql-api/sql-api.ts +23 -10
  75. package/src/openapi-client/generated/webhooks/webhooks.ts +15 -43
  76. package/src/openapi-client/generated/x402-facilitator/x402-facilitator.ts +26 -0
  77. package/src/version.ts +1 -1
@@ -86,6 +86,12 @@ export declare const ErrorType: {
86
86
  readonly guest_transaction_limit: "guest_transaction_limit";
87
87
  readonly guest_transaction_count: "guest_transaction_count";
88
88
  readonly phone_number_verification_expired: "phone_number_verification_expired";
89
+ readonly otp_verification_code_invalid: "otp_verification_code_invalid";
90
+ readonly otp_verification_destination_mismatch: "otp_verification_destination_mismatch";
91
+ readonly otp_verification_expired: "otp_verification_expired";
92
+ readonly otp_verification_invalid: "otp_verification_invalid";
93
+ readonly otp_verification_not_found: "otp_verification_not_found";
94
+ readonly otp_verification_required: "otp_verification_required";
89
95
  readonly document_verification_failed: "document_verification_failed";
90
96
  readonly recipient_allowlist_violation: "recipient_allowlist_violation";
91
97
  readonly recipient_allowlist_pending: "recipient_allowlist_pending";
@@ -127,6 +133,17 @@ export declare const ErrorType: {
127
133
  readonly delegation_not_enabled: "delegation_not_enabled";
128
134
  readonly network_mismatch: "network_mismatch";
129
135
  readonly already_enabled: "already_enabled";
136
+ readonly payment_session_already_canceled: "payment_session_already_canceled";
137
+ readonly payment_session_already_authorized: "payment_session_already_authorized";
138
+ readonly payment_session_action_pending: "payment_session_action_pending";
139
+ readonly no_capturable_balance: "no_capturable_balance";
140
+ readonly no_voidable_balance: "no_voidable_balance";
141
+ readonly no_refundable_balance: "no_refundable_balance";
142
+ readonly entity_not_configured_for_payment_acceptance: "entity_not_configured_for_payment_acceptance";
143
+ readonly daily_transaction_limit_exceeded: "daily_transaction_limit_exceeded";
144
+ readonly daily_amount_limit_exceeded: "daily_amount_limit_exceeded";
145
+ readonly stale_attestation: "stale_attestation";
146
+ readonly moderation_rejected: "moderation_rejected";
130
147
  };
131
148
  /**
132
149
  * A valid HTTP or HTTPS URL.
@@ -378,6 +395,7 @@ export declare const TransferStatus: {
378
395
  /**
379
396
  * An email address. Maximum length 254 characters per [RFC 5321](https://www.rfc-editor.org/rfc/rfc5321).
380
397
  * @maxLength 254
398
+ * @pattern ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}/-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$
381
399
  */
382
400
  export type Email = string;
383
401
  /**
@@ -505,21 +523,20 @@ Common examples:
505
523
  */
506
524
  export type TransferFees = TransferFee[];
507
525
  /**
508
- * A point-in-time snapshot of estimated values for a transfer where exact amounts cannot be locked in at quote time (e.g., when the executed rate is determined at execution time and moves with the market).
526
+ * Captures estimated values for transfers where amounts can't be guaranteed (e.g., USDC -> EURC).
509
527
 
510
- Present in both pre-execution and post-execution states:
511
- * **Quoted state:** top-level fields whose values cannot be guaranteed are absent;
512
- `estimate` holds their estimated values.
528
+ The values in `estimate` are not modified after a transfer is executed. They are preserved as an immutable record of the original pre-execution snapshot.
513
529
 
514
- * **Completed state:** top-level fields contain the actual executed values;
515
- `estimate` is retained as an immutable audit snapshot of the pre-execution estimate.
530
+ The actual executed values are populated in the `transfer` resource post-execution.
516
531
  */
517
532
  export interface TransferEstimate {
533
+ /** The estimated exchange rate at the time this estimate was captured. */
518
534
  exchangeRate?: TransferExchangeRate;
519
535
  /** Estimated amount of the target asset that will be received, as a decimal string in standard unit denomination. */
520
536
  targetAmount?: string;
521
537
  /** The asset symbol of the estimated target amount. */
522
538
  targetAsset?: Asset;
539
+ /** The estimated fees at the time this estimate was captured. */
523
540
  fees?: TransferFees;
524
541
  /** The date and time when this estimate was captured. */
525
542
  estimatedAt: string;
@@ -579,11 +596,13 @@ export interface Transfer {
579
596
  sourceAmount?: string;
580
597
  /** The asset symbol of the source amount. */
581
598
  sourceAsset?: Asset;
582
- /** The amount of the target asset that will be received, as a decimal string in standard unit denomination. */
599
+ /** The amount of the target asset received, as a decimal string in standard unit denomination. May be omitted in the `quoted` state if the value cannot be guaranteed; see `estimate.targetAmount` for the expected value. Populated with the actual executed amount once the transfer completes. */
583
600
  targetAmount?: string;
584
601
  /** The asset symbol of the target amount. */
585
602
  targetAsset?: Asset;
603
+ /** Exchange rate information for currency conversion. The rate indicates how much of the target asset is equivalent to one unit of the source asset. May be omitted in the `quoted` state if the rate cannot be guaranteed; see `estimate.exchangeRate` for the expected rate. Populated with the actual executed rate once the transfer completes. */
586
604
  exchangeRate?: TransferExchangeRate;
605
+ /** The fees associated with this transfer. Different transfer types have different fee structures. May be omitted in the `quoted` state if the fees cannot be guaranteed; see `estimate.fees` for the expected fees. Populated with the actual fees once the transfer completes. */
587
606
  fees?: TransferFees;
588
607
  estimate?: TransferEstimate;
589
608
  /** The date and time the transfer was completed. */
@@ -636,6 +655,32 @@ export interface TravelRuleParty {
636
655
  name?: string;
637
656
  address?: PhysicalAddress;
638
657
  }
658
+ /**
659
+ * Date of birth.
660
+ */
661
+ export interface DateOfBirth {
662
+ /**
663
+ * Day of birth (01-31).
664
+ * @minLength 2
665
+ * @maxLength 2
666
+ * @pattern ^[0-9]{2}$
667
+ */
668
+ day?: string;
669
+ /**
670
+ * Month of birth (01-12).
671
+ * @minLength 2
672
+ * @maxLength 2
673
+ * @pattern ^[0-9]{2}$
674
+ */
675
+ month?: string;
676
+ /**
677
+ * Year of birth (four digits).
678
+ * @minLength 4
679
+ * @maxLength 4
680
+ * @pattern ^[0-9]{4}$
681
+ */
682
+ year?: string;
683
+ }
639
684
  /**
640
685
  * Information about the originating Virtual Asset Service Provider (VASP) that handles cryptocurrency or other virtual assets on behalf of customers.
641
686
  */
@@ -650,6 +695,10 @@ export type TravelRuleOriginatorAllOfVirtualAssetServiceProvider = {
650
695
  export type TravelRuleOriginatorAllOf = {
651
696
  /** Information about the originating Virtual Asset Service Provider (VASP) that handles cryptocurrency or other virtual assets on behalf of customers. */
652
697
  virtualAssetServiceProvider?: TravelRuleOriginatorAllOfVirtualAssetServiceProvider;
698
+ /** Personal identifier for travel rule compliance. For individuals: passport number, national ID, or driver's license. For institutions: LEI (Legal Entity Identifier). */
699
+ personalId?: string;
700
+ /** Date of birth of the originator. Required by certain jurisdictions (such as Coinbase Luxembourg) to satisfy Travel Rule reporting obligations. */
701
+ dateOfBirth?: DateOfBirth;
653
702
  };
654
703
  /**
655
704
  * Originator (sender) party.
@@ -694,10 +743,12 @@ export interface TravelRule {
694
743
 
695
744
  **Impact on required fields:**
696
745
 
697
- When `isIntermediary` is `true`, you must provide the `originator` object with details about the original sender, including:
746
+ When `isIntermediary` is `true`, you must provide the `originator` object with details about the **original sender**, including:
698
747
  - Originator name
699
748
  - Originator address
700
749
  - Your VASP information (`virtualAssetServiceProvider` object with `name`, `address`, and `identifier`)
750
+
751
+ For jurisdictions that require them (such as Coinbase Luxembourg), `personalIdentification` and `dateOfBirth` must also reflect the **original sender's** identity — not the intermediary's. These fields will not be auto-populated from any internal KYC data when `isIntermediary` is `true`.
701
752
  */
702
753
  isIntermediary?: boolean;
703
754
  originator?: TravelRuleOriginator;
@@ -736,6 +787,7 @@ export interface TransferRequest {
736
787
  /** Whether to immediately execute the transfer. If false, the transfer will be created in quoted status and must be executed manually via the /execute endpoint. */
737
788
  execute: boolean;
738
789
  metadata?: Metadata;
790
+ /** Travel Rule compliance information for this transfer. Required for transfers to external wallets above regulatory thresholds. Fields required differ by region and Coinbase contracting entity. */
739
791
  travelRule?: TravelRule;
740
792
  }
741
793
  /**
@@ -747,32 +799,6 @@ export interface DepositTravelRuleVasp {
747
799
  /** The name of the Virtual Asset Service Provider (VASP). */
748
800
  name?: string;
749
801
  }
750
- /**
751
- * Date of birth.
752
- */
753
- export interface DateOfBirth {
754
- /**
755
- * Day of birth (01-31).
756
- * @minLength 2
757
- * @maxLength 2
758
- * @pattern ^[0-9]{2}$
759
- */
760
- day?: string;
761
- /**
762
- * Month of birth (01-12).
763
- * @minLength 2
764
- * @maxLength 2
765
- * @pattern ^[0-9]{2}$
766
- */
767
- month?: string;
768
- /**
769
- * Year of birth (four digits).
770
- * @minLength 4
771
- * @maxLength 4
772
- * @pattern ^[0-9]{4}$
773
- */
774
- year?: string;
775
- }
776
802
  /**
777
803
  * The type of the originator's wallet.
778
804
  */
@@ -793,8 +819,9 @@ export interface DepositTravelRuleOriginator {
793
819
  /** The type of the originator's wallet. */
794
820
  walletType?: DepositTravelRuleOriginatorWalletType;
795
821
  virtualAssetServiceProvider?: DepositTravelRuleVasp;
796
- /** Government-issued personal identification number for the originator. */
822
+ /** Personal identifier for travel rule compliance. For individuals: passport number, national ID, or driver's license. For institutions: LEI (Legal Entity Identifier). */
797
823
  personalId?: string;
824
+ /** Date of birth of the originator. */
798
825
  dateOfBirth?: DateOfBirth;
799
826
  }
800
827
  /**
@@ -808,7 +835,9 @@ export interface DepositTravelRuleBeneficiary {
808
835
  * Request body for submitting travel rule information for a deposit transfer. Required fields vary by jurisdiction.
809
836
  */
810
837
  export interface DepositTravelRuleRequest {
838
+ /** Originator information for the travel rule submission. */
811
839
  originator?: DepositTravelRuleOriginator;
840
+ /** Beneficiary information for the travel rule submission. */
812
841
  beneficiary?: DepositTravelRuleBeneficiary;
813
842
  /** Indicates whether the user attests that the originating wallet belongs to them. */
814
843
  isSelf?: boolean;
@@ -1044,6 +1073,12 @@ export interface EndUser {
1044
1073
  /** The date and time when the end user was created, in ISO 8601 format. */
1045
1074
  createdAt: string;
1046
1075
  }
1076
+ /**
1077
+ * The ERC-7677 `context` object forwarded to the paymaster service as part of the `paymasterService` capability. The fields in this object are defined by the paymaster service provider; CDP forwards them to the paymaster unchanged. This field is only valid when a paymaster is configured for the request. Providing `paymasterContext` without a paymaster configured results in an `invalid_request` error.
1078
+ */
1079
+ export interface PaymasterContext {
1080
+ [key: string]: unknown;
1081
+ }
1047
1082
  /**
1048
1083
  * The domain of the EIP-712 typed data.
1049
1084
  */
@@ -1197,6 +1232,8 @@ export interface EvmUserOperation {
1197
1232
  transactionHash?: string;
1198
1233
  /** The list of receipts associated with the user operation. */
1199
1234
  receipts?: UserOperationReceipt[];
1235
+ /** The timestamp at which the prepared user operation expires. */
1236
+ expiresAt?: string;
1200
1237
  }
1201
1238
  export interface EvmAccount {
1202
1239
  /**
@@ -3279,6 +3316,37 @@ export interface AccountTokenAddressesResponse {
3279
3316
  */
3280
3317
  totalCount?: number;
3281
3318
  }
3319
+ /**
3320
+ * A webhook event type identifier following dot-separated format:
3321
+ `<domain>.<entity>.<verb>` (e.g., "onchain.activity.detected").
3322
+
3323
+ */
3324
+ export type EventType = (typeof EventType)[keyof typeof EventType];
3325
+ export declare const EventType: {
3326
+ readonly onchainactivitydetected: "onchain.activity.detected";
3327
+ readonly walletactivitydetected: "wallet.activity.detected";
3328
+ readonly walletactivitymulti: "wallet.activity.multi";
3329
+ readonly wallettransactioncreated: "wallet.transaction.created";
3330
+ readonly wallettransactionsigned: "wallet.transaction.signed";
3331
+ readonly wallettransactionbroadcast: "wallet.transaction.broadcast";
3332
+ readonly wallettransactionreplaced: "wallet.transaction.replaced";
3333
+ readonly wallettransactionpending: "wallet.transaction.pending";
3334
+ readonly wallettransactionconfirmed: "wallet.transaction.confirmed";
3335
+ readonly wallettransactionfailed: "wallet.transaction.failed";
3336
+ readonly walletdelegationcreated: "wallet.delegation.created";
3337
+ readonly walletdelegationrevoked: "wallet.delegation.revoked";
3338
+ readonly wallettyped_datasigned: "wallet.typed_data.signed";
3339
+ readonly walletmessagesigned: "wallet.message.signed";
3340
+ readonly wallethashsigned: "wallet.hash.signed";
3341
+ readonly onramptransactioncreated: "onramp.transaction.created";
3342
+ readonly onramptransactionupdated: "onramp.transaction.updated";
3343
+ readonly onramptransactionsuccess: "onramp.transaction.success";
3344
+ readonly onramptransactionfailed: "onramp.transaction.failed";
3345
+ readonly offramptransactioncreated: "offramp.transaction.created";
3346
+ readonly offramptransactionupdated: "offramp.transaction.updated";
3347
+ readonly offramptransactionsuccess: "offramp.transaction.success";
3348
+ readonly offramptransactionfailed: "offramp.transaction.failed";
3349
+ };
3282
3350
  /**
3283
3351
  * Additional headers to include in webhook requests.
3284
3352
  */
@@ -3329,7 +3397,7 @@ export interface WebhookSubscriptionResponse {
3329
3397
  service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created",
3330
3398
  "acceptance.payment_session.authorization_succeeded").
3331
3399
  */
3332
- eventTypes: string[];
3400
+ eventTypes: EventType[];
3333
3401
  /** Whether the subscription is enabled. */
3334
3402
  isEnabled: boolean;
3335
3403
  /** Additional metadata for the subscription. */
@@ -3357,9 +3425,16 @@ export type WebhookSubscriptionListResponse = WebhookSubscriptionListResponseAll
3357
3425
  an event contains ALL the key-value pairs specified here. Additional labels on
3358
3426
  the event are allowed and will not prevent matching. Omit to receive all events for the selected event types.
3359
3427
 
3360
- **Note:** Currently, labels are supported for onchain webhooks only.
3428
+ **Note:** Currently, labels are supported for onchain webhooks only (max 20 labels per subscription).
3361
3429
 
3362
- See [allowed labels for onchain webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/create-webhook-subscription#onchain-label-filtering).
3430
+ **Allowed labels for `onchain.activity.detected`** (all in snake_case format):
3431
+ - `network` (required) — Blockchain network
3432
+ - `contract_address` — Smart contract address
3433
+ - `event_name` — Event name (e.g., "Transfer", "Burn")
3434
+ - `event_signature` — Event signature hash
3435
+ - `transaction_from` — Transaction sender address
3436
+ - `transaction_to` — Transaction recipient address
3437
+ - `params.*` — Any event parameter (e.g., `params.from`, `params.to`, `params.sender`, `params.tokenId`)
3363
3438
 
3364
3439
  */
3365
3440
  export type WebhookSubscriptionRequestLabels = {
@@ -3377,7 +3452,7 @@ export interface WebhookSubscriptionRequest {
3377
3452
  "acceptance.payment_session.authorization_succeeded").
3378
3453
  The subscription will only receive events matching these types AND the label filter(s).
3379
3454
  */
3380
- eventTypes: string[];
3455
+ eventTypes: EventType[];
3381
3456
  /** Whether the subscription is enabled. */
3382
3457
  isEnabled: boolean;
3383
3458
  target: WebhookTarget;
@@ -3386,19 +3461,33 @@ export interface WebhookSubscriptionRequest {
3386
3461
  an event contains ALL the key-value pairs specified here. Additional labels on
3387
3462
  the event are allowed and will not prevent matching. Omit to receive all events for the selected event types.
3388
3463
 
3389
- **Note:** Currently, labels are supported for onchain webhooks only.
3464
+ **Note:** Currently, labels are supported for onchain webhooks only (max 20 labels per subscription).
3390
3465
 
3391
- See [allowed labels for onchain webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/create-webhook-subscription#onchain-label-filtering).
3466
+ **Allowed labels for `onchain.activity.detected`** (all in snake_case format):
3467
+ - `network` (required) — Blockchain network
3468
+ - `contract_address` — Smart contract address
3469
+ - `event_name` — Event name (e.g., "Transfer", "Burn")
3470
+ - `event_signature` — Event signature hash
3471
+ - `transaction_from` — Transaction sender address
3472
+ - `transaction_to` — Transaction recipient address
3473
+ - `params.*` — Any event parameter (e.g., `params.from`, `params.to`, `params.sender`, `params.tokenId`)
3392
3474
  */
3393
3475
  labels?: WebhookSubscriptionRequestLabels;
3394
3476
  }
3395
3477
  /**
3396
3478
  * Optional. Multi-label filters that trigger only when an event contains ALL of these key-value pairs.
3479
+ Omit to receive all events for the selected event types.
3397
3480
 
3398
- **Note:** Currently, labels are supported for onchain webhooks only.
3481
+ **Note:** Currently, labels are supported for onchain webhooks only (max 20 labels per subscription).
3399
3482
 
3400
- See [allowed labels for onchain webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/create-webhook-subscription#onchain-label-filtering).
3401
- Omit to receive all events for the selected event types.
3483
+ **Allowed labels for `onchain.activity.detected`** (all in snake_case format):
3484
+ - `network` (required) Blockchain network
3485
+ - `contract_address` — Smart contract address
3486
+ - `event_name` — Event name (e.g., "Transfer", "Burn")
3487
+ - `event_signature` — Event signature hash
3488
+ - `transaction_from` — Transaction sender address
3489
+ - `transaction_to` — Transaction recipient address
3490
+ - `params.*` — Any event parameter (e.g., `params.from`, `params.to`, `params.sender`, `params.tokenId`)
3402
3491
 
3403
3492
  */
3404
3493
  export type WebhookSubscriptionUpdateRequestLabels = {
@@ -3414,17 +3503,24 @@ export interface WebhookSubscriptionUpdateRequest {
3414
3503
  /** Types of events to subscribe to. Event types follow a three-part dot-separated format:
3415
3504
  service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created").
3416
3505
  */
3417
- eventTypes: string[];
3506
+ eventTypes: EventType[];
3418
3507
  /** Whether the subscription is enabled. */
3419
3508
  isEnabled: boolean;
3420
3509
  target: WebhookTarget;
3421
3510
  metadata?: Metadata;
3422
3511
  /** Optional. Multi-label filters that trigger only when an event contains ALL of these key-value pairs.
3512
+ Omit to receive all events for the selected event types.
3423
3513
 
3424
- **Note:** Currently, labels are supported for onchain webhooks only.
3514
+ **Note:** Currently, labels are supported for onchain webhooks only (max 20 labels per subscription).
3425
3515
 
3426
- See [allowed labels for onchain webhooks](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/webhooks/create-webhook-subscription#onchain-label-filtering).
3427
- Omit to receive all events for the selected event types.
3516
+ **Allowed labels for `onchain.activity.detected`** (all in snake_case format):
3517
+ - `network` (required) Blockchain network
3518
+ - `contract_address` — Smart contract address
3519
+ - `event_name` — Event name (e.g., "Transfer", "Burn")
3520
+ - `event_signature` — Event signature hash
3521
+ - `transaction_from` — Transaction sender address
3522
+ - `transaction_to` — Transaction recipient address
3523
+ - `params.*` — Any event parameter (e.g., `params.from`, `params.to`, `params.sender`, `params.tokenId`)
3428
3524
  */
3429
3525
  labels?: WebhookSubscriptionUpdateRequestLabels;
3430
3526
  }
@@ -4698,12 +4794,12 @@ export type X402DiscoveryMerchantResponsePagination = {
4698
4794
  total?: number;
4699
4795
  };
4700
4796
  /**
4701
- * Response containing x402 resources associated with a merchant payment address.
4797
+ * Response containing x402 resources associated with a merchant payment address. The resources list is empty when no active resources are found.
4702
4798
  */
4703
4799
  export interface X402DiscoveryMerchantResponse {
4704
4800
  x402Version: X402Version;
4705
4801
  payTo: BlockchainAddress;
4706
- /** List of discovered x402 resources associated with the merchant's payTo address. */
4802
+ /** List of discovered x402 resources associated with the merchant's payTo address. This list is empty when no active resources are found. */
4707
4803
  resources: X402DiscoveryResource[];
4708
4804
  /** Pagination information for the response. */
4709
4805
  pagination: X402DiscoveryMerchantResponsePagination;
@@ -4809,6 +4905,202 @@ export interface X402McpResponse {
4809
4905
  result?: X402McpResponseResult;
4810
4906
  error?: X402McpError;
4811
4907
  }
4908
+ /**
4909
+ * A valid HTTPS URL.
4910
+ * @minLength 12
4911
+ * @maxLength 2048
4912
+ * @pattern ^https://.*$
4913
+ */
4914
+ export type HttpsUrl = string;
4915
+ /**
4916
+ * The HTTP method used to probe the endpoint. Only GET and POST are supported; other verbs are intentionally rejected because x402 resources are expected to respond to these methods.
4917
+ */
4918
+ export type X402ValidateRequestMethod = (typeof X402ValidateRequestMethod)[keyof typeof X402ValidateRequestMethod];
4919
+ export declare const X402ValidateRequestMethod: {
4920
+ readonly GET: "GET";
4921
+ readonly POST: "POST";
4922
+ };
4923
+ /**
4924
+ * Request to validate an x402 endpoint's bazaar-discovery configuration.
4925
+ */
4926
+ export interface X402ValidateRequest {
4927
+ /** HTTPS URL of the x402 endpoint to validate. Must use the `https://` scheme. */
4928
+ resource: HttpsUrl;
4929
+ /** The HTTP method used to probe the endpoint. Only GET and POST are supported; other verbs are intentionally rejected because x402 resources are expected to respond to these methods. */
4930
+ method?: X402ValidateRequestMethod;
4931
+ }
4932
+ /**
4933
+ * The name of the preflight check. New values may be added in future versions; clients should handle unknown values gracefully.
4934
+ */
4935
+ export type X402ValidateCheckCheck = (typeof X402ValidateCheckCheck)[keyof typeof X402ValidateCheckCheck];
4936
+ export declare const X402ValidateCheckCheck: {
4937
+ readonly reachable: "reachable";
4938
+ readonly returns_402: "returns_402";
4939
+ readonly has_bazaar_extension: "has_bazaar_extension";
4940
+ readonly parse: "parse";
4941
+ };
4942
+ /**
4943
+ * Whether this check is a hard indexing requirement or a quality recommendation. A `required` check affects validity when it fails. An `advisory` check (for example, a missing output schema) is a suggestion to improve discoverability and does not make the endpoint invalid.
4944
+ */
4945
+ export type X402ValidateCheckSeverity = (typeof X402ValidateCheckSeverity)[keyof typeof X402ValidateCheckSeverity];
4946
+ export declare const X402ValidateCheckSeverity: {
4947
+ readonly required: "required";
4948
+ readonly advisory: "advisory";
4949
+ };
4950
+ /**
4951
+ * The result of a single preflight check performed against the x402 endpoint.
4952
+ */
4953
+ export interface X402ValidateCheck {
4954
+ /** The name of the preflight check. New values may be added in future versions; clients should handle unknown values gracefully. */
4955
+ check: X402ValidateCheckCheck;
4956
+ /** Whether the check passed. */
4957
+ passed: boolean;
4958
+ /** A human-readable explanation of the check result. */
4959
+ detail: string;
4960
+ /** The value the check expected, when applicable. */
4961
+ expected?: string;
4962
+ /** The value the check observed, when applicable. */
4963
+ actual?: string;
4964
+ /** Whether this check is a hard indexing requirement or a quality recommendation. A `required` check affects validity when it fails. An `advisory` check (for example, a missing output schema) is a suggestion to improve discoverability and does not make the endpoint invalid. */
4965
+ severity: X402ValidateCheckSeverity;
4966
+ }
4967
+ /**
4968
+ * The simulated facilitator outcome: `accepted` if the facilitator would index the resource, or `rejected` if it would reject it.
4969
+ */
4970
+ export type X402ValidateSimulationOutcome = (typeof X402ValidateSimulationOutcome)[keyof typeof X402ValidateSimulationOutcome];
4971
+ export declare const X402ValidateSimulationOutcome: {
4972
+ readonly accepted: "accepted";
4973
+ readonly rejected: "rejected";
4974
+ };
4975
+ /**
4976
+ * The simulated facilitator decision for the x402 endpoint.
4977
+ */
4978
+ export interface X402ValidateSimulation {
4979
+ /** The simulated facilitator outcome: `accepted` if the facilitator would index the resource, or `rejected` if it would reject it. */
4980
+ outcome: X402ValidateSimulationOutcome;
4981
+ /** The reason the resource would be rejected, present only when `outcome` is `rejected`. */
4982
+ rejectionReason?: string;
4983
+ }
4984
+ /**
4985
+ * Bazaar index status for a validated x402 endpoint.
4986
+ */
4987
+ export interface X402ValidateIndex {
4988
+ /** Whether the indexed resource is active and served in discovery results. */
4989
+ active: boolean;
4990
+ /**
4991
+ * When the endpoint was last crawled, or `null` if it has been indexed but not yet crawled.
4992
+ * @nullable
4993
+ */
4994
+ lastCrawledAt: string | null;
4995
+ /** Quality metrics for the indexed resource, present only when the endpoint has call history. */
4996
+ quality?: X402ResourceQuality;
4997
+ }
4998
+ /**
4999
+ * The raw decoded payment requirements returned by the endpoint, or `null` if the endpoint was not reachable or did not return a parseable 402 payload. Lets sellers inspect exactly what their endpoint is advertising.
5000
+ * @nullable
5001
+ */
5002
+ export type X402ValidateResponsePaymentRequirements = X402PaymentRequirements | null;
5003
+ /**
5004
+ * The `extensions.bazaar` block from the endpoint's discovery metadata, or `null` if the bazaar extension was absent or the endpoint was not reachable. Lets sellers verify the discovery configuration their endpoint is advertising.
5005
+ * @nullable
5006
+ */
5007
+ export type X402ValidateResponseBazaarExtension = {
5008
+ [key: string]: unknown;
5009
+ } | null;
5010
+ /**
5011
+ * Bazaar index status for the endpoint, or `null` if the endpoint is not yet indexed. Present on every response regardless of simulation outcome.
5012
+ * @nullable
5013
+ */
5014
+ export type X402ValidateResponseIndex = X402ValidateIndex | null;
5015
+ /**
5016
+ * Response from validating an x402 endpoint's bazaar-discovery configuration.
5017
+ */
5018
+ export interface X402ValidateResponse {
5019
+ /** Whether the endpoint is valid: all preflight checks passed and the facilitator would index the resource. */
5020
+ valid: boolean;
5021
+ /**
5022
+ * The HTTP status code returned by the endpoint, or `null` if the endpoint was not reachable.
5023
+ * @nullable
5024
+ */
5025
+ statusCode: number | null;
5026
+ /**
5027
+ * The x402 protocol version advertised by the endpoint, or `null` if it could not be determined. Intentionally a bare integer rather than the `X402Version` enum so the validator can surface unsupported or malformed version values returned by non-conforming endpoints.
5028
+ * @nullable
5029
+ */
5030
+ x402Version: number | null;
5031
+ /** All check results in run order. Well-known check names are `reachable`, `returns_402`, `has_bazaar_extension`, and `parse`. Additional checks may be added in future versions. */
5032
+ preflight: X402ValidateCheck[];
5033
+ /**
5034
+ * The raw decoded payment requirements returned by the endpoint, or `null` if the endpoint was not reachable or did not return a parseable 402 payload. Lets sellers inspect exactly what their endpoint is advertising.
5035
+ * @nullable
5036
+ */
5037
+ paymentRequirements: X402ValidateResponsePaymentRequirements;
5038
+ /**
5039
+ * The `extensions.bazaar` block from the endpoint's discovery metadata, or `null` if the bazaar extension was absent or the endpoint was not reachable. Lets sellers verify the discovery configuration their endpoint is advertising.
5040
+ * @nullable
5041
+ */
5042
+ bazaarExtension: X402ValidateResponseBazaarExtension;
5043
+ simulation: X402ValidateSimulation;
5044
+ /**
5045
+ * Bazaar index status for the endpoint, or `null` if the endpoint is not yet indexed. Present on every response regardless of simulation outcome.
5046
+ * @nullable
5047
+ */
5048
+ index: X402ValidateResponseIndex;
5049
+ }
5050
+ /**
5051
+ * The OTP delivery channel.
5052
+ */
5053
+ export type InitiateOnrampVerificationRequestChannel = (typeof InitiateOnrampVerificationRequestChannel)[keyof typeof InitiateOnrampVerificationRequestChannel];
5054
+ export declare const InitiateOnrampVerificationRequestChannel: {
5055
+ readonly sms: "sms";
5056
+ readonly email: "email";
5057
+ };
5058
+ /**
5059
+ * The phone number or email address to send the OTP to.
5060
+ */
5061
+ export type InitiateOnrampVerificationRequestDestination = PhoneNumber | Email;
5062
+ /**
5063
+ * Request body for initiating an onramp OTP verification.
5064
+ */
5065
+ export interface InitiateOnrampVerificationRequest {
5066
+ /** The OTP delivery channel. */
5067
+ channel: InitiateOnrampVerificationRequestChannel;
5068
+ /** The phone number or email address to send the OTP to. */
5069
+ destination: InitiateOnrampVerificationRequestDestination;
5070
+ }
5071
+ /**
5072
+ * A unique identifier for an onramp verification record, in the format `onramp_verification_<uuid>`.
5073
+ * @pattern ^onramp_verification_[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
5074
+ */
5075
+ export type OnrampVerificationId = string;
5076
+ /**
5077
+ * The result of initiating an onramp OTP verification.
5078
+ */
5079
+ export interface OnrampVerificationInitiation {
5080
+ /** Identifier returned by this endpoint. Pass to the Submit Onramp Verification endpoint along with the OTP code within 10 minutes. */
5081
+ verificationId: OnrampVerificationId;
5082
+ /** The deadline for submitting the OTP code (10 minutes from now). */
5083
+ otpExpiresAt: string;
5084
+ }
5085
+ /**
5086
+ * Request body for submitting an OTP code to complete an onramp verification.
5087
+ */
5088
+ export interface SubmitOnrampVerificationRequest {
5089
+ /**
5090
+ * The 6-digit OTP code the user received.
5091
+ * @pattern ^\d{6}$
5092
+ */
5093
+ otpCode: string;
5094
+ }
5095
+ /**
5096
+ * The result of successfully submitting an onramp OTP verification.
5097
+ */
5098
+ export interface OnrampVerificationConfirmation {
5099
+ /** The same verification ID. Store on the user's device and pass to the Create Onramp Order endpoint. Valid for 60 days. */
5100
+ verificationId: OnrampVerificationId;
5101
+ /** The date and time when this verification expires for order placement. */
5102
+ verificationExpiresAt: string;
5103
+ }
4812
5104
  /**
4813
5105
  * The type of payment method to be used to complete an onramp order.
4814
5106
  */
@@ -4918,6 +5210,40 @@ export declare const OnrampQuotePaymentMethodTypeId: {
4918
5210
  * @pattern ^.*://.*$
4919
5211
  */
4920
5212
  export type Uri = string;
5213
+ /**
5214
+ * Common request parameters shared by [Create Onramp Session](#operation/createOnrampSession) and [Create Onramp Mobile Challenge](#operation/createOnrampMobileChallenge).
5215
+ */
5216
+ export interface OnrampSessionRequest {
5217
+ /** The ticker (e.g. `BTC`, `USDC`, `SOL`) or the Coinbase UUID (e.g. `d85dce9b-5b73-5c3c-8978-522ce1d1c1b4`) of the crypto asset to be purchased.
5218
+
5219
+ Use the [Onramp Buy Options API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-buy-options) to discover the supported purchase currencies for your user's location. */
5220
+ purchaseCurrency: string;
5221
+ /** The name of the crypto network the purchased currency will be sent on.
5222
+
5223
+ Use the [Onramp Buy Options API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-buy-options) to discover the supported networks for your user's location. */
5224
+ destinationNetwork: string;
5225
+ /** The address the purchased crypto will be sent to. */
5226
+ destinationAddress: BlockchainAddress;
5227
+ /** A string representing the amount of fiat the user wishes to pay in exchange for crypto. When using this parameter, the returned quote will be inclusive of fees i.e. the user will pay this exact amount of the payment currency. */
5228
+ paymentAmount?: string;
5229
+ /** A string representing the amount of crypto the user wishes to purchase. When using this parameter, the returned quote will be exclusive of fees i.e. the user will receive this exact amount of the purchase currency. */
5230
+ purchaseAmount?: string;
5231
+ /** The fiat currency to be converted to crypto. */
5232
+ paymentCurrency?: string;
5233
+ paymentMethod?: OnrampQuotePaymentMethodTypeId;
5234
+ /** The ISO 3166-1 two letter country code (e.g. US). */
5235
+ country?: string;
5236
+ /** The ISO 3166-2 two letter state code (e.g. NY). Only required for US. */
5237
+ subdivision?: string;
5238
+ /** URI to redirect the user to after they complete or dismiss the transaction. Embedded in the returned onramp URL as a query parameter. */
5239
+ redirectUrl?: Uri;
5240
+ /** The IP address of the end user requesting the onramp transaction. */
5241
+ clientIp?: string;
5242
+ /** A unique string that represents the user in your app. This can be used to link individual transactions together so you can retrieve the transaction history for your users. Prefix this string with "sandbox-" (e.g. "sandbox-user-1234") to perform a sandbox transaction which will allow you to test your integration without any real transfer of funds.
5243
+
5244
+ This value can be used with the [Onramp User Transactions API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-onramp-transactions-by-id) to retrieve all transactions created by the user. */
5245
+ partnerUserRef?: string;
5246
+ }
4921
5247
  /**
4922
5248
  * An onramp session containing a ready-to-use onramp URL.
4923
5249
  */
@@ -4998,8 +5324,8 @@ export interface OnrampLimitUpgradeRequest {
4998
5324
  /** The user identifier value. For `phone_number` type, this must be in E.164 format. */
4999
5325
  userId: string;
5000
5326
  userIdType: OnrampUserIdType;
5001
- /** Populate the properties that correspond to the `fields` array from the user's `OnrampLimitUpgradeOption`. */
5002
- fields: OnrampLimitUpgradeIdentityFields;
5327
+ /** Populate the properties that correspond to the `fields` array from the user's `OnrampLimitUpgradeOption`. These fields are required; a request without them is rejected. */
5328
+ fields?: OnrampLimitUpgradeIdentityFields;
5003
5329
  }
5004
5330
  /**
5005
5331
  * The ID of the Payment Method, which is a UUID prefixed by the string `paymentMethod_`.
@@ -5156,6 +5482,674 @@ export type SepaPaymentMethod = PaymentMethodBase & SepaPaymentMethodAllOf & {
5156
5482
  The `paymentRail` field indicates which type-specific details object is present. Type-specific fields are nested under a key matching the rail name (e.g., `fedwire`, `swift`).
5157
5483
  */
5158
5484
  export type PaymentMethodsPaymentMethod = FedwirePaymentMethod | SwiftPaymentMethod | SepaPaymentMethod;
5485
+ /**
5486
+ * Decoded event parameters from the contract event. Keys correspond to the named arguments in the event signature (e.g., `from`, `to`, `value` for an ERC-20 `Transfer`). Values are returned as strings to preserve precision for large integers and to avoid loss for address types. The exact set of keys depends on the contract event.
5487
+ */
5488
+ export interface OnchainActivityEventParameters {
5489
+ [key: string]: string;
5490
+ }
5491
+ /**
5492
+ * The payload delivered when onchain activity matching your subscription filters is detected. Each event corresponds to a single decoded contract log emitted onchain. The set of keys in `parameters` varies by the contract event being decoded (e.g., `Transfer(address,address,uint256)`).
5493
+ */
5494
+ export interface OnchainActivityDetectedEvent {
5495
+ /** The block number containing the transaction that emitted the event. */
5496
+ block_number: number;
5497
+ /** The contract address that emitted the event. */
5498
+ contract_address: string;
5499
+ /** The name of the decoded contract event. */
5500
+ event_name: string;
5501
+ /** The canonical event signature used to decode the log, including parameter types (e.g., `Transfer(address,address,uint256)`). */
5502
+ event_signature: string;
5503
+ /** The zero-based index of the log within the transaction. */
5504
+ log_index: number;
5505
+ /** The blockchain network where the activity was detected. */
5506
+ network: string;
5507
+ parameters: OnchainActivityEventParameters;
5508
+ /** The block timestamp of the transaction (ISO 8601 format). */
5509
+ timestamp: string;
5510
+ /** The address that initiated the transaction (the transaction sender). */
5511
+ transaction_from: string;
5512
+ /** The hash of the transaction that emitted the event. */
5513
+ transaction_hash: string;
5514
+ /** The address the transaction was sent to (typically a contract address). */
5515
+ transaction_to: string;
5516
+ }
5517
+ /**
5518
+ * Decoded blockchain event data for the wallet activity webhook. The exact fields depend on the type of onchain activity detected. Common fields include network, block info, and transaction hash. Additional fields are event-specific (e.g., `from`, `to`, `value` for transfers).
5519
+ */
5520
+ export interface OnchainActivityEventData {
5521
+ /** The blockchain network where the activity was detected. */
5522
+ network: string;
5523
+ /** The block number containing the transaction. */
5524
+ blockNumber?: string;
5525
+ /** The timestamp of the block. */
5526
+ blockTimestamp?: string;
5527
+ /** The transaction hash of the detected activity. */
5528
+ transactionHash: string;
5529
+ /** The log index within the transaction. */
5530
+ logIndex?: string;
5531
+ /** The contract address that emitted the event. */
5532
+ contractAddress?: string;
5533
+ /** The name of the decoded contract event. */
5534
+ eventName?: string;
5535
+ [key: string]: unknown;
5536
+ }
5537
+ /**
5538
+ * Common fields included in every wallet activity webhook event payload.
5539
+ */
5540
+ export interface WalletActivityEventBase {
5541
+ /** Unique identifier for this webhook event. Use this for idempotency. */
5542
+ eventId: string;
5543
+ /** When this event occurred (ISO 8601 format). */
5544
+ timestamp: string;
5545
+ data: OnchainActivityEventData;
5546
+ }
5547
+ /**
5548
+ * The type of webhook event.
5549
+ */
5550
+ export type WalletActivityDetectedEventAllOfEventType = (typeof WalletActivityDetectedEventAllOfEventType)[keyof typeof WalletActivityDetectedEventAllOfEventType];
5551
+ export declare const WalletActivityDetectedEventAllOfEventType: {
5552
+ readonly walletactivitydetected: "wallet.activity.detected";
5553
+ };
5554
+ export type WalletActivityDetectedEventAllOf = {
5555
+ /** The type of webhook event. */
5556
+ eventType: WalletActivityDetectedEventAllOfEventType;
5557
+ };
5558
+ export type WalletActivityDetectedEvent = WalletActivityEventBase & WalletActivityDetectedEventAllOf;
5559
+ /**
5560
+ * The type of webhook event.
5561
+ */
5562
+ export type WalletActivityMultiEventAllOfEventType = (typeof WalletActivityMultiEventAllOfEventType)[keyof typeof WalletActivityMultiEventAllOfEventType];
5563
+ export declare const WalletActivityMultiEventAllOfEventType: {
5564
+ readonly walletactivitymulti: "wallet.activity.multi";
5565
+ };
5566
+ export type WalletActivityMultiEventAllOf = {
5567
+ /** The type of webhook event. */
5568
+ eventType: WalletActivityMultiEventAllOfEventType;
5569
+ };
5570
+ export type WalletActivityMultiEvent = WalletActivityEventBase & WalletActivityMultiEventAllOf;
5571
+ /**
5572
+ * Payload for `wallet.transaction.created` on EVM networks. Includes the originating `address`.
5573
+ */
5574
+ export interface WalletEvmTransactionCreatedPayload {
5575
+ /**
5576
+ * The EVM wallet address that created the transaction.
5577
+ * @pattern ^0x[0-9a-fA-F]{40}$
5578
+ */
5579
+ address: BlockchainAddress;
5580
+ /** The blockchain network identifier. */
5581
+ network: Network;
5582
+ /** When the transaction was created (ISO 8601 format). */
5583
+ created_at: string;
5584
+ }
5585
+ /**
5586
+ * Payload for API Key Wallet events. These events carry no end-user payload fields, so neither `user_id` nor `delegation_id` is present.
5587
+ */
5588
+ export interface WalletApiKeyEventPayload {
5589
+ [key: string]: unknown;
5590
+ }
5591
+ /**
5592
+ * Payload for `wallet.transaction.created` on Solana. Solana transaction events do not include an `address`.
5593
+ */
5594
+ export interface WalletSolanaTransactionCreatedPayload {
5595
+ /** The blockchain network identifier. */
5596
+ network: Network;
5597
+ /** When the transaction was created (ISO 8601 format). */
5598
+ created_at: string;
5599
+ }
5600
+ /**
5601
+ * Payload for User Wallet events. The wallet is owned by an end user, identified by `user_id`. User Wallet actions do not include `delegation_id`.
5602
+ */
5603
+ export interface WalletUserEventPayload {
5604
+ /** The user ID that owns the User Wallet. */
5605
+ user_id: string;
5606
+ }
5607
+ /**
5608
+ * Payload for delegated User Wallet events, where a User Wallet action was authorized via a delegation grant. Includes `user_id` and the `delegation_id` of the active grant.
5609
+ */
5610
+ export interface WalletDelegatedEventPayload {
5611
+ /** The user ID that owns the User Wallet. */
5612
+ user_id: string;
5613
+ /** The delegation grant ID used to authorize the action. */
5614
+ delegation_id: string;
5615
+ }
5616
+ export type WalletTransactionCreatedEventOneOf = WalletEvmTransactionCreatedPayload & WalletApiKeyEventPayload;
5617
+ export type WalletTransactionCreatedEventOneOfTwo = WalletSolanaTransactionCreatedPayload & WalletApiKeyEventPayload;
5618
+ export type WalletTransactionCreatedEventOneOfThree = WalletEvmTransactionCreatedPayload & WalletUserEventPayload;
5619
+ export type WalletTransactionCreatedEventOneOfFour = WalletSolanaTransactionCreatedPayload & WalletUserEventPayload;
5620
+ export type WalletTransactionCreatedEventOneOfFive = WalletEvmTransactionCreatedPayload & WalletDelegatedEventPayload;
5621
+ export type WalletTransactionCreatedEventOneOfSix = WalletSolanaTransactionCreatedPayload & WalletDelegatedEventPayload;
5622
+ /**
5623
+ * Delivered when a transaction is created. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5624
+ */
5625
+ export type WalletTransactionCreatedEvent = WalletTransactionCreatedEventOneOf | WalletTransactionCreatedEventOneOfTwo | WalletTransactionCreatedEventOneOfThree | WalletTransactionCreatedEventOneOfFour | WalletTransactionCreatedEventOneOfFive | WalletTransactionCreatedEventOneOfSix;
5626
+ /**
5627
+ * Payload for EVM wallet signing events. Carries the EVM signing `address` and timestamp; no network or transaction identifier.
5628
+ */
5629
+ export interface WalletEvmSigningPayload {
5630
+ /**
5631
+ * The EVM wallet address that performed the signing.
5632
+ * @pattern ^0x[0-9a-fA-F]{40}$
5633
+ */
5634
+ address: BlockchainAddress;
5635
+ /** When the signing occurred (ISO 8601 format). */
5636
+ signed_at: string;
5637
+ }
5638
+ /**
5639
+ * Payload for Solana wallet signing events. Carries the Solana signing `address` and timestamp; no network or transaction identifier.
5640
+ */
5641
+ export interface WalletSolanaSigningPayload {
5642
+ /**
5643
+ * The Solana wallet address that performed the signing.
5644
+ * @pattern ^[1-9A-HJ-NP-Za-km-z]{32,44}$
5645
+ */
5646
+ address: BlockchainAddress;
5647
+ /** When the signing occurred (ISO 8601 format). */
5648
+ signed_at: string;
5649
+ }
5650
+ export type WalletTransactionSignedEventOneOf = WalletEvmSigningPayload & WalletApiKeyEventPayload;
5651
+ export type WalletTransactionSignedEventOneOfTwo = WalletSolanaSigningPayload & WalletApiKeyEventPayload;
5652
+ export type WalletTransactionSignedEventOneOfThree = WalletEvmSigningPayload & WalletUserEventPayload;
5653
+ export type WalletTransactionSignedEventOneOfFour = WalletSolanaSigningPayload & WalletUserEventPayload;
5654
+ export type WalletTransactionSignedEventOneOfFive = WalletEvmSigningPayload & WalletDelegatedEventPayload;
5655
+ export type WalletTransactionSignedEventOneOfSix = WalletSolanaSigningPayload & WalletDelegatedEventPayload;
5656
+ /**
5657
+ * Delivered when a transaction is signed. Emitted for both EVM and Solana wallets. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5658
+ */
5659
+ export type WalletTransactionSignedEvent = WalletTransactionSignedEventOneOf | WalletTransactionSignedEventOneOfTwo | WalletTransactionSignedEventOneOfThree | WalletTransactionSignedEventOneOfFour | WalletTransactionSignedEventOneOfFive | WalletTransactionSignedEventOneOfSix;
5660
+ /**
5661
+ * Payload for `wallet.transaction.broadcast` on EVM networks. Includes `transaction_hash` and `address`.
5662
+ */
5663
+ export interface WalletEvmTransactionBroadcastPayload {
5664
+ /** The onchain transaction hash. */
5665
+ transaction_hash: string;
5666
+ /**
5667
+ * The EVM wallet address that broadcast the transaction.
5668
+ * @pattern ^0x[0-9a-fA-F]{40}$
5669
+ */
5670
+ address: BlockchainAddress;
5671
+ /** The blockchain network identifier. */
5672
+ network: Network;
5673
+ /** When the transaction was broadcast (ISO 8601 format). */
5674
+ broadcast_at: string;
5675
+ }
5676
+ /**
5677
+ * Payload for `wallet.transaction.broadcast` on Solana. Includes `transaction_signature` and omits `address`.
5678
+ */
5679
+ export interface WalletSolanaTransactionBroadcastPayload {
5680
+ /** The Solana transaction signature. */
5681
+ transaction_signature: string;
5682
+ /** The blockchain network identifier. */
5683
+ network: Network;
5684
+ /** When the transaction was broadcast (ISO 8601 format). */
5685
+ broadcast_at: string;
5686
+ }
5687
+ export type WalletTransactionBroadcastEventOneOf = WalletEvmTransactionBroadcastPayload & WalletApiKeyEventPayload;
5688
+ export type WalletTransactionBroadcastEventOneOfTwo = WalletSolanaTransactionBroadcastPayload & WalletApiKeyEventPayload;
5689
+ export type WalletTransactionBroadcastEventOneOfThree = WalletEvmTransactionBroadcastPayload & WalletUserEventPayload;
5690
+ export type WalletTransactionBroadcastEventOneOfFour = WalletSolanaTransactionBroadcastPayload & WalletUserEventPayload;
5691
+ export type WalletTransactionBroadcastEventOneOfFive = WalletEvmTransactionBroadcastPayload & WalletDelegatedEventPayload;
5692
+ export type WalletTransactionBroadcastEventOneOfSix = WalletSolanaTransactionBroadcastPayload & WalletDelegatedEventPayload;
5693
+ /**
5694
+ * Delivered when a transaction is broadcast to the network. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5695
+ */
5696
+ export type WalletTransactionBroadcastEvent = WalletTransactionBroadcastEventOneOf | WalletTransactionBroadcastEventOneOfTwo | WalletTransactionBroadcastEventOneOfThree | WalletTransactionBroadcastEventOneOfFour | WalletTransactionBroadcastEventOneOfFive | WalletTransactionBroadcastEventOneOfSix;
5697
+ /**
5698
+ * Payload for `wallet.transaction.replaced`. EVM-only; Solana transactions are not replaceable.
5699
+ */
5700
+ export interface WalletTransactionReplacedPayload {
5701
+ /** The onchain transaction hash of the replaced transaction. */
5702
+ transaction_hash: string;
5703
+ /**
5704
+ * The EVM wallet address whose transaction was replaced.
5705
+ * @pattern ^0x[0-9a-fA-F]{40}$
5706
+ */
5707
+ address: BlockchainAddress;
5708
+ /** The blockchain network identifier. */
5709
+ network: Network;
5710
+ /** When the transaction was replaced (ISO 8601 format). */
5711
+ replaced_at: string;
5712
+ }
5713
+ export type WalletTransactionReplacedEventOneOf = WalletTransactionReplacedPayload & WalletApiKeyEventPayload;
5714
+ export type WalletTransactionReplacedEventOneOfTwo = WalletTransactionReplacedPayload & WalletUserEventPayload;
5715
+ export type WalletTransactionReplacedEventOneOfThree = WalletTransactionReplacedPayload & WalletDelegatedEventPayload;
5716
+ /**
5717
+ * Delivered when a pending transaction is replaced (e.g. a fee bump). EVM-only. The payload is one of three EVM wallet-type variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing).
5718
+ */
5719
+ export type WalletTransactionReplacedEvent = WalletTransactionReplacedEventOneOf | WalletTransactionReplacedEventOneOfTwo | WalletTransactionReplacedEventOneOfThree;
5720
+ /**
5721
+ * Payload for `wallet.transaction.pending`. EVM-only. EIP-1559 fee fields are included.
5722
+ */
5723
+ export interface WalletTransactionPendingPayload {
5724
+ /** The onchain transaction hash. */
5725
+ transaction_hash: string;
5726
+ /**
5727
+ * The EVM wallet address whose transaction is pending.
5728
+ * @pattern ^0x[0-9a-fA-F]{40}$
5729
+ */
5730
+ address: BlockchainAddress;
5731
+ /** The blockchain network identifier. */
5732
+ network: Network;
5733
+ /** When the transaction entered the pending state (ISO 8601 format). */
5734
+ pending_since: string;
5735
+ /** EIP-1559 max fee per gas in wei. */
5736
+ max_fee_per_gas: string;
5737
+ /** EIP-1559 max priority fee per gas in wei. */
5738
+ max_priority_fee_per_gas: string;
5739
+ }
5740
+ export type WalletTransactionPendingEventOneOf = WalletTransactionPendingPayload & WalletApiKeyEventPayload;
5741
+ export type WalletTransactionPendingEventOneOfTwo = WalletTransactionPendingPayload & WalletUserEventPayload;
5742
+ export type WalletTransactionPendingEventOneOfThree = WalletTransactionPendingPayload & WalletDelegatedEventPayload;
5743
+ /**
5744
+ * Delivered when a transaction enters the pending state. EVM-only. The payload is one of three EVM wallet-type variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing).
5745
+ */
5746
+ export type WalletTransactionPendingEvent = WalletTransactionPendingEventOneOf | WalletTransactionPendingEventOneOfTwo | WalletTransactionPendingEventOneOfThree;
5747
+ /**
5748
+ * Payload for `wallet.transaction.confirmed` on EVM networks. Includes `transaction_hash` and `address`.
5749
+ */
5750
+ export interface WalletEvmTransactionConfirmedPayload {
5751
+ /** The onchain transaction hash. */
5752
+ transaction_hash: string;
5753
+ /**
5754
+ * The EVM wallet address that submitted the transaction.
5755
+ * @pattern ^0x[0-9a-fA-F]{40}$
5756
+ */
5757
+ address: BlockchainAddress;
5758
+ /** The blockchain network identifier. */
5759
+ network: Network;
5760
+ /** When the transaction was confirmed (ISO 8601 format). */
5761
+ confirmed_at: string;
5762
+ }
5763
+ /**
5764
+ * Payload for `wallet.transaction.confirmed` on Solana. Includes `transaction_signature` and omits `address`.
5765
+ */
5766
+ export interface WalletSolanaTransactionConfirmedPayload {
5767
+ /** The Solana transaction signature. */
5768
+ transaction_signature: string;
5769
+ /** The blockchain network identifier. */
5770
+ network: Network;
5771
+ /** When the transaction was confirmed (ISO 8601 format). */
5772
+ confirmed_at: string;
5773
+ }
5774
+ export type WalletTransactionConfirmedEventOneOf = WalletEvmTransactionConfirmedPayload & WalletApiKeyEventPayload;
5775
+ export type WalletTransactionConfirmedEventOneOfTwo = WalletSolanaTransactionConfirmedPayload & WalletApiKeyEventPayload;
5776
+ export type WalletTransactionConfirmedEventOneOfThree = WalletEvmTransactionConfirmedPayload & WalletUserEventPayload;
5777
+ export type WalletTransactionConfirmedEventOneOfFour = WalletSolanaTransactionConfirmedPayload & WalletUserEventPayload;
5778
+ export type WalletTransactionConfirmedEventOneOfFive = WalletEvmTransactionConfirmedPayload & WalletDelegatedEventPayload;
5779
+ export type WalletTransactionConfirmedEventOneOfSix = WalletSolanaTransactionConfirmedPayload & WalletDelegatedEventPayload;
5780
+ /**
5781
+ * Delivered when a transaction is confirmed onchain. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5782
+ */
5783
+ export type WalletTransactionConfirmedEvent = WalletTransactionConfirmedEventOneOf | WalletTransactionConfirmedEventOneOfTwo | WalletTransactionConfirmedEventOneOfThree | WalletTransactionConfirmedEventOneOfFour | WalletTransactionConfirmedEventOneOfFive | WalletTransactionConfirmedEventOneOfSix;
5784
+ /**
5785
+ * Payload for `wallet.transaction.failed` on EVM networks. Includes `transaction_hash` and `address`.
5786
+ */
5787
+ export interface WalletEvmTransactionFailedPayload {
5788
+ /** The onchain transaction hash. */
5789
+ transaction_hash: string;
5790
+ /**
5791
+ * The EVM wallet address that submitted the transaction.
5792
+ * @pattern ^0x[0-9a-fA-F]{40}$
5793
+ */
5794
+ address: BlockchainAddress;
5795
+ /** The blockchain network identifier. */
5796
+ network: Network;
5797
+ /** When the transaction failed (ISO 8601 format). */
5798
+ failed_at: string;
5799
+ }
5800
+ /**
5801
+ * Payload for `wallet.transaction.failed` on Solana. Includes `transaction_signature` and omits `address`.
5802
+ */
5803
+ export interface WalletSolanaTransactionFailedPayload {
5804
+ /** The Solana transaction signature. */
5805
+ transaction_signature: string;
5806
+ /** The blockchain network identifier. */
5807
+ network: Network;
5808
+ /** When the transaction failed (ISO 8601 format). */
5809
+ failed_at: string;
5810
+ }
5811
+ export type WalletTransactionFailedEventOneOf = WalletEvmTransactionFailedPayload & WalletApiKeyEventPayload;
5812
+ export type WalletTransactionFailedEventOneOfTwo = WalletSolanaTransactionFailedPayload & WalletApiKeyEventPayload;
5813
+ export type WalletTransactionFailedEventOneOfThree = WalletEvmTransactionFailedPayload & WalletUserEventPayload;
5814
+ export type WalletTransactionFailedEventOneOfFour = WalletSolanaTransactionFailedPayload & WalletUserEventPayload;
5815
+ export type WalletTransactionFailedEventOneOfFive = WalletEvmTransactionFailedPayload & WalletDelegatedEventPayload;
5816
+ export type WalletTransactionFailedEventOneOfSix = WalletSolanaTransactionFailedPayload & WalletDelegatedEventPayload;
5817
+ /**
5818
+ * Delivered when a transaction fails. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5819
+ */
5820
+ export type WalletTransactionFailedEvent = WalletTransactionFailedEventOneOf | WalletTransactionFailedEventOneOfTwo | WalletTransactionFailedEventOneOfThree | WalletTransactionFailedEventOneOfFour | WalletTransactionFailedEventOneOfFive | WalletTransactionFailedEventOneOfSix;
5821
+ /**
5822
+ * Delivered when a delegation grant is created for a User Wallet.
5823
+ */
5824
+ export interface WalletDelegationCreatedEvent {
5825
+ /** The unique identifier for the delegation grant. */
5826
+ delegation_id: string;
5827
+ /** The user ID that owns the delegation. */
5828
+ user_id: string;
5829
+ /** When the delegation expires (ISO 8601 format). */
5830
+ expires_at: string;
5831
+ /** When the delegation was created (ISO 8601 format). */
5832
+ created_at: string;
5833
+ }
5834
+ /**
5835
+ * Delivered when a delegation grant is revoked.
5836
+ */
5837
+ export interface WalletDelegationRevokedEvent {
5838
+ /** The unique identifier for the delegation grant. */
5839
+ delegation_id: string;
5840
+ /** The user ID that owns the delegation. */
5841
+ user_id: string;
5842
+ /** When the delegation was revoked (ISO 8601 format). */
5843
+ revoked_at: string;
5844
+ }
5845
+ export type WalletTypedDataSignedEventOneOf = WalletEvmSigningPayload & WalletApiKeyEventPayload;
5846
+ export type WalletTypedDataSignedEventOneOfTwo = WalletEvmSigningPayload & WalletUserEventPayload;
5847
+ export type WalletTypedDataSignedEventOneOfThree = WalletEvmSigningPayload & WalletDelegatedEventPayload;
5848
+ /**
5849
+ * Delivered when EIP-712 typed data is signed. EVM-only. Uses the EVM signing payload. The payload is one of three EVM wallet-type variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing).
5850
+ */
5851
+ export type WalletTypedDataSignedEvent = WalletTypedDataSignedEventOneOf | WalletTypedDataSignedEventOneOfTwo | WalletTypedDataSignedEventOneOfThree;
5852
+ export type WalletMessageSignedEventOneOf = WalletEvmSigningPayload & WalletApiKeyEventPayload;
5853
+ export type WalletMessageSignedEventOneOfTwo = WalletSolanaSigningPayload & WalletApiKeyEventPayload;
5854
+ export type WalletMessageSignedEventOneOfThree = WalletEvmSigningPayload & WalletUserEventPayload;
5855
+ export type WalletMessageSignedEventOneOfFour = WalletSolanaSigningPayload & WalletUserEventPayload;
5856
+ export type WalletMessageSignedEventOneOfFive = WalletEvmSigningPayload & WalletDelegatedEventPayload;
5857
+ export type WalletMessageSignedEventOneOfSix = WalletSolanaSigningPayload & WalletDelegatedEventPayload;
5858
+ /**
5859
+ * Delivered when a message is signed. Emitted for both EVM and Solana wallets. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5860
+ */
5861
+ export type WalletMessageSignedEvent = WalletMessageSignedEventOneOf | WalletMessageSignedEventOneOfTwo | WalletMessageSignedEventOneOfThree | WalletMessageSignedEventOneOfFour | WalletMessageSignedEventOneOfFive | WalletMessageSignedEventOneOfSix;
5862
+ export type WalletHashSignedEventOneOf = WalletEvmSigningPayload & WalletApiKeyEventPayload;
5863
+ export type WalletHashSignedEventOneOfTwo = WalletSolanaSigningPayload & WalletApiKeyEventPayload;
5864
+ export type WalletHashSignedEventOneOfThree = WalletEvmSigningPayload & WalletUserEventPayload;
5865
+ export type WalletHashSignedEventOneOfFour = WalletSolanaSigningPayload & WalletUserEventPayload;
5866
+ export type WalletHashSignedEventOneOfFive = WalletEvmSigningPayload & WalletDelegatedEventPayload;
5867
+ export type WalletHashSignedEventOneOfSix = WalletSolanaSigningPayload & WalletDelegatedEventPayload;
5868
+ /**
5869
+ * Delivered when a raw hash is signed. Emitted for both EVM and Solana wallets. The payload is one of six variants: API Key Wallet, User Wallet, or User Wallet (Delegated Signing), each delivered as an EVM or Solana variant.
5870
+ */
5871
+ export type WalletHashSignedEvent = WalletHashSignedEventOneOf | WalletHashSignedEventOneOfTwo | WalletHashSignedEventOneOfThree | WalletHashSignedEventOneOfFour | WalletHashSignedEventOneOfFive | WalletHashSignedEventOneOfSix;
5872
+ /**
5873
+ * A monetary amount with currency.
5874
+ */
5875
+ export interface MoneyAmount {
5876
+ /** Currency code (e.g., "USD", "USDC", "ETH"). */
5877
+ currency: string;
5878
+ /** The amount as a string. */
5879
+ value: string;
5880
+ }
5881
+ /**
5882
+ * Current status of the transaction.
5883
+ */
5884
+ export type OnrampTransactionPayloadStatus = (typeof OnrampTransactionPayloadStatus)[keyof typeof OnrampTransactionPayloadStatus];
5885
+ export declare const OnrampTransactionPayloadStatus: {
5886
+ readonly ONRAMP_TRANSACTION_STATUS_UNSPECIFIED: "ONRAMP_TRANSACTION_STATUS_UNSPECIFIED";
5887
+ readonly ONRAMP_TRANSACTION_STATUS_CREATED: "ONRAMP_TRANSACTION_STATUS_CREATED";
5888
+ readonly ONRAMP_TRANSACTION_STATUS_IN_PROGRESS: "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS";
5889
+ readonly ONRAMP_TRANSACTION_STATUS_SUCCESS: "ONRAMP_TRANSACTION_STATUS_SUCCESS";
5890
+ readonly ONRAMP_TRANSACTION_STATUS_FAILED: "ONRAMP_TRANSACTION_STATUS_FAILED";
5891
+ readonly ONRAMP_TRANSACTION_STATUS_AWAITING_AUTH: "ONRAMP_TRANSACTION_STATUS_AWAITING_AUTH";
5892
+ readonly ONRAMP_TRANSACTION_STATUS_AWAITING_PAYMENT: "ONRAMP_TRANSACTION_STATUS_AWAITING_PAYMENT";
5893
+ };
5894
+ /**
5895
+ * The payment method used.
5896
+ */
5897
+ export type OnrampTransactionPayloadPaymentMethod = (typeof OnrampTransactionPayloadPaymentMethod)[keyof typeof OnrampTransactionPayloadPaymentMethod];
5898
+ export declare const OnrampTransactionPayloadPaymentMethod: {
5899
+ readonly UNSPECIFIED: "UNSPECIFIED";
5900
+ readonly CARD: "CARD";
5901
+ readonly ACH_BANK_ACCOUNT: "ACH_BANK_ACCOUNT";
5902
+ readonly APPLE_PAY: "APPLE_PAY";
5903
+ readonly FIAT_WALLET: "FIAT_WALLET";
5904
+ readonly CRYPTO_ACCOUNT: "CRYPTO_ACCOUNT";
5905
+ readonly GUEST_CHECKOUT_CARD: "GUEST_CHECKOUT_CARD";
5906
+ readonly PAYPAL: "PAYPAL";
5907
+ readonly RTP: "RTP";
5908
+ readonly GUEST_CHECKOUT_APPLE_PAY: "GUEST_CHECKOUT_APPLE_PAY";
5909
+ readonly GUEST_CHECKOUT_GOOGLE_PAY: "GUEST_CHECKOUT_GOOGLE_PAY";
5910
+ };
5911
+ /**
5912
+ * The type of onramp transaction.
5913
+ */
5914
+ export type OnrampTransactionPayloadType = (typeof OnrampTransactionPayloadType)[keyof typeof OnrampTransactionPayloadType];
5915
+ export declare const OnrampTransactionPayloadType: {
5916
+ readonly ONRAMP_TRANSACTION_TYPE_UNSPECIFIED: "ONRAMP_TRANSACTION_TYPE_UNSPECIFIED";
5917
+ readonly ONRAMP_TRANSACTION_TYPE_BUY_AND_SEND: "ONRAMP_TRANSACTION_TYPE_BUY_AND_SEND";
5918
+ readonly ONRAMP_TRANSACTION_TYPE_SEND: "ONRAMP_TRANSACTION_TYPE_SEND";
5919
+ };
5920
+ /**
5921
+ * Whether the user is authed or guest.
5922
+ */
5923
+ export type OnrampTransactionPayloadUserType = (typeof OnrampTransactionPayloadUserType)[keyof typeof OnrampTransactionPayloadUserType];
5924
+ export declare const OnrampTransactionPayloadUserType: {
5925
+ readonly USER_TYPE_UNSPECIFIED: "USER_TYPE_UNSPECIFIED";
5926
+ readonly USER_TYPE_AUTHED: "USER_TYPE_AUTHED";
5927
+ readonly USER_TYPE_GUEST: "USER_TYPE_GUEST";
5928
+ };
5929
+ /**
5930
+ * The reason for failure (if applicable).
5931
+ */
5932
+ export type OnrampTransactionPayloadFailureReason = (typeof OnrampTransactionPayloadFailureReason)[keyof typeof OnrampTransactionPayloadFailureReason];
5933
+ export declare const OnrampTransactionPayloadFailureReason: {
5934
+ readonly FAILURE_REASON_UNSPECIFIED: "FAILURE_REASON_UNSPECIFIED";
5935
+ readonly FAILURE_REASON_BUY_FAILED: "FAILURE_REASON_BUY_FAILED";
5936
+ readonly FAILURE_REASON_SEND_FAILED: "FAILURE_REASON_SEND_FAILED";
5937
+ };
5938
+ /**
5939
+ * Webhook payload for standard onramp transactions (guest checkout and authed flow). Serialized from the OnrampTransaction proto via protojson with eventType appended.
5940
+ */
5941
+ export interface OnrampTransactionPayload {
5942
+ /** The webhook event type. */
5943
+ eventType: string;
5944
+ /** Unique transaction identifier. */
5945
+ transactionId: string;
5946
+ /** Current status of the transaction. */
5947
+ status: OnrampTransactionPayloadStatus;
5948
+ /** The crypto currency purchased (e.g., "USDC", "ETH"). */
5949
+ purchaseCurrency?: string;
5950
+ /** The blockchain network for the purchase (e.g., "ethereum", "base"). */
5951
+ purchaseNetwork?: string;
5952
+ purchaseAmount?: MoneyAmount;
5953
+ paymentTotal?: MoneyAmount;
5954
+ paymentTotalUsd?: MoneyAmount;
5955
+ paymentSubtotal?: MoneyAmount;
5956
+ coinbaseFee?: MoneyAmount;
5957
+ networkFee?: MoneyAmount;
5958
+ exchangeRate?: MoneyAmount;
5959
+ /** The onchain transaction hash of the send (0x-prefixed for EVM). */
5960
+ txHash?: string;
5961
+ /** When the transaction was created. */
5962
+ createdAt?: string;
5963
+ /** When the transaction completed (uses send_started_at for early success). */
5964
+ completedAt?: string;
5965
+ /** The user's country code. */
5966
+ country?: string;
5967
+ /** Hashed user identifier (entity hash for guest, user ID for authed). */
5968
+ userId?: string;
5969
+ /** The payment method used. */
5970
+ paymentMethod?: OnrampTransactionPayloadPaymentMethod;
5971
+ /** The destination wallet address. */
5972
+ walletAddress?: string;
5973
+ /** The type of onramp transaction. */
5974
+ type?: OnrampTransactionPayloadType;
5975
+ /** Whether the user is authed or guest. */
5976
+ userType?: OnrampTransactionPayloadUserType;
5977
+ /** The partnerUserId provided when initializing the onramp session. */
5978
+ partnerUserRef?: string;
5979
+ /** The token contract address (populated when asset metadata is available). */
5980
+ contractAddress?: string;
5981
+ /** The reason for failure (if applicable). */
5982
+ failureReason?: OnrampTransactionPayloadFailureReason;
5983
+ /** The name of the developer app. */
5984
+ endPartnerName?: string;
5985
+ /** Error code for the transaction failure (if applicable). */
5986
+ errorCode?: string;
5987
+ }
5988
+ /**
5989
+ * The type of fee.
5990
+ */
5991
+ export type OrderFeeFeeType = (typeof OrderFeeFeeType)[keyof typeof OrderFeeFeeType];
5992
+ export declare const OrderFeeFeeType: {
5993
+ readonly FEE_TYPE_UNSPECIFIED: "FEE_TYPE_UNSPECIFIED";
5994
+ readonly FEE_TYPE_NETWORK: "FEE_TYPE_NETWORK";
5995
+ readonly FEE_TYPE_EXCHANGE: "FEE_TYPE_EXCHANGE";
5996
+ };
5997
+ /**
5998
+ * A fee associated with a Headless Onramp API order.
5999
+ */
6000
+ export interface OrderFee {
6001
+ /** The type of fee. */
6002
+ feeType?: OrderFeeFeeType;
6003
+ /** The amount of the fee. */
6004
+ feeAmount?: string;
6005
+ /** The currency of the fee. */
6006
+ feeCurrency?: string;
6007
+ }
6008
+ /**
6009
+ * The payment method used.
6010
+ */
6011
+ export type OnrampOrderPayloadPaymentMethod = (typeof OnrampOrderPayloadPaymentMethod)[keyof typeof OnrampOrderPayloadPaymentMethod];
6012
+ export declare const OnrampOrderPayloadPaymentMethod: {
6013
+ readonly UNSPECIFIED: "UNSPECIFIED";
6014
+ readonly CARD: "CARD";
6015
+ readonly ACH_BANK_ACCOUNT: "ACH_BANK_ACCOUNT";
6016
+ readonly APPLE_PAY: "APPLE_PAY";
6017
+ readonly FIAT_WALLET: "FIAT_WALLET";
6018
+ readonly CRYPTO_ACCOUNT: "CRYPTO_ACCOUNT";
6019
+ readonly GUEST_CHECKOUT_CARD: "GUEST_CHECKOUT_CARD";
6020
+ readonly PAYPAL: "PAYPAL";
6021
+ readonly RTP: "RTP";
6022
+ readonly GUEST_CHECKOUT_APPLE_PAY: "GUEST_CHECKOUT_APPLE_PAY";
6023
+ readonly GUEST_CHECKOUT_GOOGLE_PAY: "GUEST_CHECKOUT_GOOGLE_PAY";
6024
+ };
6025
+ /**
6026
+ * The status of the order.
6027
+ */
6028
+ export type OnrampOrderPayloadStatus = (typeof OnrampOrderPayloadStatus)[keyof typeof OnrampOrderPayloadStatus];
6029
+ export declare const OnrampOrderPayloadStatus: {
6030
+ readonly ONRAMP_ORDER_STATUS_UNSPECIFIED: "ONRAMP_ORDER_STATUS_UNSPECIFIED";
6031
+ readonly ONRAMP_ORDER_STATUS_PENDING_AUTH: "ONRAMP_ORDER_STATUS_PENDING_AUTH";
6032
+ readonly ONRAMP_ORDER_STATUS_PENDING_PAYMENT: "ONRAMP_ORDER_STATUS_PENDING_PAYMENT";
6033
+ readonly ONRAMP_ORDER_STATUS_PROCESSING: "ONRAMP_ORDER_STATUS_PROCESSING";
6034
+ readonly ONRAMP_ORDER_STATUS_COMPLETED: "ONRAMP_ORDER_STATUS_COMPLETED";
6035
+ readonly ONRAMP_ORDER_STATUS_FAILED: "ONRAMP_ORDER_STATUS_FAILED";
6036
+ };
6037
+ /**
6038
+ * Webhook payload for Headless Onramp API orders (Apple Pay / Google Pay). Serialized from the OnrampOrder proto via protojson with eventType appended.
6039
+ */
6040
+ export interface OnrampOrderPayload {
6041
+ /** The webhook event type. */
6042
+ eventType: string;
6043
+ /** Unique order identifier. */
6044
+ orderId: string;
6045
+ /** The total fiat amount paid. */
6046
+ paymentTotal?: string;
6047
+ /** The fiat amount converted to crypto (excluding fees). */
6048
+ paymentSubtotal?: string;
6049
+ /** The fiat currency used for payment. */
6050
+ paymentCurrency?: string;
6051
+ /** The payment method used. */
6052
+ paymentMethod?: OnrampOrderPayloadPaymentMethod;
6053
+ /** The amount of crypto purchased. */
6054
+ purchaseAmount?: string;
6055
+ /** The crypto currency purchased. */
6056
+ purchaseCurrency?: string;
6057
+ /** Breakdown of fees for the order. */
6058
+ fees?: OrderFee[];
6059
+ /** The exchange rate used for conversion. */
6060
+ exchangeRate?: string;
6061
+ /** The destination wallet address. */
6062
+ destinationAddress?: string;
6063
+ /** The blockchain network for delivery. */
6064
+ destinationNetwork?: string;
6065
+ /** The status of the order. */
6066
+ status: OnrampOrderPayloadStatus;
6067
+ /** The onchain transaction hash (available once crypto is sent). */
6068
+ txHash?: string;
6069
+ /** When the order was created. */
6070
+ createdAt?: string;
6071
+ /** When the order was last updated. */
6072
+ updatedAt?: string;
6073
+ /** The partner user reference ID. */
6074
+ partnerUserRef?: string;
6075
+ }
6076
+ /**
6077
+ * Webhook payload for all onramp transaction events (created, updated, success, failed). Shape depends on transaction type — standard flow (guest checkout / authorized) uses OnrampTransactionPayload, Headless API (Apple Pay / Google Pay) uses OnrampOrderPayload. Distinguish by presence of `orderId` (Headless) vs `transactionId` (standard).
6078
+ */
6079
+ export type OnrampTransactionEvent = OnrampTransactionPayload | OnrampOrderPayload;
6080
+ export type OnrampTransactionCreatedEvent = OnrampTransactionEvent;
6081
+ export type OnrampTransactionUpdatedEvent = OnrampTransactionEvent;
6082
+ export type OnrampTransactionSuccessEvent = OnrampTransactionEvent;
6083
+ export type OnrampTransactionFailedEvent = OnrampTransactionEvent;
6084
+ /**
6085
+ * Current status of the offramp transaction.
6086
+ */
6087
+ export type OfframpTransactionPayloadStatus = (typeof OfframpTransactionPayloadStatus)[keyof typeof OfframpTransactionPayloadStatus];
6088
+ export declare const OfframpTransactionPayloadStatus: {
6089
+ readonly TRANSACTION_STATUS_UNSPECIFIED: "TRANSACTION_STATUS_UNSPECIFIED";
6090
+ readonly TRANSACTION_STATUS_CREATED: "TRANSACTION_STATUS_CREATED";
6091
+ readonly TRANSACTION_STATUS_EXPIRED: "TRANSACTION_STATUS_EXPIRED";
6092
+ readonly TRANSACTION_STATUS_STARTED: "TRANSACTION_STATUS_STARTED";
6093
+ readonly TRANSACTION_STATUS_SUCCESS: "TRANSACTION_STATUS_SUCCESS";
6094
+ readonly TRANSACTION_STATUS_FAILED: "TRANSACTION_STATUS_FAILED";
6095
+ };
6096
+ /**
6097
+ * The payment method type used for cashout.
6098
+ */
6099
+ export type OfframpTransactionPayloadPaymentMethod = (typeof OfframpTransactionPayloadPaymentMethod)[keyof typeof OfframpTransactionPayloadPaymentMethod];
6100
+ export declare const OfframpTransactionPayloadPaymentMethod: {
6101
+ readonly UNSPECIFIED: "UNSPECIFIED";
6102
+ readonly CARD: "CARD";
6103
+ readonly ACH_BANK_ACCOUNT: "ACH_BANK_ACCOUNT";
6104
+ readonly APPLE_PAY: "APPLE_PAY";
6105
+ readonly FIAT_WALLET: "FIAT_WALLET";
6106
+ readonly CRYPTO_ACCOUNT: "CRYPTO_ACCOUNT";
6107
+ readonly GUEST_CHECKOUT_CARD: "GUEST_CHECKOUT_CARD";
6108
+ readonly PAYPAL: "PAYPAL";
6109
+ readonly RTP: "RTP";
6110
+ readonly GUEST_CHECKOUT_APPLE_PAY: "GUEST_CHECKOUT_APPLE_PAY";
6111
+ readonly GUEST_CHECKOUT_GOOGLE_PAY: "GUEST_CHECKOUT_GOOGLE_PAY";
6112
+ };
6113
+ /**
6114
+ * Webhook payload for offramp transactions. Serialized from the OfframpTransaction proto via protojson with eventType appended.
6115
+ */
6116
+ export interface OfframpTransactionPayload {
6117
+ /** The webhook event type. */
6118
+ eventType: string;
6119
+ /** Unique transaction identifier. */
6120
+ transactionId: string;
6121
+ /** Current status of the offramp transaction. */
6122
+ status: OfframpTransactionPayloadStatus;
6123
+ /** The crypto currency being sold (e.g., "ETH", "USDC"). */
6124
+ asset?: string;
6125
+ /** The blockchain network (e.g., "ethereum", "base"). */
6126
+ network?: string;
6127
+ sellAmount?: MoneyAmount;
6128
+ total?: MoneyAmount;
6129
+ minimumTotal?: MoneyAmount;
6130
+ subtotal?: MoneyAmount;
6131
+ coinbaseFee?: MoneyAmount;
6132
+ exchangeRate?: MoneyAmount;
6133
+ unitPrice?: MoneyAmount;
6134
+ /** The address crypto was received from. */
6135
+ fromAddress?: string;
6136
+ /** The address crypto was sent to (Coinbase deposit address). */
6137
+ toAddress?: string;
6138
+ /** When the transaction was created. */
6139
+ createdAt?: string;
6140
+ /** When the transaction was last updated. */
6141
+ updatedAt?: string;
6142
+ /** The onchain transaction hash of the crypto send. */
6143
+ txHash?: string;
6144
+ /** The URL the user was redirected to after confirming the offramp. */
6145
+ redirectUrl?: string;
6146
+ /** The payment method type used for cashout. */
6147
+ paymentMethod?: OfframpTransactionPayloadPaymentMethod;
6148
+ }
6149
+ export type OfframpTransactionCreatedEvent = OfframpTransactionPayload;
6150
+ export type OfframpTransactionUpdatedEvent = OfframpTransactionPayload;
6151
+ export type OfframpTransactionSuccessEvent = OfframpTransactionPayload;
6152
+ export type OfframpTransactionFailedEvent = OfframpTransactionPayload;
5159
6153
  /**
5160
6154
  * Idempotency key conflict.
5161
6155
  */
@@ -5279,6 +6273,10 @@ export type X402SupportedPaymentKindsResponseResponse = {
5279
6273
  /** A map of CAIP-2 network or protocol family patterns to their supported signer addresses. */
5280
6274
  signers: X402SupportedPaymentKindsResponseResponseSigners;
5281
6275
  };
6276
+ /**
6277
+ * User forbidden from performing the action.
6278
+ */
6279
+ export type ForbiddenErrorResponse = Error;
5282
6280
  /**
5283
6281
  * Rate limit exceeded.
5284
6282
  */
@@ -5536,6 +6534,10 @@ export type LookupEndUserParams = {
5536
6534
  * The E.164-formatted phone number to search for. Must be URL-encoded when passed as a query parameter (e.g. `+14155552671` → `%2B14155552671`).
5537
6535
  */
5538
6536
  phoneNumber?: PhoneNumber;
6537
+ /**
6538
+ * The ERC-55 checksummed Ethereum address to search for. Looks up a user by the address they authenticated with via Sign In With Ethereum (EIP-4361).
6539
+ */
6540
+ siweAddress?: BlockchainAddress;
5539
6541
  };
5540
6542
  export type LookupEndUser200 = {
5541
6543
  /** The list of end users matching the lookup. */
@@ -5691,6 +6693,7 @@ export type SendEvmAssetWithEndUserAccountBody = {
5691
6693
  useCdpPaymaster?: boolean;
5692
6694
  /** Optional custom Paymaster URL to use for gas sponsorship. Only applicable for EVM Smart Accounts. This allows you to use your own Paymaster service instead of CDP's Paymaster. Cannot be used together with `useCdpPaymaster`. */
5693
6695
  paymasterUrl?: Url;
6696
+ paymasterContext?: PaymasterContext;
5694
6697
  /**
5695
6698
  * Required when not using delegated signing. The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth Header.
5696
6699
  * @pattern ^[a-zA-Z0-9-]{1,100}$
@@ -5869,6 +6872,7 @@ export type SendUserOperationWithEndUserAccountBody = {
5869
6872
  useCdpPaymaster: boolean;
5870
6873
  /** The URL of the paymaster to use for the user operation. If using the CDP Paymaster, use the `useCdpPaymaster` option. */
5871
6874
  paymasterUrl?: Url;
6875
+ paymasterContext?: PaymasterContext;
5872
6876
  /**
5873
6877
  * Required when not using delegated signing. The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth Header.
5874
6878
  * @pattern ^[a-zA-Z0-9-]{1,100}$
@@ -6190,6 +7194,7 @@ export type PrepareUserOperationBody = {
6190
7194
  calls: EvmCall[];
6191
7195
  /** The URL of the paymaster to use for the user operation. */
6192
7196
  paymasterUrl?: Url;
7197
+ paymasterContext?: PaymasterContext;
6193
7198
  /**
6194
7199
  * The EIP-8021 data suffix (hex-encoded) that enables transaction attribution for the user operation.
6195
7200
  * @pattern ^0x[0-9a-fA-F]+$
@@ -6202,6 +7207,7 @@ export type PrepareAndSendUserOperationBody = {
6202
7207
  calls: EvmCall[];
6203
7208
  /** The URL of the paymaster to use for the user operation. */
6204
7209
  paymasterUrl?: Url;
7210
+ paymasterContext?: PaymasterContext;
6205
7211
  };
6206
7212
  export type SendUserOperationBody = {
6207
7213
  /** The hex-encoded signature of the user operation. This should be a 65-byte signature consisting of the `r`, `s`, and `v` values of the ECDSA signature. Note that the `v` value should conform to the `personal_sign` standard, which means it should be 27 or 28. */
@@ -6531,6 +7537,8 @@ export type GetSQLSchemaDatabase = (typeof GetSQLSchemaDatabase)[keyof typeof Ge
6531
7537
  export declare const GetSQLSchemaDatabase: {
6532
7538
  readonly base: "base";
6533
7539
  readonly base_sepolia: "base_sepolia";
7540
+ readonly solana: "solana";
7541
+ readonly hyperevm: "hyperevm";
6534
7542
  };
6535
7543
  export type ListDataTokenBalancesParams = {
6536
7544
  /**
@@ -6697,6 +7705,10 @@ export type CreateOnrampOrderBody = {
6697
7705
  phoneNumber: string;
6698
7706
  /** Timestamp of when the user's phone number was verified via OTP. User phone number must be verified every 60 days. If this timestamp is older than 60 days, an error will be returned. */
6699
7707
  phoneNumberVerifiedAt: string;
7708
+ /** The SMS verification ID returned by the Submit Onramp Verification endpoint after verifying the user's phone number. When provided, Onramp validates the server-side verification record instead of trusting `phoneNumberVerifiedAt`. */
7709
+ smsVerificationId?: OnrampVerificationId;
7710
+ /** The email verification ID returned by the Submit Onramp Verification endpoint after verifying the user's email address. */
7711
+ emailVerificationId?: OnrampVerificationId;
6700
7712
  /** A string representing the amount of crypto the user wishes to purchase. When using this parameter the returned quote will be exclusive of fees i.e. the user will receive this exact amount of the purchase currency. */
6701
7713
  purchaseAmount?: string;
6702
7714
  /** The ticker (e.g. `BTC`, `USDC`, `SOL`) or the Coinbase UUID (e.g. `d85dce9b-5b73-5c3c-8978-522ce1d1c1b4`) of the crypto asset to be purchased.
@@ -6715,37 +7727,6 @@ export type CreateOnrampOrder201 = {
6715
7727
  export type GetOnrampOrderById200 = {
6716
7728
  order: OnrampOrder;
6717
7729
  };
6718
- export type CreateOnrampSessionBody = {
6719
- /** The ticker (e.g. `BTC`, `USDC`, `SOL`) or the Coinbase UUID (e.g. `d85dce9b-5b73-5c3c-8978-522ce1d1c1b4`) of the crypto asset to be purchased.
6720
-
6721
- Use the [Onramp Buy Options API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-buy-options) to discover the supported purchase currencies for your user's location. */
6722
- purchaseCurrency: string;
6723
- /** The name of the crypto network the purchased currency will be sent on.
6724
-
6725
- Use the [Onramp Buy Options API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-buy-options) to discover the supported networks for your user's location. */
6726
- destinationNetwork: string;
6727
- /** The address the purchased crypto will be sent to. */
6728
- destinationAddress: BlockchainAddress;
6729
- /** A string representing the amount of fiat the user wishes to pay in exchange for crypto. When using this parameter, the returned quote will be inclusive of fees i.e. the user will pay this exact amount of the payment currency. */
6730
- paymentAmount?: string;
6731
- /** A string representing the amount of crypto the user wishes to purchase. When using this parameter, the returned quote will be exclusive of fees i.e. the user will receive this exact amount of the purchase currency. */
6732
- purchaseAmount?: string;
6733
- /** The fiat currency to be converted to crypto. */
6734
- paymentCurrency?: string;
6735
- paymentMethod?: OnrampQuotePaymentMethodTypeId;
6736
- /** The ISO 3166-1 two letter country code (e.g. US). */
6737
- country?: string;
6738
- /** The ISO 3166-2 two letter state code (e.g. NY). Only required for US. */
6739
- subdivision?: string;
6740
- /** URI to redirect the user to when they successfully complete a transaction. This URI will be embedded in the returned onramp URI as a query parameter. */
6741
- redirectUrl?: Uri;
6742
- /** The IP address of the end user requesting the onramp transaction. */
6743
- clientIp?: string;
6744
- /** A unique string that represents the user in your app. This can be used to link individual transactions together so you can retrieve the transaction history for your users. Prefix this string with “sandbox-” (e.g. "sandbox-user-1234") to perform a sandbox transaction which will allow you to test your integration without any real transfer of funds.
6745
-
6746
- This value can be used with with [Onramp User Transactions API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-onramp-transactions-by-id) to retrieve all transactions created by the user. */
6747
- partnerUserRef?: string;
6748
- };
6749
7730
  export type CreateOnrampSession201 = {
6750
7731
  session: OnrampSession;
6751
7732
  quote?: OnrampQuote;