Supported Chains
- Starknet
- Base
- Scroll
- HyperEVM
- Monad
Copy
/**
* List of supported chains and their router addresses.
*/
supportedChains: CHAIN_MAP[];
Supported Tokens
Returns the list of Tokens supported by FibrousCopy
/**
* Returns the supported token list for a given chain.
* @param chainId Chain ID.
* @returns Map of lowercased symbol -> Token.
*/
supportedTokens(chainId: number): Promise<Map<string, Token>>;
Supported Protocols
Returns the list of Protocols supported by FibrousCopy
/**
* Returns supported protocols.
* @param chainId Chain ID.
* @returns Mapping of AMM name -> protocol identifier.
*/
supportedProtocols(chainId: number): Promise<Record<string, ProtocolId>>;
Best Route
Returns the best route via FibrousCopy
/**
* Fetches the best route from the API.
* @param params Route parameters object.
* @returns Route response.
* @throws Error if the chain is not supported.
*/
getBestRoute(
params: getBestRouteParams,
): Promise<RouteResponse>;
getBestRouteParams Type
Copy
type getBestRouteParams = {
amount: AmountType;
tokenInAddress: string;
tokenOutAddress: string;
chainId: number;
options?: Partial<RouteOverrides>;
integrationData?: IntegrationData;
};
IntegrationData Type
Copy
type IntegrationData = {
integratorAddress: string;
integratorFeePercentageBps?: number; // 0-500, maximum 5%
integratorSurplusPercentageBps?: number; // 0-5000, maximum 50%
};
RouteOverrides Type
Copy
type RouteOverrides = {
reverse: boolean;
direct: boolean;
excludeProtocols: number[]; // Array of protocol IDs
};
Build Transaction
Returns calldata with best route to transaction via FibrousCopy
/**
* Legacy method that builds a route and calldata to prepare a transaction.
* Note: This will be deprecated; prefer `buildRouteAndCalldata`.
* @param params Transaction parameters object.
* @returns Starknet `Call` or EVM calldata/transaction structure.
*/
buildTransaction(
params: buildTransactionParams,
): Promise<Call | unknown>;
buildTransactionParams Type
Copy
type buildTransactionParams = {
inputAmount: AmountType;
tokenInAddress: string;
tokenOutAddress: string;
slippage: number;
destination: string;
chainId: number;
options?: Partial<RouteOverrides>;
integrationData?: IntegrationData;
};
Build Route and Calldata
Copy
/**
* Returns the best route and executable calldata in a single call.
* @param params Route and calldata parameters object.
* @returns Route and calldata structure (includes Starknet swap call when applicable).
*/
buildRouteAndCalldata(
params: buildRouteAndCalldataParams,
): Promise<RouteAndCalldataResponse>;
buildRouteAndCalldataParams Type
Copy
type buildRouteAndCalldataParams = {
inputAmount: AmountType;
tokenInAddress: string;
tokenOutAddress: string;
slippage: number;
destination: string;
chainId: number;
options?: Partial<RouteOverrides>;
integrationData?: IntegrationData;
};
Build Approve Starknet
Copy
/**
* Builds Starknet approve call parameters.
* @param amount Amount to approve (will be converted to hex).
* @param tokenAddress ERC-20 token address.
*/
buildApproveStarknet(amount: AmountType, tokenAddress: string): Promise<Call>;
Build Approve EVM
Copy
/**
* Performs EVM approve if needed and returns the result.
* @param amount Amount to approve.
* @param tokenAddress ERC-20 token address.
* @param account Wallet/signer used for the transaction.
* @param chainId Chain ID.
* @returns `true` if allowance is sufficient or approve succeeded.
*/
buildApproveEVM(
amount: AmountType,
tokenAddress: string,
account: Wallet,
chainId?: number,
): Promise<boolean>;
Best Route Batch
Copy
/**
* Fetches best routes in batch for multiple inputs (Starknet and Base for now).
* @param amounts List of input amounts.
* @param tokenInAddresses Input token addresses.
* @param tokenOutAddresses Output token addresses.
* @param chainId Chain ID.
* @param options Optional route parameters.
* @returns List of route responses.
*/
getBestRouteBatch(
amounts: bigint[] | string[] | number[] | BigNumberish[],
tokenInAddresses: string[],
tokenOutAddresses: string[],
chainId: number,
options?: Partial<RouteOverrides>,
): Promise<RouteResponse[]>;
Build Batch Transaction
Copy
/**
* Builds calldata/call list for batch transactions (Starknet for now).
* @param inputAmounts Input amounts.
* @param tokenInAddresses Input token addresses.
* @param tokenOutAddresses Output token addresses.
* @param slippage Slippage percentage.
* @param destination Receiver address.
* @param chainId Chain ID.
* @param options Optional parameters.
* @returns Array of Starknet `Call`s or chain-specific payload.
*/
buildBatchTransaction(
inputAmounts: AmountType[],
tokenInAddresses: string[],
tokenOutAddresses: string[],
slippage: number,
destination: string,
chainId: number,
options?: Partial<RouteOverrides>,
): Promise<Call[] | unknown>;