Documentation
API Reference
Types
ExchangeInfo

Type: ExchangeInfo

ExchangeInfo

This type represents the exchange info.

type ExchangeInfo = {
  name: string;
  id: string;
  logo: string;
  status: ExchangeStatus;
  supportedWalletTypes: string[];
  supportedFeatures: string[];
  auhenticationMethod: "oauth" | "apiKeys";
  isRequiringEmailConfirmation: boolean;
  minimumWithdrawalUrl?: string;
  minimumDepositlUrl?: string;
  isRequiringAddressWhitelisting: boolean;
  shouldCheckWhitelist: boolean;
  provideWhitelistedAddresses: boolean;
  ipWhitelistAddresses: string[];
  whitelistScopes?: ApiPermissions[];
  featuresUnderMaintenance: {
    send: boolean;
    trade: boolean;
    receive: boolean;
    trade_and_send: boolean;
  };
  apiManagementLink?: string;
  addressManagementUrl?: string;
  affiliationLink?: string;
  hybridAuthentication:
    | {
        oauth: ApiPermissions[];
        api_keys: ApiPermissions[];
      }
    | undefined;
  oauthAuthentication: {
    isOauthLoginSupported: boolean;
    hasPkceFlow: boolean;
    isUsingFastApi: boolean;
  };
  requiresUid: boolean;
  requiresPassword: boolean;
  requiresTwoKeys: boolean;
  inducedPermissions: Partial<Record<ApiPermissions, ApiPermissions[]>> | undefined;
  transferWalletTypes: WalletType[] | undefined;
};
  • name: string
    The exchange name.
  • id: string
    The exchange identifier.
  • logo: string
    The exchange logo.
  • status: ExchangeStatus
    The exchange API's status. See ExchangeStatus for more details.
  • supportedWalletTypes: string[]
    List of supported wallet types. See WalletType for more details.
    Example: ["spot", "margin", "futures"].
  • supportedFeatures: string[]
    List of supported features.
    Example: ["send", "trade", "trade_and_send", "receive"].
  • auhenticationMethod: "oauth" | "apiKeys"
    The authentication method. If oauth is specified, the exchange supports both OAuth and API keys.
  • isRequiringEmailConfirmation: boolean
    Indicates if email confirmation is required for withdrawals.
  • minimumWithdrawalUrl: string | undefined
    The exchange's minimum withdrawal URL.
  • minimumDepositlUrl: string | undefined
    The exchange's minimum deposit URL.
  • isRequiringAddressWhitelisting: boolean
    Indicates if address whitelisting is required for withdrawals.
  • shouldCheckWhitelist: boolean
    Indicates if the exchange allows checking if an address is whitelisted. If true, you can use the checkAddressIsWhitelisted method to check if the address is whitelisted.
  • provideWhitelistedAddresses: boolean
    Indicates if the exchange provides whitelisted addresses. If true, you can use the getWhitelistedAddresses method to get the list of whitelisted addresses.
  • ipWhitelistAddresses: string[]
    List of IP addresses that should be whitelisted for a set of credentials.
  • whitelistScopes: ApiPermissions[] | undefined
    List of scopes of API permissions that require the use of whitelisted IP addresses. If the exchange requires IP whitelisting only for withdrawals and you are adding a read-only API key, you don't need to require the user to whitelist their IP address.
  • featuresUnderMaintenance: { send: boolean; trade: boolean; receive: boolean; trade_and_send: boolean; }
    The set of features that are under maintenance. You shouldn't allow users to use a feature that is under maintenance.
  • apiManagementLink: string | undefined
    Link to the exchange's API management page. You can use it to redirect your users to create API keys.
  • addressManagementUrl: string | undefined
    Link to the exchange's address whitelisting and management page. You can use it to redirect your users to whitelist withdrawal addresses.
  • affiliationLink: string | undefined
    Link to the exchange's affiliation page. You can use it to redirect your users to create an account on the exchange.
  • hybridAuthentication: { oauth: ApiPermissions[]; api_keys: ApiPermissions[]; } | undefined
    For hybrid exchanges accepting both OAuth and API keys, the permissions allowed for each authentication method.
    Example: { oauth: ["read", "trade"], api_keys: ["read", "trade", "withdraw"] }.
  • oauthAuthentication.isOauthLoginSupported: boolean
    Indicates if OAuth2 login is supported.
  • oauthAuthentication.hasPkceFlow: boolean
    Indicates if the exchange supports the PKCE flow.
  • oauthAuthentication.isUsingFastApi: boolean
    Indicates if the exchange is using the Fast API.
  • requiresUid: boolean
    Indicates if the exchange requires an UID for authentication.
  • requiresPassword: boolean
    Indicates if the exchange requires a password for authentication.
  • requiresTwoKeys: boolean
    Indicates if the exchange requires two different keys, one for reading/trading and one for withdrawals (e.g. Binance).
  • inducedPermissions: Partial<Record<ApiPermissions, ApiPermissions[]>> | undefined
    Set of permissions that are induced by other permissions.
    Example: { "trade": ["withdraw"], "withdraw": ["trade"] }. This means that you need to have the trade permission to withdraw funds and the withdraw permission to trade.
  • transferWalletTypes: WalletType[] | undefined
    List of internal wallet types that support transfers between them. Use this field to retrieve balances on the trade or withdrawal pages. The SDK will automatically top up the final wallet type used for the given action to ensure there are sufficient funds. See WalletType for more details.
    Example: ["spot", "margin"].

ExchangeStatus

This enum represents the exchange status.

enum ExchangeStatus {
  Ok = "ok",
  Shutdown = "shutdown",
  Error = "error",
  Maintenance = "maintenance",
  Unknown = "unknown",
}