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. Ifoauth
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. Iftrue
, you can use thecheckAddressIsWhitelisted
method to check if the address is whitelisted.provideWhitelistedAddresses
:boolean
Indicates if the exchange provides whitelisted addresses. Iftrue
, you can use thegetWhitelistedAddresses
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",
}