@unifold/core 0.1.71-beta.2 → 0.1.72

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/dist/index.d.mts CHANGED
@@ -34,6 +34,12 @@ interface Wallet {
34
34
  is_primary: boolean;
35
35
  }
36
36
  interface DepositAddressResponse {
37
+ /**
38
+ * Internal Unifold user.id (`user_<ksuid>`), created/resolved as part of
39
+ * the deposit-address call. Stamp this onto the analytics tracker so
40
+ * telemetry events carry the real user id (not the host's external id).
41
+ */
42
+ user_id?: string;
37
43
  data: Wallet[];
38
44
  }
39
45
  declare enum ActionType {
@@ -202,6 +208,8 @@ declare function pollDirectExecutions(request: PollExecutionsRequest, publishabl
202
208
  interface SupportedChain {
203
209
  chain_id: string;
204
210
  chain_name: string;
211
+ /** Slugged `chain_name` (e.g. "base", "hypercore", "base_sepolia"). */
212
+ network: string;
205
213
  chain_type: string;
206
214
  icon_url: string;
207
215
  token_address: string;
@@ -214,6 +222,8 @@ interface SupportedChain {
214
222
  interface DestinationTokenChain {
215
223
  chain_id: string;
216
224
  chain_name: string;
225
+ /** Slugged `chain_name` (e.g. "base", "hypercore", "base_sepolia"). */
226
+ network: string;
217
227
  chain_type: string;
218
228
  token_address: string;
219
229
  decimals: number;
@@ -222,6 +232,8 @@ interface DestinationTokenChain {
222
232
  }
223
233
  interface DestinationToken {
224
234
  symbol: string;
235
+ /** Slugged `symbol` (e.g. "usdc", "usdc_e", "usdc_perp"). */
236
+ currency: string;
225
237
  name: string;
226
238
  icon_url: string;
227
239
  icon_urls?: IconUrl[];
@@ -240,6 +252,8 @@ declare function getSupportedDestinationTokens(publishableKey?: string, options?
240
252
  }): Promise<SupportedDestinationTokensResponse>;
241
253
  interface SupportedToken {
242
254
  symbol: string;
255
+ /** Slugged `symbol` (e.g. "usdc", "usdc_e", "usdc_perp"). */
256
+ currency: string;
243
257
  name: string;
244
258
  icon_url: string;
245
259
  is_newly_added: boolean;
@@ -372,12 +386,16 @@ interface OnrampQuotesResponse {
372
386
  declare function getOnrampQuotes(request: OnrampQuotesRequest, publishableKey?: string): Promise<OnrampQuotesResponse>;
373
387
  /**
374
388
  * Payment method for an onramp session. Defaults to `card` server-side.
375
- * `sepa` routes the session through SEPA bank transfer (Swapped-only today).
376
- * `apple_pay` preselects Apple Pay on Coinbase's standard onramp surface
377
- * (Coinbase only)useful as a fallback when the headless Apple Pay flow
378
- * is unavailable.
389
+ * - `card` / `apple_pay` card rails (Coinbase / aggregators).
390
+ * - `sepa` SEPA bank transfer (EU + EEA + microstates).
391
+ * - `us_bank_account`US bank transfer (HiFi). One account accepts ACH, wire
392
+ * and RTP; the payer picks the rail at their bank, so it is not split into
393
+ * per-rail methods.
394
+ *
395
+ * This is the account/rail family the user pays over, not how the receiving
396
+ * account is provisioned (pooled vs dedicated) — that's a backend detail.
379
397
  */
380
- type OnrampSessionPaymentMethodType = 'card' | 'sepa' | 'apple_pay';
398
+ type OnrampSessionPaymentMethodType = 'card' | 'apple_pay' | 'sepa' | 'us_bank_account';
381
399
  /**
382
400
  * @deprecated Use `OnrampSessionPaymentMethodType` instead. Retained as an alias so
383
401
  * previously-released SDK consumers keep compiling.
@@ -458,7 +476,15 @@ interface GetBankTransferProvidersOptions {
458
476
  * availability + the caller-supplied country.
459
477
  */
460
478
  declare function getBankTransferProviders(publishableKey?: string, options?: GetBankTransferProvidersOptions): Promise<BankTransferProvidersResponse>;
461
- interface ApplePayProvider {
479
+ /**
480
+ * A device wallet that can fund a headless Coinbase guest-checkout onramp.
481
+ * The two flows are identical end to end — same verification, same order
482
+ * API, same limits — so every wallet-pay function in this file takes this
483
+ * as its first argument, with `*ApplePay*` / `*GooglePay*` wrappers below
484
+ * for callers that only care about one.
485
+ */
486
+ type WalletPayMethod = 'apple_pay' | 'google_pay';
487
+ interface WalletPayProvider {
462
488
  service_provider: string;
463
489
  service_provider_display_name: string;
464
490
  description: string;
@@ -468,18 +494,34 @@ interface ApplePayProvider {
468
494
  format: string;
469
495
  }>;
470
496
  enabled: boolean;
471
- payment_methods: string[];
497
+ /**
498
+ * Wallets this provider can fund. Named for the `payment_method_type`
499
+ * vocabulary the rest of the onramp API uses. The deprecated
500
+ * `apple_pay/providers` route reports the same values as `payment_methods`;
501
+ * `getWalletPayProviders` normalises that away, so callers only ever see
502
+ * this field.
503
+ */
504
+ payment_method_types: WalletPayMethod[];
472
505
  supported_countries: string[];
473
506
  }
474
- interface ApplePayProvidersResponse {
475
- data: ApplePayProvider[];
507
+ interface WalletPayProvidersResponse {
508
+ data: WalletPayProvider[];
476
509
  }
510
+ type ApplePayProvider = WalletPayProvider;
511
+ type ApplePayProvidersResponse = WalletPayProvidersResponse;
512
+ type GooglePayProvider = WalletPayProvider;
513
+ type GooglePayProvidersResponse = WalletPayProvidersResponse;
477
514
  /**
478
- * Get supported Apple Pay onramp providers. The response is geo-restricted:
479
- * only returns providers when the caller IP is in a supported region (US
480
- * excluding NY for Coinbase) and the project has Apple Pay enabled.
515
+ * Get the onramp providers that can fund the given device wallet. The
516
+ * response is geo-restricted: only returns providers when the caller IP is
517
+ * in a supported region (US excluding NY for Coinbase) and the project has
518
+ * that wallet enabled, which can differ per wallet via the dashboard toggle.
481
519
  */
520
+ declare function getWalletPayProviders(method: WalletPayMethod, publishableKey?: string): Promise<WalletPayProvidersResponse>;
521
+ /** @see getWalletPayProviders */
482
522
  declare function getApplePayProviders(publishableKey?: string): Promise<ApplePayProvidersResponse>;
523
+ /** @see getWalletPayProviders */
524
+ declare function getGooglePayProviders(publishableKey?: string): Promise<GooglePayProvidersResponse>;
483
525
  /**
484
526
  * Generate a URL for the sessions/start endpoint that redirects to the onramp provider.
485
527
  * This is useful for avoiding popup blockers by opening the URL directly via anchor tag.
@@ -596,6 +638,9 @@ interface ProjectConfigResponse {
596
638
  apple_pay?: {
597
639
  enabled: boolean;
598
640
  };
641
+ google_pay?: {
642
+ enabled: boolean;
643
+ };
599
644
  pay_with_exchange?: {
600
645
  enabled: boolean;
601
646
  };
@@ -694,12 +739,16 @@ interface TokenIconUrl {
694
739
  }
695
740
  interface TokenInfo {
696
741
  symbol: string;
742
+ /** Slugged `symbol` (e.g. "usdc", "usdc_e", "usdc_perp"). */
743
+ currency: string;
697
744
  name: string;
698
745
  icon_url: string;
699
746
  icon_urls: TokenIconUrl[];
700
747
  token_address: string;
701
748
  chain_id: string;
702
749
  chain_name: string;
750
+ /** Slugged `chain_name` (e.g. "base", "hypercore", "base_sepolia"). */
751
+ network: string;
703
752
  chain_type: string;
704
753
  decimals: number;
705
754
  minimum_deposit_amount_usd: number;
@@ -727,7 +776,7 @@ interface AddressBalancesResponse {
727
776
  * Get token balances for a wallet address
728
777
  * Returns balances for all supported deposit tokens on the specified chain type
729
778
  * @param address - Wallet address to check balances for
730
- * @param chainType - Chain type to fetch balances for ('ethereum', 'solana', or 'bitcoin')
779
+ * @param chainType - Chain type to fetch balances for ('ethereum', 'solana', 'bitcoin', or 'tron')
731
780
  * @param publishableKey - Optional publishable key, defaults to configured key
732
781
  */
733
782
  declare function getAddressBalances(address: string, chainType: ChainType, publishableKey?: string): Promise<AddressBalancesResponse>;
@@ -816,7 +865,7 @@ interface AddressBalanceResponse {
816
865
  * Get balance for a specific token on a specific chain
817
866
  * Returns the balance for a single token, or null if not found or zero balance
818
867
  * @param address - Wallet address to check balance for
819
- * @param chainType - Chain type ('ethereum', 'solana', or 'bitcoin')
868
+ * @param chainType - Chain type ('ethereum', 'solana', 'bitcoin', or 'tron')
820
869
  * @param chainId - Chain ID (e.g., "1" for Ethereum mainnet)
821
870
  * @param tokenAddress - Token contract address or "native" for native tokens
822
871
  * @param publishableKey - Optional publishable key, defaults to configured key
@@ -1644,8 +1693,14 @@ declare function stripeGetConfig(publishableKey?: string): Promise<StripeConfigR
1644
1693
  declare function stripeCreateAuthIntent(email: string, publishableKey?: string): Promise<StripeAuthIntentResponse>;
1645
1694
  /**
1646
1695
  * Exchange a consented LinkAuthIntent for OAuth access tokens.
1696
+ *
1697
+ * When the CryptoCustomer id is known at this point (the Link authorize result
1698
+ * returns it), pass it as `cryptoCustomerId` so the backend can associate the
1699
+ * customer with the email captured at /oauth/start. It's optional and purely
1700
+ * a best-effort association hint — omitting it does not change the token
1701
+ * exchange.
1647
1702
  */
1648
- declare function stripeExchangeTokens(authIntentId: string, publishableKey?: string): Promise<StripeAccessTokenResponse>;
1703
+ declare function stripeExchangeTokens(authIntentId: string, publishableKey?: string, cryptoCustomerId?: string): Promise<StripeAccessTokenResponse>;
1649
1704
  /**
1650
1705
  * Refresh an expired OAuth access token.
1651
1706
  */
@@ -1755,7 +1810,13 @@ declare function sendOnrampVerificationOtp(id: string, factor: 'email' | 'phone'
1755
1810
  declare function verifyOnrampVerificationOtp(id: string, factor: 'email' | 'phone', clientSecret: string, code: string, publishableKey?: string): Promise<OnrampVerificationSession>;
1756
1811
  declare function exchangeOnrampVerificationToken(id: string, clientSecret: string, publishableKey?: string): Promise<OnrampVerificationTokenResponse>;
1757
1812
  declare function getOnrampVerificationSession(id: string, clientSecret: string, publishableKey?: string): Promise<OnrampVerificationSession>;
1758
- interface CreateCoinbaseApplePaySessionRequest {
1813
+ interface CreateCoinbaseWalletPaySessionRequest {
1814
+ /**
1815
+ * Device wallet to fund the order with. Sent as `payment_method_type`;
1816
+ * `createCoinbaseWalletPaySession` fills it in from its `method` argument,
1817
+ * so callers don't set it directly.
1818
+ */
1819
+ payment_method_type?: WalletPayMethod;
1759
1820
  source_currency: string;
1760
1821
  /** Mutually exclusive with destination_amount. */
1761
1822
  source_amount?: string;
@@ -1769,17 +1830,17 @@ interface CreateCoinbaseApplePaySessionRequest {
1769
1830
  /** Auto-generated when omitted. */
1770
1831
  external_id?: string;
1771
1832
  /**
1772
- * Iframe-embedding origin (CDP-registered + Apple-verified by the merchant).
1773
- * Reserved for a future iframe checkout — the SDK currently opens the payment
1774
- * surface in a popup window and ignores this field on the server. Accepted
1775
- * now so partners can pass it without an SDK upgrade later.
1833
+ * Iframe-embedding origin (CDP-registered and, for Apple Pay, Apple-verified
1834
+ * by the merchant). Reserved for a future iframe checkout — the SDK currently
1835
+ * opens the payment surface in a popup window and ignores this field on the
1836
+ * server. Accepted now so partners can pass it without an SDK upgrade later.
1776
1837
  */
1777
1838
  domain?: string;
1778
1839
  }
1779
- interface CoinbaseApplePaySessionResponse {
1840
+ interface CoinbaseWalletPaySessionResponse {
1780
1841
  id: string;
1781
1842
  external_id: string;
1782
- /** URL to load in a webview/iframe — renders the Apple Pay button. */
1843
+ /** URL to load in a popup/webview/iframe — renders the wallet button. */
1783
1844
  url: string;
1784
1845
  service_provider: string;
1785
1846
  status: string;
@@ -1791,12 +1852,16 @@ interface CoinbaseApplePaySessionResponse {
1791
1852
  destination_amount?: string;
1792
1853
  total_fee?: number;
1793
1854
  }
1855
+ type CreateCoinbaseApplePaySessionRequest = CreateCoinbaseWalletPaySessionRequest;
1856
+ type CoinbaseApplePaySessionResponse = CoinbaseWalletPaySessionResponse;
1857
+ type CreateCoinbaseGooglePaySessionRequest = CreateCoinbaseWalletPaySessionRequest;
1858
+ type CoinbaseGooglePaySessionResponse = CoinbaseWalletPaySessionResponse;
1794
1859
  /**
1795
1860
  * One Coinbase guest-checkout limit bucket. Field names are snake_case
1796
1861
  * to match the wire format (every API response is recursively
1797
1862
  * snake_cased by `TransformInterceptor` on the way out).
1798
1863
  */
1799
- interface CoinbaseApplePayLimit {
1864
+ interface CoinbaseWalletPayLimit {
1800
1865
  /** `weekly_spending` (rolling 7-day USD cap) or `lifetime_transactions` (all-time count). */
1801
1866
  limit_type: 'weekly_spending' | 'lifetime_transactions';
1802
1867
  /** USD for spending limits; absent for count limits. */
@@ -1820,40 +1885,44 @@ interface CoinbaseApplePayLimit {
1820
1885
  * active → terminal. Upgrade approved.
1821
1886
  * inactive → terminal. User permanently blocked; do not retry.
1822
1887
  */
1823
- type ApplePayLimitUpgradeStatus = 'unrequested' | 'pending' | 'resubmit' | 'active' | 'inactive';
1888
+ type WalletPayLimitUpgradeStatus = 'unrequested' | 'pending' | 'resubmit' | 'active' | 'inactive';
1824
1889
  /** One available limit-upgrade option (shape is loose; Coinbase may add fields). */
1825
- interface CoinbaseApplePayLimitUpgradeOption {
1890
+ interface CoinbaseWalletPayLimitUpgradeOption {
1826
1891
  /** State machine value. May be absent on partial / pre-eligible responses. */
1827
- status?: ApplePayLimitUpgradeStatus | string;
1892
+ status?: WalletPayLimitUpgradeStatus | string;
1828
1893
  /** Field keys to collect from the user (today: `ssnLast4`, `dateOfBirth`). */
1829
1894
  fields?: string[];
1830
1895
  [key: string]: unknown;
1831
1896
  }
1832
1897
  /**
1833
- * Wire-format response from `POST /apple_pay/limits`. The two `limit_*`
1834
- * fields come straight from Coinbase (via our snake_casing
1835
- * passthrough); the two derived fields (`limit_reached`,
1836
- * `upgrade_status`) are appended by the SDK function for caller
1837
- * ergonomics — see `getCoinbaseApplePayLimits`.
1898
+ * Wire-format response from `POST /{apple_pay,google_pay}/limits`. The two
1899
+ * `limit_*` fields come straight from Coinbase (via our snake_casing
1900
+ * passthrough); the two derived fields (`limit_reached`, `upgrade_status`)
1901
+ * are appended by the SDK function for caller ergonomics — see
1902
+ * `getCoinbaseWalletPayLimits`.
1838
1903
  */
1839
- interface CoinbaseApplePayLimitsResponse {
1840
- limits: CoinbaseApplePayLimit[];
1841
- limit_upgrade_options?: CoinbaseApplePayLimitUpgradeOption[];
1904
+ interface CoinbaseWalletPayLimitsResponse {
1905
+ limits: CoinbaseWalletPayLimit[];
1906
+ limit_upgrade_options?: CoinbaseWalletPayLimitUpgradeOption[];
1842
1907
  /**
1843
1908
  * Convenience flag baked in by the SDK function. True iff EITHER
1844
1909
  * `weekly_spending` OR `lifetime_transactions` is exhausted —
1845
1910
  * Coinbase rejects a new order if it would exceed *either* cap, so
1846
1911
  * either bucket at `"0"` blocks the user from transacting.
1847
- * Equivalent to `isApplePayLimitReached(response)`.
1912
+ * Equivalent to `isWalletPayLimitReached(response)`.
1848
1913
  */
1849
1914
  limit_reached: boolean;
1850
1915
  /**
1851
1916
  * Convenience flag baked in by the SDK function — the status of
1852
1917
  * `limit_upgrade_options[0]` when present, `null` otherwise.
1853
- * Equivalent to `getApplePayLimitUpgradeStatus(response)`.
1918
+ * Equivalent to `getWalletPayLimitUpgradeStatus(response)`.
1854
1919
  */
1855
- upgrade_status: ApplePayLimitUpgradeStatus | null;
1920
+ upgrade_status: WalletPayLimitUpgradeStatus | null;
1856
1921
  }
1922
+ type ApplePayLimitUpgradeStatus = WalletPayLimitUpgradeStatus;
1923
+ type CoinbaseApplePayLimit = CoinbaseWalletPayLimit;
1924
+ type CoinbaseApplePayLimitUpgradeOption = CoinbaseWalletPayLimitUpgradeOption;
1925
+ type CoinbaseApplePayLimitsResponse = CoinbaseWalletPayLimitsResponse;
1857
1926
  /**
1858
1927
  * True iff EITHER `weekly_spending` OR `lifetime_transactions` bucket
1859
1928
  * is exhausted (`remaining === "0"`). Coinbase rejects a new order if
@@ -1865,7 +1934,7 @@ interface CoinbaseApplePayLimitsResponse {
1865
1934
  * cap" for that dimension. All buckets absent ⇒ false (safe default —
1866
1935
  * we have no evidence they're blocked).
1867
1936
  */
1868
- declare function isApplePayLimitReached(response: Pick<CoinbaseApplePayLimitsResponse, 'limits'>): boolean;
1937
+ declare function isWalletPayLimitReached(response: Pick<CoinbaseWalletPayLimitsResponse, 'limits'>): boolean;
1869
1938
  /**
1870
1939
  * Extract the upgrade option's `status` from a limits response. Returns
1871
1940
  * `null` when the user has no `limit_upgrade_options` at all
@@ -1878,19 +1947,34 @@ declare function isApplePayLimitReached(response: Pick<CoinbaseApplePayLimitsRes
1878
1947
  * payment-method type. For now indexing `[0]` is what the
1879
1948
  * limits-upgrade guide itself does.
1880
1949
  */
1881
- declare function getApplePayLimitUpgradeStatus(response: Pick<CoinbaseApplePayLimitsResponse, 'limit_upgrade_options'>): ApplePayLimitUpgradeStatus | null;
1882
- /**
1883
- * Fetch the user's current Apple Pay (guest-checkout) limits + any
1884
- * available upgrade options. Safe to call before the verification OTP —
1885
- * callers usually pair this with `isApplePayBothLimitsReached` to decide
1886
- * whether to surface the limit-upgrade flow instead of sending the SMS.
1950
+ declare function getWalletPayLimitUpgradeStatus(response: Pick<CoinbaseWalletPayLimitsResponse, 'limit_upgrade_options'>): WalletPayLimitUpgradeStatus | null;
1951
+ /** @see isWalletPayLimitReached */
1952
+ declare const isApplePayLimitReached: typeof isWalletPayLimitReached;
1953
+ /** @see isWalletPayLimitReached */
1954
+ declare const isGooglePayLimitReached: typeof isWalletPayLimitReached;
1955
+ /** @see getWalletPayLimitUpgradeStatus */
1956
+ declare const getApplePayLimitUpgradeStatus: typeof getWalletPayLimitUpgradeStatus;
1957
+ /** @see getWalletPayLimitUpgradeStatus */
1958
+ declare const getGooglePayLimitUpgradeStatus: typeof getWalletPayLimitUpgradeStatus;
1959
+ /**
1960
+ * Fetch the user's current guest-checkout limits + any available upgrade
1961
+ * options. Safe to call before the verification OTP — callers usually pair
1962
+ * this with `limit_reached` to decide whether to surface the limit-upgrade
1963
+ * flow instead of sending the SMS.
1964
+ *
1965
+ * Takes no wallet: Coinbase's caps are per user, and its limits-upgrade guide
1966
+ * states that the Apple Pay and Google Pay guest-checkout methods "yield
1967
+ * identical limits". One lookup therefore answers for both.
1887
1968
  *
1969
+ * @see https://docs.cdp.coinbase.com/onramp/headless-onramp/limits-upgrade
1888
1970
  * @see https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/get-onramp-user-limits
1889
1971
  */
1890
- declare function getCoinbaseApplePayLimits(
1972
+ declare function getCoinbaseWalletPayLimits(
1891
1973
  /** US phone in E.164 (e.g. `+12345678901`). */
1892
- phone: string, publishableKey?: string, signal?: AbortSignal): Promise<CoinbaseApplePayLimitsResponse>;
1893
- interface RequestCoinbaseApplePayLimitUpgradeRequest {
1974
+ phone: string, publishableKey?: string, signal?: AbortSignal): Promise<CoinbaseWalletPayLimitsResponse>;
1975
+ /** @see getCoinbaseWalletPayLimits */
1976
+ declare const getCoinbaseApplePayLimits: typeof getCoinbaseWalletPayLimits;
1977
+ interface RequestCoinbaseWalletPayLimitUpgradeRequest {
1894
1978
  /** US phone in E.164. Must match a phone the user controls (Coinbase verifies via the prior OTP). */
1895
1979
  phone: string;
1896
1980
  fields: {
@@ -1904,21 +1988,28 @@ interface RequestCoinbaseApplePayLimitUpgradeRequest {
1904
1988
  };
1905
1989
  };
1906
1990
  }
1907
- interface RequestCoinbaseApplePayLimitUpgradeResponse {
1991
+ interface RequestCoinbaseWalletPayLimitUpgradeResponse {
1908
1992
  /** Always `"accepted"`. The upgrade decision is asynchronous — poll the limits endpoint. */
1909
1993
  status: 'accepted';
1910
1994
  }
1995
+ type RequestCoinbaseApplePayLimitUpgradeRequest = RequestCoinbaseWalletPayLimitUpgradeRequest;
1996
+ type RequestCoinbaseApplePayLimitUpgradeResponse = RequestCoinbaseWalletPayLimitUpgradeResponse;
1911
1997
  /**
1912
- * Submit identity fields (DOB + SSN last 4) to request an Apple Pay limit
1913
- * upgrade. The decision is asynchronous on Coinbase's side; poll
1914
- * `getCoinbaseApplePayLimits` after this to observe whether the new caps
1998
+ * Submit identity fields (DOB + SSN last 4) to request a limit upgrade.
1999
+ * The decision is asynchronous on Coinbase's side; poll
2000
+ * `getCoinbaseWalletPayLimits` after this to observe whether the new caps
1915
2001
  * landed.
1916
2002
  *
2003
+ * Takes no wallet: Coinbase keys the upgrade on the user, so one approval
2004
+ * lifts the caps for both wallets.
2005
+ *
1917
2006
  * @see https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/request-limit-upgrade
1918
2007
  */
1919
- declare function requestCoinbaseApplePayLimitUpgrade(request: RequestCoinbaseApplePayLimitUpgradeRequest, publishableKey?: string, signal?: AbortSignal): Promise<RequestCoinbaseApplePayLimitUpgradeResponse>;
2008
+ declare function requestCoinbaseWalletPayLimitUpgrade(request: RequestCoinbaseWalletPayLimitUpgradeRequest, publishableKey?: string, signal?: AbortSignal): Promise<RequestCoinbaseWalletPayLimitUpgradeResponse>;
2009
+ /** @see requestCoinbaseWalletPayLimitUpgrade */
2010
+ declare const requestCoinbaseApplePayLimitUpgrade: typeof requestCoinbaseWalletPayLimitUpgrade;
1920
2011
  /**
1921
- * Create an Apple Pay onramp session. Requires a fresh `onrampToken` from
2012
+ * Create a device-wallet onramp session. Requires a fresh `onrampToken` from
1922
2013
  * `exchangeOnrampVerificationToken`.
1923
2014
  *
1924
2015
  * Pass `signal` from an `AbortController` when calling from a debounced /
@@ -1926,7 +2017,11 @@ declare function requestCoinbaseApplePayLimitUpgrade(request: RequestCoinbaseApp
1926
2017
  * superseded in-flight request can be cancelled and its response can't
1927
2018
  * overwrite a newer one.
1928
2019
  */
2020
+ declare function createCoinbaseWalletPaySession(method: WalletPayMethod, request: CreateCoinbaseWalletPaySessionRequest, onrampToken: string, publishableKey?: string, signal?: AbortSignal): Promise<CoinbaseWalletPaySessionResponse>;
2021
+ /** @see createCoinbaseWalletPaySession */
1929
2022
  declare function createCoinbaseApplePaySession(request: CreateCoinbaseApplePaySessionRequest, onrampToken: string, publishableKey?: string, signal?: AbortSignal): Promise<CoinbaseApplePaySessionResponse>;
2023
+ /** @see createCoinbaseWalletPaySession */
2024
+ declare function createCoinbaseGooglePaySession(request: CreateCoinbaseGooglePaySessionRequest, onrampToken: string, publishableKey?: string, signal?: AbortSignal): Promise<CoinbaseGooglePaySessionResponse>;
1930
2025
 
1931
2026
  /**
1932
2027
  * Format a stablecoin amount to 2 decimal places, ceiling any fractional
@@ -1958,24 +2053,243 @@ declare function generatePrefixedKSUID(prefix: string): string;
1958
2053
  /** Event types emitted by the deposit flow, following `resource.action` convention */
1959
2054
  declare enum DepositEventType {
1960
2055
  ONRAMP_SESSION_CREATED = "onramp_session.created",
1961
- DIRECT_EXECUTION_SUCCEEDED = "direct_execution.succeeded"
2056
+ DIRECT_EXECUTION_SUCCEEDED = "direct_execution.succeeded",
2057
+ /** A deposit execution failed. */
2058
+ DIRECT_EXECUTION_FAILED = "direct_execution.failed",
2059
+ /** User picked a funding method from the deposit menu. */
2060
+ METHOD_SELECTED = "deposit.method_selected",
2061
+ /** User picked an asset to deposit (token + chain). */
2062
+ TOKEN_SELECTED = "deposit.token_selected",
2063
+ /** User picked a browser wallet to connect. */
2064
+ WALLET_SELECTED = "deposit.wallet_selected",
2065
+ /** User picked an onramp/exchange provider. */
2066
+ PROVIDER_SELECTED = "deposit.provider_selected",
2067
+ /** User reached a step that asks them to prove something. */
2068
+ VERIFICATION_STARTED = "deposit.verification_started",
2069
+ /** The check passed. */
2070
+ VERIFICATION_COMPLETED = "deposit.verification_completed",
2071
+ /** A verification step didn't pass. */
2072
+ VERIFICATION_FAILED = "deposit.verification_failed",
2073
+ /** User began linking an account held elsewhere (exchange, Stripe Link). */
2074
+ ACCOUNT_CONNECTION_STARTED = "deposit.account_connection_started",
2075
+ /** The external account is linked and usable. */
2076
+ ACCOUNT_CONNECTED = "deposit.account_connected",
2077
+ /** Linking the external account failed or was abandoned. */
2078
+ ACCOUNT_CONNECTION_FAILED = "deposit.account_connection_failed",
2079
+ /** User began connecting a browser wallet. */
2080
+ WALLET_CONNECTION_STARTED = "deposit.wallet_connection_started",
2081
+ /** The wallet is connected and usable. */
2082
+ WALLET_CONNECTED = "deposit.wallet_connected",
2083
+ /** The connection failed, or the user declined it in their wallet. */
2084
+ WALLET_CONNECTION_FAILED = "deposit.wallet_connection_failed",
2085
+ /** The chosen method's flow began (session/tx initiated). */
2086
+ FLOW_STARTED = "deposit.flow_started",
2087
+ /** The deposit failed. */
2088
+ FLOW_FAILED = "deposit.flow_failed",
2089
+ /** The user is at a purchase cap they can't raise. */
2090
+ LIMIT_REACHED = "deposit.limit_reached"
1962
2091
  }
1963
2092
  /** Event types emitted by the withdraw flow, following `resource.action` convention */
1964
2093
  declare enum WithdrawEventType {
1965
- DIRECT_EXECUTION_SUCCEEDED = "direct_execution.succeeded"
2094
+ DIRECT_EXECUTION_SUCCEEDED = "direct_execution.succeeded",
2095
+ /** A withdraw execution failed. */
2096
+ DIRECT_EXECUTION_FAILED = "direct_execution.failed",
2097
+ /** User picked the destination asset (token + chain). */
2098
+ TOKEN_SELECTED = "withdraw.token_selected",
2099
+ /** User confirmed the withdraw form and the flow began. */
2100
+ FLOW_STARTED = "withdraw.flow_started"
1966
2101
  }
1967
2102
  /** Event types emitted by the checkout flow. */
1968
2103
  declare enum CheckoutEventType {
1969
- PAYMENT_INTENT_SUCCEEDED = "payment_intent.succeeded"
2104
+ PAYMENT_INTENT_SUCCEEDED = "payment_intent.succeeded",
2105
+ /** User picked how to pay. */
2106
+ METHOD_SELECTED = "checkout.method_selected",
2107
+ /** User picked an asset to pay with (token + chain). */
2108
+ TOKEN_SELECTED = "checkout.token_selected",
2109
+ /** User picked a browser wallet to connect. */
2110
+ WALLET_SELECTED = "checkout.wallet_selected",
2111
+ /** User began connecting a browser wallet. */
2112
+ WALLET_CONNECTION_STARTED = "checkout.wallet_connection_started",
2113
+ /** The wallet is connected and usable. */
2114
+ WALLET_CONNECTED = "checkout.wallet_connected",
2115
+ /** The connection failed, or the user declined it in their wallet. */
2116
+ WALLET_CONNECTION_FAILED = "checkout.wallet_connection_failed",
2117
+ /** The payment was submitted. */
2118
+ FLOW_STARTED = "checkout.flow_started",
2119
+ /** The payment attempt failed, including before anything reached a chain. */
2120
+ FLOW_FAILED = "checkout.flow_failed"
1970
2121
  }
1971
2122
  /** Funding method used by a deposit flow. */
1972
- type DepositMethod = 'transfer' | 'card' | 'cashapp' | 'apple_pay' | 'pay_with_exchange' | 'exchange_connect' | 'wallet_connect';
2123
+ type DepositMethod = 'transfer' | 'card' | 'cashapp' | 'apple_pay' | 'google_pay' | 'pay_with_exchange' | 'exchange_connect' | 'wallet_connect' | 'bank_transfer' | 'stripe_link';
1973
2124
  /** Funding method used by a checkout flow. */
1974
2125
  type CheckoutMethod = 'transfer' | 'wallet_connect';
1975
- /** `data.object` payload for {@link DepositEventType.ONRAMP_SESSION_CREATED} */
2126
+ /** `data.object` payload for {@link DepositEventType.ONRAMP_SESSION_CREATED}. */
1976
2127
  interface OnrampSessionCreatedData {
2128
+ /**
2129
+ * Host-supplied correlation id sent to the provider as `external_id`.
2130
+ * Kept for backward compatibility with existing SDK integrations.
2131
+ */
1977
2132
  externalId: string;
1978
2133
  }
2134
+ /** `data.object` payload for {@link DepositEventType.METHOD_SELECTED} */
2135
+ interface DepositMethodSelectedData {
2136
+ method: DepositMethod;
2137
+ }
2138
+ /**
2139
+ * `data.object` payload for the `*.token_selected` events.
2140
+ *
2141
+ * A token and the chain it lives on are one asset choice — neither half
2142
+ * identifies an asset alone — so this carries the full identity and re-fires
2143
+ * whenever either side changes.
2144
+ */
2145
+ interface TokenSelectedData {
2146
+ /**
2147
+ * Slugged token symbol (e.g. "usdc", "usdc_e", "usdc_perp") — the grouping
2148
+ * key. The display symbol is deliberately absent: it says the same thing
2149
+ * less predictably.
2150
+ */
2151
+ currency?: string;
2152
+ /** Token contract address. */
2153
+ tokenAddress?: string;
2154
+ /** Chain id (e.g. "mainnet", "8453"). */
2155
+ chain?: string;
2156
+ /** Chain family (ethereum, solana, …). */
2157
+ chainType?: string;
2158
+ /** Slugged network name (e.g. "base", "hypercore", "base_sepolia"). */
2159
+ network?: string;
2160
+ /** Funding method the selection was made under, when applicable. */
2161
+ method?: string;
2162
+ }
2163
+ /** `data.object` payload for the `*.wallet_selected` events. */
2164
+ interface WalletSelectedData {
2165
+ /** Wallet identifier (e.g. "metamask", "phantom"). */
2166
+ wallet: string;
2167
+ /** Human-readable wallet name. */
2168
+ walletName?: string;
2169
+ /** Whether the wallet extension/provider was detected. */
2170
+ installed?: boolean;
2171
+ }
2172
+ /** `data.object` payload for {@link DepositEventType.PROVIDER_SELECTED}. */
2173
+ interface ProviderSelectedData {
2174
+ /** Onramp/exchange provider identifier. */
2175
+ provider: string;
2176
+ method?: string;
2177
+ }
2178
+ /**
2179
+ * `data.object` payload for the `deposit.verification_*` events.
2180
+ *
2181
+ * Says that a check started, passed or didn't, and which funding method the
2182
+ * user was in. What's withheld is anything the provider concluded about the
2183
+ * person — which gate, which tier, their verdict, the field that didn't match
2184
+ * — all of which stays in our own funnel where support can reach it.
2185
+ *
2186
+ * The three events mirror the connection families, so a host can show that
2187
+ * verification is under way and clear it when it resolves. Note that failed
2188
+ * can fire on an attempt the user recovers from, such as a mistyped code, and
2189
+ * that a provider verifying in tiers produces one cycle per tier. When a
2190
+ * verification actually ends the flow it arrives separately, as
2191
+ * `deposit.limit_reached` for an unraisable cap or `deposit.flow_failed`
2192
+ * otherwise — those are the ones worth acting on.
2193
+ */
2194
+ interface VerificationData {
2195
+ method?: string;
2196
+ }
2197
+ /**
2198
+ * `data.object` payload for the `deposit.account_connect*` events — an account
2199
+ * the user holds somewhere else being linked, which is why it is named by a
2200
+ * provider and carries no chain: an exchange balance doesn't live on one.
2201
+ *
2202
+ * Carries no failure reason, for the same reason verification doesn't: why
2203
+ * someone's exchange account wouldn't link is between them and the exchange.
2204
+ * A browser wallet is the exception — declining a prompt is the user's own
2205
+ * visible action, so `WalletConnectionData` does report it.
2206
+ */
2207
+ interface AccountConnectionData {
2208
+ /** Account being linked (`coinbase`, `stripe_link`). */
2209
+ provider: string;
2210
+ /** Funding method the connection is for. */
2211
+ method?: string;
2212
+ }
2213
+ /**
2214
+ * `data.object` payload for the `deposit.wallet_connect*` events — a browser
2215
+ * wallet being linked. Linking an *account* held elsewhere (an exchange, a
2216
+ * Stripe Link profile) is a different thing and reports separately.
2217
+ */
2218
+ interface WalletConnectionData {
2219
+ /** Wallet identifier (e.g. "metamask", "phantom"). */
2220
+ wallet: string;
2221
+ /** Funding method the connection is for. */
2222
+ method?: string;
2223
+ /** Chain family the wallet is being connected on. */
2224
+ chainType?: string;
2225
+ /** Why it failed, on `wallet_connection_failed`. */
2226
+ failureReason?: string;
2227
+ }
2228
+ /**
2229
+ * `data.object` payload for {@link DepositEventType.FLOW_FAILED}.
2230
+ *
2231
+ * Covers every way a deposit can fail, including the ones that happen before
2232
+ * anything reaches a chain — a signature declined in the wallet, a card
2233
+ * declined by the provider, a purchase cap. An on-chain failure emits this
2234
+ * *and* `direct_execution.failed`, which carries the execution detail.
2235
+ */
2236
+ interface DepositFlowFailedData {
2237
+ method?: DepositMethod;
2238
+ /**
2239
+ * Machine-readable reason (`signature_declined`, `card_declined`,
2240
+ * `guest_limit_reached`). Absent when the source gave us only prose.
2241
+ */
2242
+ errorCode?: string;
2243
+ /** Human-readable message, as shown to the user. */
2244
+ message: string;
2245
+ }
2246
+ /**
2247
+ * `data.object` payload for {@link DepositEventType.LIMIT_REACHED}.
2248
+ *
2249
+ * The user has hit a purchase cap and has no way past it — either the provider
2250
+ * offers no upgrade or they've exhausted their attempts. Distinct from a
2251
+ * verification failure they can retry, and the one limit outcome worth acting
2252
+ * on: the flow is over for this method, so offer another.
2253
+ *
2254
+ * Not named after any one method. Apple Pay and Google Pay raise it from the
2255
+ * same Coinbase guest-checkout cap, Stripe has the same cap under a different
2256
+ * name, and the funnel question is the same either way — the method is a
2257
+ * property, not a kind of event.
2258
+ */
2259
+ interface DepositLimitReachedData {
2260
+ method?: DepositMethod;
2261
+ /** Who set the cap (`coinbase`, `stripe`). */
2262
+ provider?: string;
2263
+ }
2264
+ /** `data.object` payload for {@link CheckoutEventType.METHOD_SELECTED} */
2265
+ interface CheckoutMethodSelectedData {
2266
+ method: CheckoutMethod;
2267
+ }
2268
+ /** `data.object` payload for {@link CheckoutEventType.FLOW_STARTED} */
2269
+ interface CheckoutFlowStartedData {
2270
+ method?: CheckoutMethod;
2271
+ amountUsd?: string;
2272
+ chain?: string;
2273
+ }
2274
+ /** `data.object` payload for {@link DepositEventType.FLOW_STARTED} */
2275
+ interface DepositFlowStartedData {
2276
+ method?: DepositMethod;
2277
+ /** Onramp/exchange provider, when applicable. */
2278
+ provider?: string;
2279
+ amountUsd?: string;
2280
+ chain?: string;
2281
+ }
2282
+ /** `data.object` payload for {@link WithdrawEventType.FLOW_STARTED} */
2283
+ interface WithdrawFlowStartedData {
2284
+ token?: string;
2285
+ chain?: string;
2286
+ /** Human-readable token amount (standard unit, e.g. "0.5"). */
2287
+ amount?: string;
2288
+ /** Token amount in base units (e.g. wei / smallest denomination). */
2289
+ amountBaseUnit?: string;
2290
+ /** USD value, when derivable (omitted if unknown). */
2291
+ amountUsd?: string;
2292
+ }
1979
2293
  /**
1980
2294
  * Callback-facing payment intent object.
1981
2295
  * Mirrors the field-naming conventions used by {@link DirectExecution}
@@ -2062,14 +2376,59 @@ interface DirectExecution {
2062
2376
  interface DepositEventDataMap {
2063
2377
  [DepositEventType.ONRAMP_SESSION_CREATED]: OnrampSessionCreatedData;
2064
2378
  [DepositEventType.DIRECT_EXECUTION_SUCCEEDED]: DirectExecution;
2379
+ [DepositEventType.DIRECT_EXECUTION_FAILED]: DirectExecution;
2380
+ [DepositEventType.METHOD_SELECTED]: DepositMethodSelectedData;
2381
+ [DepositEventType.FLOW_STARTED]: DepositFlowStartedData;
2382
+ [DepositEventType.FLOW_FAILED]: DepositFlowFailedData;
2383
+ [DepositEventType.LIMIT_REACHED]: DepositLimitReachedData;
2384
+ [DepositEventType.TOKEN_SELECTED]: TokenSelectedData;
2385
+ [DepositEventType.WALLET_SELECTED]: WalletSelectedData;
2386
+ [DepositEventType.PROVIDER_SELECTED]: ProviderSelectedData;
2387
+ [DepositEventType.VERIFICATION_STARTED]: VerificationData;
2388
+ [DepositEventType.VERIFICATION_COMPLETED]: VerificationData;
2389
+ [DepositEventType.VERIFICATION_FAILED]: VerificationData;
2390
+ [DepositEventType.ACCOUNT_CONNECTION_STARTED]: AccountConnectionData;
2391
+ [DepositEventType.ACCOUNT_CONNECTED]: AccountConnectionData;
2392
+ [DepositEventType.ACCOUNT_CONNECTION_FAILED]: AccountConnectionData;
2393
+ [DepositEventType.WALLET_CONNECTION_STARTED]: WalletConnectionData;
2394
+ [DepositEventType.WALLET_CONNECTED]: WalletConnectionData;
2395
+ [DepositEventType.WALLET_CONNECTION_FAILED]: WalletConnectionData;
2065
2396
  }
2066
2397
  /** Map from event type to its `data.object` shape */
2067
2398
  interface WithdrawEventDataMap {
2068
2399
  [WithdrawEventType.DIRECT_EXECUTION_SUCCEEDED]: DirectExecution;
2400
+ [WithdrawEventType.DIRECT_EXECUTION_FAILED]: DirectExecution;
2401
+ [WithdrawEventType.TOKEN_SELECTED]: TokenSelectedData;
2402
+ [WithdrawEventType.FLOW_STARTED]: WithdrawFlowStartedData;
2403
+ }
2404
+ /**
2405
+ * `data.object` payload for {@link CheckoutEventType.FLOW_FAILED}.
2406
+ *
2407
+ * The checkout twin of {@link DepositFlowFailedData}: covers every way a
2408
+ * payment attempt can fail, including the ones that never reach a chain, such
2409
+ * as a signature declined in the wallet.
2410
+ */
2411
+ interface CheckoutFlowFailedData {
2412
+ method?: CheckoutMethod;
2413
+ /**
2414
+ * Machine-readable reason (`signature_declined`, `insufficient_gas`).
2415
+ * Absent when the source gave us only prose.
2416
+ */
2417
+ errorCode?: string;
2418
+ /** Human-readable message, as shown to the user. */
2419
+ message: string;
2069
2420
  }
2070
2421
  /** Map from event type to its `data.object` shape */
2071
2422
  interface CheckoutEventDataMap {
2072
2423
  [CheckoutEventType.PAYMENT_INTENT_SUCCEEDED]: CheckoutPaymentIntent;
2424
+ [CheckoutEventType.METHOD_SELECTED]: CheckoutMethodSelectedData;
2425
+ [CheckoutEventType.TOKEN_SELECTED]: TokenSelectedData;
2426
+ [CheckoutEventType.WALLET_SELECTED]: WalletSelectedData;
2427
+ [CheckoutEventType.WALLET_CONNECTION_STARTED]: WalletConnectionData;
2428
+ [CheckoutEventType.WALLET_CONNECTED]: WalletConnectionData;
2429
+ [CheckoutEventType.WALLET_CONNECTION_FAILED]: WalletConnectionData;
2430
+ [CheckoutEventType.FLOW_STARTED]: CheckoutFlowStartedData;
2431
+ [CheckoutEventType.FLOW_FAILED]: CheckoutFlowFailedData;
2073
2432
  }
2074
2433
  /**
2075
2434
  * Event envelope emitted by the deposit flow, inspired by the server-side
@@ -2083,6 +2442,18 @@ type DepositEvent = {
2083
2442
  id: string;
2084
2443
  type: K;
2085
2444
  created: number;
2445
+ /**
2446
+ * Analytics journey id (`asess_<ksuid>`): one per modal open → close.
2447
+ * Matches the `session_id` sent to telemetry so hosts can correlate their
2448
+ * `onEvent` stream with the analytics funnel.
2449
+ */
2450
+ sessionId: string;
2451
+ /**
2452
+ * The `externalUserId` you opened the flow with, echoed back so a shared
2453
+ * `onEvent` handler can attribute the journey without threading your own
2454
+ * id through the call site.
2455
+ */
2456
+ externalUserId?: string;
2086
2457
  /**
2087
2458
  * Optional SDK-level context indicating which deposit method triggered
2088
2459
  * this event (e.g. transfer, wallet_connect).
@@ -2102,6 +2473,14 @@ type WithdrawEvent = {
2102
2473
  id: string;
2103
2474
  type: K;
2104
2475
  created: number;
2476
+ /** Analytics journey id (`asess_<ksuid>`): one per modal open → close. */
2477
+ sessionId: string;
2478
+ /**
2479
+ * The `externalUserId` you opened the flow with, echoed back so a shared
2480
+ * `onEvent` handler can attribute the journey without threading your own
2481
+ * id through the call site.
2482
+ */
2483
+ externalUserId?: string;
2105
2484
  data: {
2106
2485
  object: WithdrawEventDataMap[K];
2107
2486
  };
@@ -2113,6 +2492,25 @@ type CheckoutEvent = {
2113
2492
  id: string;
2114
2493
  type: K;
2115
2494
  created: number;
2495
+ /**
2496
+ * Analytics journey id (`asess_…`), one per modal open → close, matching
2497
+ * the deposit and withdraw envelopes. Every event from one payment attempt
2498
+ * shares it.
2499
+ */
2500
+ sessionId: string;
2501
+ /**
2502
+ * The payment intent this event belongs to. You created it server-side, so
2503
+ * it's the key that maps a checkout journey back to your own records — the
2504
+ * counterpart to `externalUserId` on the deposit and withdraw envelopes,
2505
+ * which a checkout doesn't receive.
2506
+ */
2507
+ paymentIntentId?: string;
2508
+ /**
2509
+ * Echoed back from `beginCheckout` when you pass it, for a shared
2510
+ * `onEvent` handler that wants to attribute events by user rather than by
2511
+ * payment. Purely a passthrough — we never send it anywhere.
2512
+ */
2513
+ externalUserId?: string;
2116
2514
  method?: CheckoutMethod;
2117
2515
  data: {
2118
2516
  object: CheckoutEventDataMap[K];
@@ -2130,10 +2528,18 @@ type OnrampSessionCreatedEvent = Extract<DepositEvent, {
2130
2528
  type DirectExecutionSucceededEvent = Extract<DepositEvent, {
2131
2529
  type: DepositEventType.DIRECT_EXECUTION_SUCCEEDED;
2132
2530
  }>;
2531
+ /** Convenience type for a fully-typed `direct_execution.failed` deposit event */
2532
+ type DirectExecutionFailedEvent = Extract<DepositEvent, {
2533
+ type: DepositEventType.DIRECT_EXECUTION_FAILED;
2534
+ }>;
2133
2535
  /** Convenience type for a fully-typed `direct_execution.succeeded` withdraw event */
2134
2536
  type WithdrawDirectExecutionSucceededEvent = Extract<WithdrawEvent, {
2135
2537
  type: WithdrawEventType.DIRECT_EXECUTION_SUCCEEDED;
2136
2538
  }>;
2539
+ /** Convenience type for a fully-typed `direct_execution.failed` withdraw event */
2540
+ type WithdrawDirectExecutionFailedEvent = Extract<WithdrawEvent, {
2541
+ type: WithdrawEventType.DIRECT_EXECUTION_FAILED;
2542
+ }>;
2137
2543
  /** Convenience type for a fully-typed `payment_intent.succeeded` checkout event */
2138
2544
  type CheckoutPaymentIntentSucceededEvent = Extract<CheckoutEvent, {
2139
2545
  type: CheckoutEventType.PAYMENT_INTENT_SUCCEEDED;
@@ -2694,4 +3100,4 @@ declare const i18n: {
2694
3100
  };
2695
3101
  type I18nStrings = typeof i18n;
2696
3102
 
2697
- export { ActionType, type AddressBalanceResponse, type AddressBalancesResponse, type AddressValidationFailureCode, type AddressValidationMetadata, type AddressVerification, type ApplePayLimitUpgradeStatus, type ApplePayProvider, type ApplePayProvidersResponse, type AuthenticateOAuthResult, type AutoSwapRequest, type AutoSwapResponse, type BankTransferConfig, type BankTransferProvider, type BankTransferProvidersResponse, type BlockedCountrySubdivision, type BuildHypercoreTransactionRequest, type BuildHypercoreTransactionResponse, type BuildSolanaTransactionRequest, type BuildSolanaTransactionResponse, type CashAppLimits, type CashAppSessionRequest, type CashAppSessionResponse, type CashAppSessionStatusResponse, type ChainType, type CheckoutEvent, CheckoutEventType, type CheckoutMethod, type CheckoutPaymentIntent, type CheckoutPaymentIntentData, type CheckoutPaymentIntentSucceededEvent, type CoinbaseApplePayLimit, type CoinbaseApplePayLimitUpgradeOption, type CoinbaseApplePayLimitsResponse, type CoinbaseApplePaySessionResponse, type CoinbaseLegalAgreement, type CoinbaseLegalAgreementsResponse, type ConfirmIntegrationTransferResult, type CreateCoinbaseApplePaySessionRequest, type CreateDepositAddressRequest, type CreateExchangeSessionRequest, type CreateExchangeSessionResponse, type CreateIntegrationTransferParams, type CreateIntegrationTransferResult, type CreateOnrampVerificationSessionRequest, DETECTION_ARM_DELAY_MS, DETECTION_POLL_INTERVAL_MS, type DefaultTokenChain, type DefaultTokenMetadata, type DefaultTokenResponse, type DepositAddress, type DepositAddressParams, type DepositAddressResponse, DepositAddressValidationError, type DepositEvent, DepositEventType, type DepositMethod, type DepositQuote, type DepositQuoteRequest, DepositSession, type DepositSessionConfig, type DepositSessionDestination, type DepositSessionError, type DepositSessionErrorCode, type DepositSessionEvent, type DepositSessionEventMap, DepositSessionEventType, type DepositSessionParams, type DepositSessionSnapshot, type DepositSessionStatus, DepositSessionWaitError, type DepositSessionWaitErrorCode, type DepositSessionWaitOptions, type DestinationToken, type DestinationTokenChain, type DirectExecution, type DirectExecutionResponse, type DirectExecutionSucceededEvent, type EvmContractCall, type ExchangeProviderInfo, type ExchangeProvidersResponse, type ExchangeSessionStartParams, type ExchangeWalletAddress, ExecutionStatus, type ExternalWalletChainType, type ExternalWalletInfo, type ExternalWalletsResponse, type FeaturedToken, type FeaturedWallet, type FiatCurrenciesResponse, type FiatCurrency, type GetBankTransferProvidersOptions, type GetExchangesQuery, type HypercoreActivationRequest, type HypercoreActivationResponse, type I18nStrings, type IconUrl, IneligibilityReason, type IntegrationAccount, type IntegrationExchangeInfo, type IntegrationExchangesResponse, type IntegrationFeeAmount, type IntegrationHoldingsResponse, IntegrationProvider, type IpAddressResponse, LOOKBACK_MS, type ListExecutionsParams, type LockedQuoteLimits, type LockedQuotePreview, type LockedQuotePreviewRequest, type OnrampQuote, type OnrampQuotesRequest, type OnrampQuotesResponse, type OnrampSessionCreatedData, type OnrampSessionCreatedEvent, type OnrampSessionPaymentMethod, type OnrampSessionPaymentMethodType, type OnrampSessionRequest, type OnrampSessionResponse, type OnrampVerificationFactor, type OnrampVerificationFactorStatus, type OnrampVerificationSession, type OnrampVerificationStatus, type OnrampVerificationTokenResponse, type PaymentIntent, type PaymentIntentDepositAddress, type PaymentIntentExecutionsResponse, type PaymentIntentStatus, type PaymentIntentType, type PaymentNetwork, type PollExecutionsRequest, type PollExecutionsResponse, type ProductType, type ProjectConfigResponse, type PublicIncidentResponse, type QueryExecutionsRequest, type QueryExecutionsResponse, type RefreshIntegrationTokenResult, type RequestCoinbaseApplePayLimitUpgradeRequest, type RequestCoinbaseApplePayLimitUpgradeResponse, SCAN_NUDGE_INTERVAL_MS, SOLANA_USDC_ADDRESS, type SendHypercoreTransactionRequest, type SendHypercoreTransactionResponse, type SendSolanaTransactionRequest, type SendSolanaTransactionResponse, type SourceToken, type SourceTokenNetwork, type StartIntegrationOAuthResult, type StripeAccessTokenResponse, StripeApiResponseError, type StripeAuthIntentResponse, type StripeConfigResponse, type StripeConfirmRequest, type StripeConsumerWallet, type StripeCreateSessionRequest, type StripeCryptoCustomer, type StripeCustomerVerification, type StripeDefaultTokenResponse, type StripeListResponse, type StripeOnrampErrorType, type StripeOnrampSession, type StripeOnrampTransactionDetails, type StripePaymentToken, type StripeQuoteRequest, type StripeQuotesResponse, type StripeTransactionLimitEntry, type StripeTransactionLimitsResponse, type SupportedChain, type SupportedDepositTokensParams, type SupportedDepositTokensResponse, type SupportedDestinationTokensResponse, type SupportedSourceTokensQuery, type SupportedSourceTokensResponse, type SupportedToken, type TokenBalance, type TokenChain, type TokenChainIconUrl, type TokenChainsResponse, type TokenDisplayMetadata, type TokenIconUrl, type TokenInfo, type TokenMetadata, type TransferDefaultTokenParams, type TransferDefaultTokenResult, UnifoldClient, type UnifoldClientOptions, type UserIpInfo, type VerifyAddressParams, type VerifyAddressRequest, type VerifyAddressResponse, type Wallet, type WalletMobileDeepLinkDepositAddress, type WalletMobileDeepLinkResponse, type WalletMobileDeepLinkWallet, type WithdrawDirectExecutionSucceededEvent, type WithdrawEvent, WithdrawEventType, authenticateIntegrationOAuth, buildHypercoreTransaction, buildSolanaTransaction, checkHypercoreActivation, confirmIntegrationTransfer, createCashAppSession, createCoinbaseApplePaySession, createDepositAddress, createExchangeSession, createIntegrationTransfer, createOnrampSession, createOnrampVerificationSession, createUnifoldClient, exchangeOnrampVerificationToken, formatStablecoinAmount, generateKSUID, generatePrefixedKSUID, getAddressBalance, getAddressBalances, getApiBaseUrl, getApplePayLimitUpgradeStatus, getApplePayProviders, getBankTransferProviders, getCashAppLimits, getCashAppSessionStatus, getChainName, getCoinbaseApplePayLimits, getCoinbaseLegalAgreements, getDefaultOnrampToken, getDepositAddress, getDepositQuote, getExchangeSessionStartUrl, getExchanges, getExternalWallets, getFiatCurrencies, getFiatExchangeRates, getIconUrl, getIconUrlWithCdn, getIntegrationExchanges, getIntegrationHoldings, getIntegrationTransferDefaultToken, getIpAddress, getOnrampQuotes, getOnrampSessionStartUrl, getOnrampVerificationSession, getPreferredIconUrl, getProjectConfig, getPublicIncident, getSupportedDepositTokens, getSupportedDestinationTokens, getTokenChains, getTokenMetadata, getWalletByChainType, getWalletMobileDeepLink, i18n, isApplePayLimitReached, isDepositAddressValidationError, listPaymentIntentExecutions, mapDirectExecution, mapWalletToDepositAddress, pollDirectExecutions, queryExecutions, refreshIntegrationToken, requestCoinbaseApplePayLimitUpgrade, retrievePaymentIntent, revokeIntegrationToken, sendHypercoreTransaction, sendOnrampVerificationOtp, sendSolanaTransaction, setApiConfig, startIntegrationOAuth, stripeConfirmSession, stripeCreateAuthIntent, stripeCreateSession, stripeExchangeTokens, stripeGetConfig, stripeGetCustomer, stripeGetDefaultToken, stripeGetQuotes, stripeGetSession, stripeGetTransactionLimits, stripeListPaymentTokens, stripeListWallets, stripeRefreshQuote, stripeRefreshToken, useUserIp, verifyOnrampVerificationOtp, verifyRecipientAddress };
3103
+ export { type AccountConnectionData, ActionType, type AddressBalanceResponse, type AddressBalancesResponse, type AddressValidationFailureCode, type AddressValidationMetadata, type AddressVerification, type ApplePayLimitUpgradeStatus, type ApplePayProvider, type ApplePayProvidersResponse, type AuthenticateOAuthResult, type AutoSwapRequest, type AutoSwapResponse, type BankTransferConfig, type BankTransferProvider, type BankTransferProvidersResponse, type BlockedCountrySubdivision, type BuildHypercoreTransactionRequest, type BuildHypercoreTransactionResponse, type BuildSolanaTransactionRequest, type BuildSolanaTransactionResponse, type CashAppLimits, type CashAppSessionRequest, type CashAppSessionResponse, type CashAppSessionStatusResponse, type ChainType, type CheckoutEvent, CheckoutEventType, type CheckoutFlowFailedData, type CheckoutFlowStartedData, type CheckoutMethod, type CheckoutMethodSelectedData, type CheckoutPaymentIntent, type CheckoutPaymentIntentData, type CheckoutPaymentIntentSucceededEvent, type CoinbaseApplePayLimit, type CoinbaseApplePayLimitUpgradeOption, type CoinbaseApplePayLimitsResponse, type CoinbaseApplePaySessionResponse, type CoinbaseGooglePaySessionResponse, type CoinbaseLegalAgreement, type CoinbaseLegalAgreementsResponse, type CoinbaseWalletPayLimit, type CoinbaseWalletPayLimitUpgradeOption, type CoinbaseWalletPayLimitsResponse, type CoinbaseWalletPaySessionResponse, type ConfirmIntegrationTransferResult, type CreateCoinbaseApplePaySessionRequest, type CreateCoinbaseGooglePaySessionRequest, type CreateCoinbaseWalletPaySessionRequest, type CreateDepositAddressRequest, type CreateExchangeSessionRequest, type CreateExchangeSessionResponse, type CreateIntegrationTransferParams, type CreateIntegrationTransferResult, type CreateOnrampVerificationSessionRequest, DETECTION_ARM_DELAY_MS, DETECTION_POLL_INTERVAL_MS, type DefaultTokenChain, type DefaultTokenMetadata, type DefaultTokenResponse, type DepositAddress, type DepositAddressParams, type DepositAddressResponse, DepositAddressValidationError, type DepositEvent, DepositEventType, type DepositFlowFailedData, type DepositFlowStartedData, type DepositLimitReachedData, type DepositMethod, type DepositMethodSelectedData, type DepositQuote, type DepositQuoteRequest, DepositSession, type DepositSessionConfig, type DepositSessionDestination, type DepositSessionError, type DepositSessionErrorCode, type DepositSessionEvent, type DepositSessionEventMap, DepositSessionEventType, type DepositSessionParams, type DepositSessionSnapshot, type DepositSessionStatus, DepositSessionWaitError, type DepositSessionWaitErrorCode, type DepositSessionWaitOptions, type DestinationToken, type DestinationTokenChain, type DirectExecution, type DirectExecutionFailedEvent, type DirectExecutionResponse, type DirectExecutionSucceededEvent, type EvmContractCall, type ExchangeProviderInfo, type ExchangeProvidersResponse, type ExchangeSessionStartParams, type ExchangeWalletAddress, ExecutionStatus, type ExternalWalletChainType, type ExternalWalletInfo, type ExternalWalletsResponse, type FeaturedToken, type FeaturedWallet, type FiatCurrenciesResponse, type FiatCurrency, type GetBankTransferProvidersOptions, type GetExchangesQuery, type GooglePayProvider, type GooglePayProvidersResponse, type HypercoreActivationRequest, type HypercoreActivationResponse, type I18nStrings, type IconUrl, IneligibilityReason, type IntegrationAccount, type IntegrationExchangeInfo, type IntegrationExchangesResponse, type IntegrationFeeAmount, type IntegrationHoldingsResponse, IntegrationProvider, type IpAddressResponse, LOOKBACK_MS, type ListExecutionsParams, type LockedQuoteLimits, type LockedQuotePreview, type LockedQuotePreviewRequest, type OnrampQuote, type OnrampQuotesRequest, type OnrampQuotesResponse, type OnrampSessionCreatedData, type OnrampSessionCreatedEvent, type OnrampSessionPaymentMethod, type OnrampSessionPaymentMethodType, type OnrampSessionRequest, type OnrampSessionResponse, type OnrampVerificationFactor, type OnrampVerificationFactorStatus, type OnrampVerificationSession, type OnrampVerificationStatus, type OnrampVerificationTokenResponse, type PaymentIntent, type PaymentIntentDepositAddress, type PaymentIntentExecutionsResponse, type PaymentIntentStatus, type PaymentIntentType, type PaymentNetwork, type PollExecutionsRequest, type PollExecutionsResponse, type ProductType, type ProjectConfigResponse, type ProviderSelectedData, type PublicIncidentResponse, type QueryExecutionsRequest, type QueryExecutionsResponse, type RefreshIntegrationTokenResult, type RequestCoinbaseApplePayLimitUpgradeRequest, type RequestCoinbaseApplePayLimitUpgradeResponse, type RequestCoinbaseWalletPayLimitUpgradeRequest, type RequestCoinbaseWalletPayLimitUpgradeResponse, SCAN_NUDGE_INTERVAL_MS, SOLANA_USDC_ADDRESS, type SendHypercoreTransactionRequest, type SendHypercoreTransactionResponse, type SendSolanaTransactionRequest, type SendSolanaTransactionResponse, type SourceToken, type SourceTokenNetwork, type StartIntegrationOAuthResult, type StripeAccessTokenResponse, StripeApiResponseError, type StripeAuthIntentResponse, type StripeConfigResponse, type StripeConfirmRequest, type StripeConsumerWallet, type StripeCreateSessionRequest, type StripeCryptoCustomer, type StripeCustomerVerification, type StripeDefaultTokenResponse, type StripeListResponse, type StripeOnrampErrorType, type StripeOnrampSession, type StripeOnrampTransactionDetails, type StripePaymentToken, type StripeQuoteRequest, type StripeQuotesResponse, type StripeTransactionLimitEntry, type StripeTransactionLimitsResponse, type SupportedChain, type SupportedDepositTokensParams, type SupportedDepositTokensResponse, type SupportedDestinationTokensResponse, type SupportedSourceTokensQuery, type SupportedSourceTokensResponse, type SupportedToken, type TokenBalance, type TokenChain, type TokenChainIconUrl, type TokenChainsResponse, type TokenDisplayMetadata, type TokenIconUrl, type TokenInfo, type TokenMetadata, type TokenSelectedData, type TransferDefaultTokenParams, type TransferDefaultTokenResult, UnifoldClient, type UnifoldClientOptions, type UserIpInfo, type VerificationData, type VerifyAddressParams, type VerifyAddressRequest, type VerifyAddressResponse, type Wallet, type WalletConnectionData, type WalletMobileDeepLinkDepositAddress, type WalletMobileDeepLinkResponse, type WalletMobileDeepLinkWallet, type WalletPayLimitUpgradeStatus, type WalletPayMethod, type WalletPayProvider, type WalletPayProvidersResponse, type WalletSelectedData, type WithdrawDirectExecutionFailedEvent, type WithdrawDirectExecutionSucceededEvent, type WithdrawEvent, WithdrawEventType, type WithdrawFlowStartedData, authenticateIntegrationOAuth, buildHypercoreTransaction, buildSolanaTransaction, checkHypercoreActivation, confirmIntegrationTransfer, createCashAppSession, createCoinbaseApplePaySession, createCoinbaseGooglePaySession, createCoinbaseWalletPaySession, createDepositAddress, createExchangeSession, createIntegrationTransfer, createOnrampSession, createOnrampVerificationSession, createUnifoldClient, exchangeOnrampVerificationToken, formatStablecoinAmount, generateKSUID, generatePrefixedKSUID, getAddressBalance, getAddressBalances, getApiBaseUrl, getApplePayLimitUpgradeStatus, getApplePayProviders, getBankTransferProviders, getCashAppLimits, getCashAppSessionStatus, getChainName, getCoinbaseApplePayLimits, getCoinbaseLegalAgreements, getCoinbaseWalletPayLimits, getDefaultOnrampToken, getDepositAddress, getDepositQuote, getExchangeSessionStartUrl, getExchanges, getExternalWallets, getFiatCurrencies, getFiatExchangeRates, getGooglePayLimitUpgradeStatus, getGooglePayProviders, getIconUrl, getIconUrlWithCdn, getIntegrationExchanges, getIntegrationHoldings, getIntegrationTransferDefaultToken, getIpAddress, getOnrampQuotes, getOnrampSessionStartUrl, getOnrampVerificationSession, getPreferredIconUrl, getProjectConfig, getPublicIncident, getSupportedDepositTokens, getSupportedDestinationTokens, getTokenChains, getTokenMetadata, getWalletByChainType, getWalletMobileDeepLink, getWalletPayLimitUpgradeStatus, getWalletPayProviders, i18n, isApplePayLimitReached, isDepositAddressValidationError, isGooglePayLimitReached, isWalletPayLimitReached, listPaymentIntentExecutions, mapDirectExecution, mapWalletToDepositAddress, pollDirectExecutions, queryExecutions, refreshIntegrationToken, requestCoinbaseApplePayLimitUpgrade, requestCoinbaseWalletPayLimitUpgrade, retrievePaymentIntent, revokeIntegrationToken, sendHypercoreTransaction, sendOnrampVerificationOtp, sendSolanaTransaction, setApiConfig, startIntegrationOAuth, stripeConfirmSession, stripeCreateAuthIntent, stripeCreateSession, stripeExchangeTokens, stripeGetConfig, stripeGetCustomer, stripeGetDefaultToken, stripeGetQuotes, stripeGetSession, stripeGetTransactionLimits, stripeListPaymentTokens, stripeListWallets, stripeRefreshQuote, stripeRefreshToken, useUserIp, verifyOnrampVerificationOtp, verifyRecipientAddress };