# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.glacislabs.com/architecture-overview/on-chain-interface.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
