How to trade crypto assets using decentralized exchanges
Before we jump in here’s an obligatory DYOR statement because some of you reading this are degen g̶a̶m̶b̶l̶e̶r̶s̶ traders: Please do your own research, this guide is not meant to be viewed as financial or investment advice.
What: Here’s a step-by-step guide to moving funds from your bank account into blockchain wallets to purchase Solana and Ethereum based crypto-assets through decentralized exchanges.
Why: Whether you’re an investor, day-trader, or Web3 application end-user, there are often benefits to being an early holder of crypto-assets. The problem is many assets aren’t available on centralized exchanges upon their public release. To stay ahead of the market and get the best rates, use decentralized exchanges.
Key terms before we dive into the details:
- Centralized Exchange (CEX): An exchange that facilitates asset transactions by acting as a middle man or third party. Typically these exchanges have large reserves of fiat currencies (government-issued currency) and crypto-assets. As a result, buyers and sellers can only purchase and sell assets that the CEXs hold.
- Decentralized Exchange (DEX): An exchange offering direct peer-to-peer asset transactions without the need for an intermediary. DEXs typically have a wider variety of assets available for trading. I’ll cover the Uniswap and Orca DEXs in this guide.
- Blockchain Wallet: A digital wallet that holds the “keys” to your crypto stored on Blockchains such as the Ethereum, Solana, and Bitcoin networks.
- USD Stablecoin: Crypto-assets pegged to the value of the U.S. dollar. A popular stablecoin is USDC. USDC “is fully backed by cash and equivalents and short-duration U.S. Treasuries, so that it is always redeemable 1:1 for U.S. dollars. Each month, we publish attestation reports by Grant Thornton regarding the reserve balances backing USDC.”
Overview of Steps
- Fiat On-ramp via CEX
- Create a Blockchain Wallet
- Transfer Funds from CEX to Blockchain Wallet
- Connect Blockchain Wallet to DEX and Trade
Step 1: Fiat On-ramp via CEX
The cheapest way to use fiat money from your bank account to purchase crypto is to convert it into a USD stablecoin, such as USDC, via CEX. I’ll use FTX (CEX) to demonstrate the process in this guide. FTX allows you to convert your fiat into Ethereum-based USDC or Solana-based USDC. The flexibility is great if you plan to purchase both Ethereum and Solana based assets.
First, create an account:
Create an FTX account. The easiest way to do this is to create an account using your Gmail.
Second, verify your identity:
On the following screen, you’ll see that FTX requires you to verify your identity to create an account. You’ll only need Level 1 Identity Verification. Select the “individual” verification type, enter your information, and click “Submit Information.” This confirmation process typically takes 1–3 business days.
Third, connect your bank account:
Once FTX has verified your identity, you can connect your bank account. From the FTX homepage, select your name at the top right corner and click “Wallet.” Once on the “Wallet” page, select the “Balances” tab and then click “All Balances.” Locate USD in the table on the bottom half of the screen (it should be the first entry). Click “deposit.”
When the “Deposit USD” window appears, select “Deposit from bank account (ACH).”
Click “Connect another bank account” and agree to the disclaimer on the next window.
A Plaid window will appear; click “continue.”
Select your bank; click “continue.” A pop-up window will appear, asking you to sign in to your bank account. Once you’ve signed in, follow the prompts for your bank’s 2FA if you have that setup.
Once your bank account is connected, you can deposit funds via ACH. Due to FTX’s internal risk measures, you’ll need to wait ~7 days from when the funds clear to withdraw.
Step 2: Create a Blockchain Wallet
A blockchain wallet is required to interact with DEXs. There are plenty of these out there, but I’ll cover MetaMask and Phantom in this guide.
First, determine if you want to trade Ethereum or Solana assets:
Determine if you want to purchase Ethereum or Solana based assets.
Download the MetaMask Google Chrome extension if you want to purchase Ethereum-based assets.
Download the Phantom Google Chrome extension if you want to purchase Solana-based assets.
Second, complete your blockchain wallet setup:
MetaMask and Phantom both provide user-friendly guided instructions for completing wallet setup. To keep this document short(ish), I didn’t include a detailed step-by-step here since it’s relatively straightforward. If you’re having issues or prefer to follow my wallet setup guides, I’ve linked them below. The key takeaway is to make sure you save your seed phrase. A seed phrase is a collection of words that act as a “master password.” If you ever lose your wallet password or decide to connect your wallet to another device, you’ll need your seed phrase.
Step 3: Transfer Funds from CEX to Blockchain Wallet
Once your funds are cleared for withdrawal within FTX (which usually takes less than 10 days), you can transfer them over to your blockchain wallet. I’ve split this section up into two parts. The first part covers FTX to MetaMask transfers, and the second covers FTX to Phantom transfers.
I know I said this was the cheapest method. However, due to the congestion on the Ethereum network, FTX charged me 10 USDC at the time of withdrawal to my Ethereum wallet (MetaMask) to offset gas fees (transaction fees paid to the decentralized network of computers maintaining the blockchain). Withdrawals to Solana wallets (Phantom) will be free as the network has negligible gas fees and much higher throughput.
FTX to MetaMask
First, navigate to your USD balance:
From the FTX homepage, select your name at the top right corner and click “Wallet.”
Once on the Wallet page, select the “Balances” tab and then click “All Balances.” Locate USD in the table on the bottom half of the screen (it should be the first entry). Click “withdraw” then select “Withdraw USDC.”
Second, withdraw your USD balance:
In the pop-up “Withdraw USDC” window, select “Withdraw USDC,” then enter the amount you wish to withdraw.
Then navigate to your MetaMask wallet via the browser extension. Copy your MetaMask wallet address.
Paste your MetaMask wallet address into the “USDC Address” field within the “Withdraw USDC” pop-up window. Then select “Ethereum ERC20” in the “Withdrawal Method” drop-down field. Lastly, enter in your FTX 2FA if you have that setup.
It should take less than 15 minutes for your USDC to appear in your MetaMask wallet. The withdrawal cost from FTX to MetaMask will vary depending on Ethereum network congestion. At the time of my withdrawal, the fee was 10 USDC. If you’ve waited over an hour and don’t see your USDC in your MetaMask, click “Refresh list” at the bottom of your wallet user interface.
FTX to Phantom
First, navigate to your USD balance:
From the FTX homepage, select your name at the top right corner and click “Wallet.”
Once on the Wallet page, select the “Balances” tab and then click “All Balances.” Locate USD in the table on the bottom half of the screen (it should be the first entry). Click “withdraw” then select “Withdraw USDC.”
Second, withdraw your USD balance:
In the pop-up “Withdraw USDC” window, select “Withdraw USDC,” then enter the amount you wish to withdraw.
Then navigate to your Phantom wallet via the browser extension. Copy your Phantom wallet address.
Paste your Phantom wallet address into the “USDC Address” field within the “Withdraw USDC” pop-up window. Then select “Solana SPL” in the “Withdrawal Method” drop-down field. Lastly, enter in your FTX 2FA if you have that setup.
It should take less than 5 minutes for your USDC to appear in your Phantom wallet. The withdrawal from FTX to Phantom should be free.
Step 4: Connect Blockchain Wallet to DEX and Trade
Once your USDC is in your blockchain wallet, you’re ready to start trading.
Like Step 3, I’ve split Step 4 into two parts. The first part covers using MetaMask to trade with Uniswap; the second covers using Phantom to trade with Orca.
- Navigate to Uniswap if you want to trade Ethereum-based assets.
- Navigate to Orca if you want to trade Solana-based assets.
Use MetaMask to trade with Uniswap
First, connect your MetaMask wallet:
In the Uniswap page, click on “Connect Wallet” in the top right corner
In the “Connect a wallet” pop-up window, select MetaMask
MetaMask allows you to have multiple wallets. Select the wallet holding your USDC in the MetaMask pop-up window.
Click “Connect” to confirm the connection between MetaMask and Uniswap.
Second, start trading using your USDC:
Click on the drop-down menu in the top entry of the center swap console and select “USDC.”
In the bottom entry of the center swap console, click on the drop-down and select the token you want to purchase. In this example, I chose MATIC.
Enter the amount of USDC you want to trade for the purchase token. Then, allow Uniswap to use your USDC. Click on the blue banner “Allow the Uniswap Protocol to use your USDC” and then click “Sign” in the MetaMask pop-up window to approve.
Click on “Swap” to confirm the trade. You can review the gas fees in the center console before executing the trade.
In my example, I’m trading $50 USDC for MATIC. Uniswap provided me with an estimated gas fee of ~$22. In the MetaMask confirmation window, gas fees jumped to ~$42.
I didn’t want to purchase $50 worth of MATIC and pay a $42 transaction fee, so I rejected the trade. Due to the congestion on the Ethereum network, I wouldn’t recommend trading on Uniswap unless you plan to trade >$1000.
Use Phantom to trade with Orca
First, connect your Phantom wallet:
In the Orca page, click on “Connect Wallet” in the top right corner
In the “Connect a wallet” drop-down menu, select Phantom and enter your password
Phantom allows you to have multiple wallets. Make sure the Phantom extension is set to the wallet holding your USDC
Second, start trading using your USDC:
Click on the drop-down menu in the top entry of the center swap console and select “USDC.”
In the bottom entry of the center swap console, click on the drop-down and select the token you want to purchase. In this example, I chose SHDW.
Enter the amount of USDC you want to trade for the purchase token. I specified $100 worth of USDC. Click on the “Fair price” drop-down to see transaction details along with the estimated gas fees. For my trade, the estimated Orca fees were 0.4 SHDW which was ~ $0.30 at the time of the trade. Note: the Orca fee is separate from the Solana gas fees. This fee supports the Orca DEX.
Click on “Exchange” in the center swap console to execute the transaction. Then select “Approve” in the Phantom pop-up window. In the pop-up window, you can see that gas fees on Solana are <0.00001 SOL (insanely cheap).
The trade will execute almost instantly, and you can see that my balance of SHDW increased.
Closing Statement
This content was put together in February 2022 so things may be different by the time you read this article. If you have any questions/need help, feel free to reach out or drop a comment.