---
title: "Perform a contract call across blockchains (BETA)"
method: POST
path: "/v1/quote/contractCall"
deprecated: true
---

# Perform a contract call across blockchains (BETA)

`POST /v1/quote/contractCall`

## Request

- Base URL: `https://li.quest`
- URL: `https://li.quest/v1/quote/contractCall`
- Auth: none declared
- TypeScript: <https://skmtc.dev/lifi/apis/li-fi-api/docs/v1/quote/contractCall/post.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

This endpoint has been deprecated in favour of /quote/contractCalls.

## Headers

- `x-lifi-api-key` string

## Request body

- ContractCallRequest: Object defining instructions on how to perform a cross chain call
  - `fromChain` number, required: The sending chain. Can be the chain id or chain key
  - `fromToken` string, required: The token that should be transferred. Can be the address or the symbol
  - `fromAddress` string, required: The wallet that will send the transaction and contains the starting token
  - `toChain` number, required: The receiving chain. Can be the chain id or chain key
  - `toToken` string, required: The token required to perform the contract interation (can be something to stake, donate or to be used as payment)
  - `toAmount` string, required: The amount of token required by the contract interaction. The LI.FI API will try and generate a quote that guarantees at least that amount on the destination chain.
  - `toContractAddress` string, required: The address of the contract to interact with
  - `contractOutputsToken` string: Some contract interactions will output a token. This is the case in things like staking. Omit this parameter if no token should be returned to the user.
  - `toContractCallData` string, required: The calldata to be sent to the contract for the interaction on the destination chain.
  - `toContractGasLimit` string, required: The estimated gas used by the destination call. If this value is incorrect, the interaction may fail -- choose this carefully!
  - `toApprovalAddress` string: If the approval address is different than the contract to call, specify that address here
  - `toFallbackAddress` string: If the call fails, use this address to send the bridged tokens to. If none is specified, the sending address will be used.
  - `slippage` number, double: The maximum allowed slippage for the transaction as a decimal value. 0.005 represents 0.5%.
  - `integrator` string: A string containing tracking information about the integrator of the API
  - `referrer` string: A string containing tracking information about the referrer of the integrator
  - `allowBridges` string[]: List of bridges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `denyBridges` string[]: List of bridges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `preferBridges` string[]: List of bridges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `allowExchanges` string[]: List of exchanges that are allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `denyExchanges` string[]: List of exchanges that are not allowed for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `preferExchanges` string[]: List of exchanges that should be preferred for this transaction. Retrieve the current catalog from the `/v1/tools` endpoint.
  - `fee` number, double: The percent of the integrator's fee that is taken from every transaction. The maximum fee amount should be less than 100%.
  - `allowDestinationCall` boolean: Whether swaps or other contract calls should be allowed as part of the destination transaction of a bridge transfer. Separate swap transactions on the destination chain are not affected by this flag. By default, parameter is `true`.

## Response `200`

Object listing all the currently enabled bridges and exchanges.

- Tools
  - `exchanges` Exchange[]
    - `key` string: Identifier for an exchange tool. Retrieve the latest exchange keys from the `/v1/tools` endpoint. Keywords such as `all`, `none`, `default`, and `[]` are also supported where applicable.
    - `name` string: The common name of the tool
    - `logoURI` string: The logo of the tool
    - `supportedChains` string: The chains which are supported on this exchange
  - `bridges` Bridge[]
    - `key` string: Identifier for a bridge tool. Retrieve the latest bridge keys from the `/v1/tools` endpoint. Keywords such as `all`, `none`, `default`, and `[]` are also supported where applicable.
    - `name` string: The common name of the tool
    - `logoURI` string: The logo of the tool
    - `supportedChains` SupportedChains[]
      - `fromChainId` string: Supported `from` chain
      - `toChainId` string: Supported `to` chain

---

[API](https://skmtc.dev/lifi/apis/li-fi-api.md) - [All operations](https://skmtc.dev/lifi/apis/li-fi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lifi/apis/li-fi-api/revisions/82e72a7fa5e0?raw)
