Integrating Across into your application

Instructions and examples for calling the smart contract functions that would allow third party projects to transfer assets across EVM networks.

Across was designed as a platform on which third party projects enabling cross chain asset transfer could be built. We are very excited to build together and we've put together this guide which should contain everything you need to integrate with Across.

If you have further questions or suggestions for this guide, please send a message to the #developer-questions channel in the Across Discord.

How to initiate a deposit

Deposits are initiated from contracts called "SpokePools" deployed on any supported EVM. For example, on Ethereum the contract is named "Ethereum_SpokePool.sol"_, and on Optimism the contract is named "Optimism_SpokePool.sol".

Spoke pool addresses can be found here.

Deposits are triggered via the SpokePool contract's deposit function, whose parameters are explained in detail here. This documentation also explains how to populate parameters like relayerFeePct and quoteTime.

Here is a deposit sent on Optimism. Here is a deposit on Ethereum

How to track a deposit

Deposit and corresponding fill events are conveniently scraped by a database and displayed here.

The database implementation can be found in this repository.

How to speed up a deposit that is taking a long time to be picked up by a relayer

The lower a deposit's relayer fee %, the less relayers are incentivized to fulfill it. While a deposit is not fully filled, its relayer fee % can be increased by calling speedUpDeposit.

Using the API versus SDK to construct deposit parameters

We recommend using the API for the easiest way to query suggested deposit params.

Commonly asked questions

  • Can I use the Across SDK to submit contract transactions?

    • Not yet, working on it!

Last updated