Wormhole ids, not EVM ids
The API identifies a chain by its Wormhole chain id, not its EVM id. Base is 30, not 8453. An EVM id in that field is rejected or routed wrong. The name strings below are what a quote expects. A chain can be an origin without being a destination. The init payload returns originActive and destinationActive for the live set.
| Chain | API name | Wormhole id | EVM id |
|---|---|---|---|
| Solana | solana | 1 | — |
| Ethereum | ethereum | 2 | 1 |
| BNB Smart Chain | bsc | 4 | 56 |
| Polygon | polygon | 5 | 137 |
| Avalanche | avalanche | 6 | 43114 |
| Sui | sui | 21 | — |
| Arbitrum | arbitrum | 23 | 42161 |
| Optimism | optimism | 24 | 10 |
| Base | base | 30 | 8453 |
| Linea | linea | 38 | 59144 |
| Unichain | unichain | 44 | 130 |
| HyperEVM | hyperevm | 47 | 999 |
| Monad | monad | 48 | 143 |
| Fogo | fogo | 51 | — |
| HyperCore | hypercore | 65000 | — |
What a wallet approves
On every supported EVM chain the entry point is the Mayan Forwarder, 0x337685fdaB40D39bd02028545a4FfA7D287cC3E2. An ERC-20 input is approved to that address. The fee manager, at the same address on every supported EVM chain, is 0x54914A963c4197172130C26D496a367bD6609D88. It holds referrer fees on the routes that do not pay them out directly. Method-specific contracts, which the forwarder calls, are on the methods page. The SDK exports the same addresses as addresses.
Deposit-address payments use a factory at 0xfa829c5E1efc9d788280a8213cb0713be5474F7d and a wallet implementation at 0xFD7188cf0Ac99705Cc8c595a1d198C2a43df467C.
Solana, Sui, and HyperCore
Solana program ids published alongside the EVM contracts: Swift v2 mayan34VedncxdK2XobtvWFDXQASUTBXhUVzt2kKgny, the earlier Swift BLZRi6frs4X4DNLw56V4EXai1b6QVESN1BhHBTYM9VcY, MCTP dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU, Fast MCTP Gx9rivpS3YR8pBFwMuP6omYqVxunpLvLkNn7ubNyuZZ5, the auction program 8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a, Wormhole Swap FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf, the fee manager 5VtQHnhs2pfVEr68qQsbTRwKh4JV5GTu9mBHgHFxpHeQ, deposit addresses GFRP4yXUjvcQemf2zRJN8w9sPNaDk5PyBUQdPHD1AzLp, and the payload writer DwMLtdtJqJQkHzNcrdTBuWHJByJfgpKBnvFvzyKdy3cU.
Sui state objects: Swift 0x7ac01a7c14c53098a41593c7623823bb677b5201fb3ee35b75b47cfc6c6c6f40, Swift fee manager 0xe42174b6d742f40bd2b67b967542b21e6d7433f2d277a80bb59866ac73ff3f52, MCTP 0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c, MCTP fee manager 0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2.
HyperCore deposits and withdrawals are processed from Arbitrum and HyperEVM. The docs publish a bridge on Arbitrum at 0x2df1c51e09aecf9cacb7bc98cb1742757f163df7, a deposit processor at 0xdDd77e62C848C3334f1148d4F1457FC59ede4E4B, a withdraw processor at 0xe087f468efaece33b6b9b15c9448b8268bc3efe4, and a HyperEVM deposit processor at 0x56032241c0adab58a29b13e94fb595a4bc414e33.
APIs
- Quotes return an expected amount and a minimum. A token list exists per chain. Dropping the chain returns every chain. Any token with a contract address is routable. The list is not a whitelist that defines the universe.
- The explorer follows a swap by source transaction hash, by wallet, or by the order hash a gasless swap returns.
- Chain config is the init payload with
originActiveanddestinationActive.
Mayan