Skip to content

Overview

The Gas.zip gas refuel bridge supports over 200+ destination chains and 16 source chains. The primary function from a users perspective will be depositing, where you send the Gas.zip deposit contract some amount of the native source chain asset and it will be divided up among your desired destination chains.

Depositing to Gas.zip

Each inbound source chain has a deposit contract deployed that can accept any amount of the chain's native inbound currency (ETH, AVAX, BNB, MATIC) between $1.00 USD and $50.00 USD. Gas uses the CoinGecko API for real-time coin price calculations.

To call the deposit() function, you must supply a list of destination chain IDs and a destination address you desire to recieve the outbound funds. The destination address does not have to be the same address sending the inbound source transaction. The destination chain IDs are not the native chain IDs of each blockchain, they are internal chain IDs designated by Gas.zip. Please see Chain Support for this list of chain IDs.

Mutiple Destination Chains

To deposit to mutiple destination chains at once, you will need to add the destination chain IDs as uint8s into a single uint256. If you wanted to send to zkSync 51, Polygon zkEVM 52, Zora 56 and Gnosis 16, you would convert it in the following manner:

typescript
const chainsBN = [51, 52, 56, 16].reduce((p, c) => (p << BigInt(8)) + BigInt(c), BigInt(0))
 
// The result of this function is `859060240n`,
// which you would pass into the `chains` field in the `deposit()` function.