# Use cases

1. API — provides a list of supported blockchains upon request GET `v1/platforms`.
2. GUI — the user selects a network the exchange is made within. For example, Ethereum, ChainID=1.
3. API — provides a list of blockchain tokens upon request POST `v2/tokens/list`.
4. API (optional) – provides calculated gas price values in GWEI (nAVAX for Avalanche) for fast, medium, low transaction time GET `v1/{chainID}/gasprices` (in the example GET `v1/1/gasprices`).
5. GUI — the user selects the exchange tokens and the sale amount. For example, 1000 USDT to WBTC.
6. GUI — the user sets the slippage tolerance value as a percentage. The recommended value is 1%.
7. GUI (optional) — the user selects the gas price value from #4.
8. API — endpoint GET `v1/{chainID}/price` (GET `v1/1/price`) provides the number of tokens that the user will receive for the purchase (0.05 WBTC).
9. GUI — the user connects the wallet.
10. API — endpoint GET `v1/{chainID}/transaction/allowance` (GET `v1/1/transaction/allowance`) returns the amount of tokens that the exchange smart contract has access to (not required for native coins).
11. GUI — if the value of the sale is greater than the value from #10, the user is prompted to provide access for the tokens exchange (otherwise the exchange transaction will not be processed).
12. API — endpoint GET `v1/{chainID}/transaction/approve` returns the input parameters (calldata) for a transaction to provide access to tokens, and the address of the contract where the transaction should be sent to.
13. GUI — generates an unsigned transaction based on the data from #12 and sends it to the user's connected wallet.
14. WALLET — the user confirms the operation in the wallet, and the wallet then signs the transaction and sends it to the blockchain.
15. GUI — after successful confirmation of the transaction from #14, the user is offered a button to exchange the selected tokens.
16. API — by endpoint GET `v1/{chainID}/quote` (GET `v1/1/quote`) provides the number of the tokens purchased (0.05 WBTC), transaction input parameters.
17. GUI — generates an unsigned transaction based on the data from #16 and sends it to the user's connected wallet.
18. WALLET — the user confirms the operation in the wallet, and the wallet then signs the transaction and sends it to the blockchain.
