> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Synapse Protocol (synapse)

> Cross-chain bridge and DEX with multi-chain AMM pools. Supports token swaps and bridging via SynapseBridge and CCTP router.

Cross-chain bridge and DEX with multi-chain AMM pools. Supports token swaps and bridging via SynapseBridge and CCTP router.

| Fact | Value |
| - | - |
| Category | Bridges |
| Family | none |
| Namespace | `Synapse` on ethereum, optimism, polygon, base, arbitrum, avalanche |
| Chains | ethereum, optimism, polygon, base, arbitrum, avalanche |

## Notes

* `deposit`: For canonical tokens supported directly by the bridge
* `depositAndSwap`: For bridging with an automatic swap on destination (e.g. bridge nUSD, swap to USDC on arrival)
* `redeem`: For synthetic bridge tokens (nUSD, nETH) -- burns on source, mints on destination
* Also supports CCTP-based USDC bridging via separate cctpRouter contract
* Finality: typically 5-15 minutes depending on route
* Requires ERC-20 approval to the SynapseBridge

## Its names in a program

On Ethereum, `Synapse` is a namespace: its contracts need no import.

```ts theme={null}
function main() {
  // Ethereum's cctpRouter, `0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E`.
  require(Synapse.CctpRouter != 0);
}
```

## Deployments

| Chain | Contract | Address | In a program |
| - | - | - | - |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | cctpRouter | `0x12715a66773BD9C54534a01aBF01d05F6B4Bd35E` | `Synapse.CctpRouter` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | synapseBridge | `0x2796317b0fF8538F253012862c06787Adfb8cEb6` | `Synapse.SynapseBridge` |
| [Optimism](https://docs.eco.com/sauce-sdk/reference/chains/optimism.md) | synapseBridge | `0xAf41a65F786339e7911F4acDAD6BD49426F2Dc6b` | `Synapse.SynapseBridge` |
| [Polygon](https://docs.eco.com/sauce-sdk/reference/chains/polygon.md) | synapseBridge | `0x8F5BBB2BB8c2Ee94639E55d5F41de9b4839C1280` | `Synapse.SynapseBridge` |
| [Base](https://docs.eco.com/sauce-sdk/reference/chains/base.md) | synapseBridge | `0xf07d1C752fAb503E47FEF309bf14fbDD3E867089` | `Synapse.SynapseBridge` |
| [Arbitrum One](https://docs.eco.com/sauce-sdk/reference/chains/arbitrum.md) | synapseBridge | `0x6F4e8eBa4D337f874Ab57478AcC2Cb5BACdc19c9` | `Synapse.SynapseBridge` |
| [Avalanche C-Chain](https://docs.eco.com/sauce-sdk/reference/chains/avalanche.md) | synapseBridge | `0xC05e61d0E7a63D27546389B7aD62FdFf5A91aACE` | `Synapse.SynapseBridge` |

## ABI

### `SynapseBridgeABI`

`import SynapseBridgeABI from "./protocols/synapse/SynapseBridgeABI.json";` Speaks for: synapseBridge.

* `deposit(address to, uint256 chainId, address token, uint256 amount)`
* `depositAndSwap(address to, uint256 chainId, address token, uint256 amount, uint8 tokenIndexFrom, uint8 tokenIndexTo, uint256 minDy, uint256 deadline)`
* `redeem(address to, uint256 chainId, address token, uint256 amount)`

## Next steps

* [Protocols](https://docs.eco.com/sauce-sdk/reference/protocols.md): the other protocols, by what they do.
* [Protocols and tokens](https://docs.eco.com/sauce/names.md): calling a contract by its namespace, or through its ABI.
* [Glossary](https://docs.eco.com/sauce/glossary.md): the words these pages use, in plain terms.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.