> For the complete documentation index, see [llms.txt](https://docs.glacislabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.glacislabs.com/architecture/on-chain-interface.md).

# On-Chain Interface

Airlift is available on the following Mainnet chains (in order of chain ID):

{% columns %}
{% column %}

* Ethereum&#x20;
* Optimism
* Flare
* Rootstock
* Binance Smart Chain
* Gnosis
* Unichain
* Polygon PoS
* Sonic
* Fraxtal
* zkSync
* Astar
* HyperEVM
* Polygon zkEVM
* Lisk
* Sei
* Vana
* Soneium
* Swellchain
* Ronin
  {% endcolumn %}

{% column %}

* Abstract
* Mantle
* Base
* Plasma
* Mode
* Arbitrum One
* Etherlink
* Celo
* Avalanche C-Chain
* Sophon
* Ink
* Linea
* BOB
* Katana
* Berachain
* Blast
* Scroll
* Corn
* Solana
  {% endcolumn %}
  {% endcolumns %}

{% hint style="warning" %}
If you would like to use Airlift on a chain that was not listed above, please contact us.
{% endhint %}

There is a single point of entry for Airlift's smart contracts: the `send` function.

```solidity
function send(
    address token, 
    uint256 amount, 
    bytes32 receiver, 
    uint256 destinationChainId, 
    address refundAddress,
    bytes32 outputToken
) payable returns (bytes memory)
```

This send function allows you to send any token registered to Airlift across chains. The parameters are as follows:

* `token` - The address of the token that you wish to send across chains.
* `amount` - The amount of the token that you wish to send across chains.
* `receiver` - The address of the receiver in bytes32 format. If an ethereum based wallet, encode the address as packed.
* `destinationChainId` - The EVM Chain ID of the destination chain. If the destination chain is not an EVM, special IDs will be allocated.
* `refundAddress` - The EVM address that the GMP addresses should refund unused cross-chain gas to in case too much was provided.
* `outputToken` - The address of the token you expect to receive on the destination chain in bytes32 format. If an ethereum based address, encode the address as packed.

Note that the send function is payable. Native gas currency must be included to pay for the cross-chain transfer, since the destination chain transfer must be incentivized. The amount required can be estimated via our API's quote endpoint.
