Skip to content

Types

Glossary of Types in Fund components & utilities.

FundButtonReact

type FundButtonReact = {
  className?: string; // An optional CSS class name for styling the button component
  disabled?: boolean; // A optional prop to disable the fund button
  text?: string; // An optional text to be displayed in the button component
  hideText?: boolean; // An optional prop to hide the text in the button component
  hideIcon?: boolean; // An optional prop to hide the icon in the button component
  fundingUrl?: string; // An optional prop to provide a custom funding URL
  openIn?: 'popup' | 'tab'; // Whether to open the funding flow in a tab or a popup window
  /**
   * Note: popupSize will be ignored when using a Coinbase Onramp URL 
   * (i.e. https://pay.coinbase.com/*) as it requires a fixed popup size.
   */
  popupSize?: 'sm' | 'md' | 'lg'; // Size of the popup window if `openIn` is set to `popup`
  rel?: string; // Specifies the relationship between the current document and the linked document
  target?: string; // Where to open the target if `openIn` is set to tab
};

GetOnrampUrlWithProjectIdParams

Props used to get an Onramp buy URL by directly providing a CDP project ID.

See https://docs.cdp.coinbase.com/onramp/docs/api-initializing#generating-the-coinbase-onramp-buysell-url

type GetOnrampUrlWithProjectIdParams = {
  /**
   * The Project ID of your CDP project created at {@link https://portal.cdp.coinbase.com/}
   * This must be provided if you don't provide a sessionToken.
   */
  projectId: string;
  sessionToken?: never; // You cannot provide sessionToken when using projectId
  /**
   * The addresses that the customer's funds should be delivered to.
   *
   * Each entry in the record represents a wallet address and the networks it is valid for. There should only be a
   * single address for each network your app supports. Users will be able to buy/send any asset supported by any of
   * the networks you specify. See the assets param if you want to restrict the avaialable assets.
   *
   * Some common examples:
   *
   * Support all assets that are available for sending on the base network, only on the base network:
   *
   * `{ "0x1": ["base"] }`
   */
  addresses: Record<string, string[]>;
  /**
   * This optional parameter will restrict the assets available for the user to buy/send. It acts as a filter on the
   * networks specified in the {addresses} param.
   *
   * Some common examples:
   *
   * Support only USDC on either the base network or the ethereum network:
   *
   * `addresses: { "0x1": ["base", "ethereum"] }, assets: ["USDC"]`
   *
   * The values in this list can either be asset symbols like BTC, ETH, or asset UUIDs that you can get from the Buy
   * Options API {@link https://docs.cdp.coinbase.com/onramp/docs/api-configurations/#buy-options}.
   */
  assets?: string[];
} & GetOnrampBuyUrlOptionalProps;

GetOnrampUrlWithSessionTokenParams

Props used to get an Onramp buy URL using a session token created using the Onramp session token API.

See https://docs.cdp.coinbase.com/onramp/docs/api-initializing#getting-an-coinbase-onramp-buysell-session-token

type GetOnrampUrlWithSessionTokenParams = {
  /**
   * A session token create using the Onramp session token API. The token will 
   * be linked to the project ID, addresses, and assets params provided in the 
   */
  sessionToken: string;
  projectId?: never; // You cannot provide projectId when using sessionToken
  addresses?: never; // You cannot provide addresses when using sessionToken
  assets?: never; // You cannot provide assets when using sessionToken
} & GetOnrampBuyUrlOptionalProps;

GetOnrampBuyUrlOptionalProps

The optional properties that can be used to create an Onramp buy URL.

type GetOnrampBuyUrlOptionalProps = {
  /**
   * If specified, this asset will be automatically selected for the user in 
   * the Onramp UI. Should be a valid asset symbol e.g. BTC, ETH, USDC.
   */
  defaultAsset?: string;
  /**
   * If specified, this network will be automatically selected for the user in 
   * the Onramp UI. Should be a valid network name in lower case e.g. ethereum, 
   * base.
   */
  defaultNetwork?: string;
  /**
   * A unique identifier that will be associated with any transactions created 
   * by the user during their Onramp session. You can use this with the 
   * Transaction Status API to check the status of the user's transaction.
   * See https://docs.cdp.coinbase.com/onramp/docs/api-reporting#buy-transaction-status
   */
  partnerUserId?: string;
  /**
   * This amount will be used to pre-fill the amount of crypto the user is 
   * buying or sending. The user can choose to change this amount in the UI. 
   * Only one of presetCryptoAmount or presetFiatAmount should be provided.
   */
  presetCryptoAmount?: number;
  /**
   * This amount will be used to pre-fill the fiat value of the crypto the user
   * is buying or sending. The user can choose to change this amount in the UI. 
   * Only one of presetCryptoAmount or presetFiatAmount should be provided.
   */
  presetFiatAmount?: number;
  /**
   * The currency code of the fiat amount provided in the presetFiatAmount 
   * param e.g. USD, CAD, EUR.
   */
  fiatCurrency?: string;
  /**
   * A URL that the user will be automatically redirected to after a successful 
   * buy/send. The domain must match a domain on the domain allowlist in 
   * Coinbase Developer Platform (https://portal.cdp.coinbase.com/products/onramp).
   */
  redirectUrl?: string;
};