Symbiosis API
Symbiosis API | Symbiosis Finance | Swagger
What is the Symbiosis API?
The Symbiosis API allows you to integrate the core functionalities of the Symbiosis Protocol into your application, platform, or protocol. It provides decentralized cross-chain swaps and liquidity management, enabling users to interact with multiple blockchain networks without intermediaries.
Checklist Before Going to Production (Mainnet)
Warning: If any of these checks fail, you put the assets of your users at risk. Therefore, you must not go to Mainnet with real assets and real users. This could result in the loss of your users' assets.
Approval of ERC20 Tokens: Always approve users' ERC20 tokens for only one contract — the
metaRouterGateway
— on each blockchain. Verify the contract addresses for all supported blockchains in this configuration.Contract Existence and Address Validation: Ensure that the contracts used in your integration are deployed on the respective blockchains, and that their addresses on each blockchain match those listed in this configuration.
Handling of Calldata: Do not modify, reuse, or cache calldata retrieved from Symbiosis SDKs or API methods.
Testing: After deployment to Mainnet, conduct at least one cross-chain operation to ensure proper functionality.
Reminder: Perform this checklist during the initial deployment and after every software update.
Understanding the Symbiosis Protocol
The key components for understanding the Symbiosis Protocol include:
The Symbiosis Core Contracts Interactions: Symbiosis Routing Contracts.
Fee Collection: Symbiosis & Fees.
Stuck cross-chain operations handling: Symbiosis & Emergencies.
Supported Blockchains and Tokens
Supported Blockchains
Chain-specific values (chain IDs, etc.) can be found in the following configuration:
You can also retrieve a list of currently supported blockchains using the /v1/chains
endpoint.
Supported Tokens
Using the Symbiosis API, you can operate any token that exists and can be exchanged in DEXs within the blockchains supported by the Symbiosis Protocol. There are no restrictions on the tokens to operate, and you may define your own list of supported tokens if needed.
Swagger API Documentation
The Symbiosis API documentation, powered by Swagger, provides an interactive way to explore and test all endpoints:
Mainnet Documentation: Access the Swagger interface for the Mainnet environment.
Note on Testnet: While a Testnet environment exists for testing purposes, functionality verified on Testnet does not guarantee the same behavior on Mainnet. We strongly recommend testing directly on Mainnet using low-cost networks and small token amounts.
Swap Workflow Using the Symbiosis API
A General Workflow for Performing a Swap Using the Symbiosis API
Call
/v1/chains
to get a list of available blockchain networks.Call
/v1/swap-limits
to verify swap limits (the minimum and maximum allowed swap amounts).Call
/v1/swap
to get the calldata (payload) needed to execute the swap through Symbiosis protocol.If the source token is not a native gas token (e.g., ERC-20 tokens on EVM chains), approve the smart contract to spend the user's tokens.
Sign the calldata obtained in Step 3 using the wallet. Submit the transaction to the source blockchain. Since network conditions constantly change, calldata must be regenerated periodically (e.g., every 30 seconds) to ensure it remains valid before execution.
Call
/v1/tx/{chainID}/{txHash}
to monitor the progress of the swap. This endpoint provides real-time status updates for cross-chain operations.
Handling Transactions & Approvals
Approving smart contracts, signing, and sending transactions are performed through the user's wallet (e.g., MetaMask, WalletConnect, Coinbase Wallet) using wallet APIs. These actions are not handled directly by the Symbiosis API but must be performed via wallet interactions initiated by the application.
Checking API Health & Swap Time
An application can perform health checks periodically or before each swap using /health-check
. The frequency depends on the app's load and expected behavior.
To get an approximate swap duration, use the swap time estimation endpoint /v1/swap-durations
. The estimated swap time is based on historical data and a real swap time may vary due to changing network conditions.
Examples
Symbiosis WebApp
The Symbiosis WebApp uses the Symbiosis API for interacting with the Symbiosis Protocol and serves as a reference for supported protocol functionalities.
Swagger
The Swagger documentation of the Symbiosis API provides examples for every endpoint. Simply scroll to the endpoint of interest, input the required data, or use preset values, and execute the example.
Last updated
Was this helpful?