# Guide to USDC off ramping
## Core Concepts
In order to understand fully how the off-ramping works and also to have the ability to find out new methods in the future, it's necessary to give an introduction of how the different pieces fit together.
### Ecosystems
There are 3 main ecosystems involved in the following methods
- Cosmos
- Ethereum
- Polygon
All these are isolated blockchains. One can program tokens on a blockchain. A token (like USDC) can exist in all of these ecosystem in parallel.
People can easily and cheaply transfer tokens within one ecosystem, but not across them, unless we use a **bridge**, which is ofter slow and expensive.
There is an interesting aspect of Comsos: one can program not only tokens, BUT ALSO other blockchains on top of it. And transferring tokens across these blockchains is very cheap and fast.
So I can have token A on Cosmos Chain X and token B on Cosmos Chain Y and exchange them **across** blockchains very cheaply.
This process is called **IBC transfer** and it does not exist in the other ecosystems.
We learned the terms
- Blockchain: a technology where tokens can be programmed
- Cosmos: e blockchain where blockchains can also be programmed
- Bridge: a technology to transfer tokens between blockchains
- IBC transfer: a technology to transfer tokens between blockchains **within Cosmos**
### Neokingdom
Where is Neokingdom? Neokingdom is a token programmed on top of EVMOS, which is a Blockchain that exists on Comsos.
### USDC
USDC is a token that was originally programmed on Ethereum, but is now available almost everywhere.
There is a Polygon version of USDC and also a Cosmos version of USDC, which is called axlUSDC.
axlUSDC is programmed on top of the Axelar Blockchain, which is inside the Cosmos ecosystem.
### Axelar
Axelar is a blockchain of the Cosmos ecosystem. Among the other things, they provide the Cosmos version of USDC (called axlUSDC) and a bridge from Cosmos to many other blockchains.
### Centralized Exchange
Centralized Exchanges (CEX for brevity) is where one can usually move assets from the crypto world to the fiat world. They provide exchange pairs for most of the main cryptos in EUR.
"Can I send axlUSDC to my Kraken account"?
No you can't. As we mentioned earlier, USDC exists in multiple blockchain. Kraken supports only the one on the Ethereum blockchain, which is called ERC20 USDC.
So, you first need to **bridge** your axlUSDC to Ethereum, and only then you can exchange them.
Example of cryptos supported by most exchanges
- ERC20 USDC
- Atom (native currency of Cosmos)
- BNB
- MATIC
Just to mention a few.
### Recap

To summarize: in order to go transform USDC (got from NEOK) in fiat EURs, the high-level steps are:
- Find a currency that is supported both on your centralized exchange and on Cosmos
- Convert your USDC into this currency (it could as well remain USDC)
- If this currency can only be exchange from specific blockchains inside your centralized exchange, bridge it to the correct blockchain
- Transfer the amount to your centralized exchange deposit address
- Convert to EUR
- Wire them to your bank account.
## Common Step - Convert to IBC USDC
Without going into details, the first thing to do is to convert your USDC into a version that is usable inside Cosmos. It's called IBC USDC.
Go to https://app.evmos.org and click "Launch App". Then connect.

Click on "Assets":

Click on "Convert" under "axlUSDC"

Write the amount you want to off-ramp, select "ERC-20", click "Convert"

Now you have IBC-USDC, which can be transferred anywhere inside Cosmos (and beyond).
## Method 1 - Direct Bridge
This method uses a bridge to move "axlUSDC" from Cosmos to Ethereum, identified then as simply USDC. This allows you to transfer your USDC directly do your centralized exchange deposit address.
The "only" issues is that, due to high Ethereum gas fees, this operation will cost around 80$.
Go to https://satellite.money/ and connect your Keplr Wallet.
- Select Evmos on the left
- Select Ethereum on the right
- Select axlUSDC as the starting token
- Select USDC as the target token
- Fill in your deposit address
- Type the amount of axlUSDC you want to offramp.
- Click "Generate Deposit Address"

Once the button appear, click on "Send from Keplr"

And approve the transaction.
After a few minutes, the USDC should appear on your centralized exchange account. From here on, you know what to do.
## Method 2 - Through Atom
This method allows you to skip the high transaction cost of the bridge and skip bridging altogether.
Go to https://satellite.money/ and connect your Keplr Wallet.
- Select Evmos on the left
- Select Osmosis on the right
- Select axlUSDC as the starting token
- Select axlUSDC as the target token
- Click with "Fill with Keplr" button
- Type the amount of axlUSDC you want to offramp.
- Click "Generate Deposit Address"

Once the button appear, click on "Send from Keplr"

And approve the transaction.
Go to https://app.osmosis.zone/ and
- Select USDC (Axelar) as the starting currency
- Select Atom as the target currency
- Push "Swap"

When the confirmation panel appears, click on "Advanced"

You should now be able to select the fee currency. If you don't have any OSMO, you can use USDC.

Confirm the transaction and then go to the "Assets page".

Once the transaction is finalized, you should see your Atom balance going up. Click "Withdraw"

Input the Atom you want to off-ramp in the following panel and click "Withdraw ATOM"

Confirm the transaction.
Open your Keplr wallet and open the blockchain selection dropdown menu

Click on the "Cosmos Hub" blockchain

If the transaction is completed, you should now see the amount of ATOM you withdrew during the previous steps. Else, wait.
Click on Send

Fill in the Recipient box with the address of your Centralized Exchange deposit address for the ATOM currency.
Depending on the exchange, you might also have to put some identification code in the Memo box.

Click "Send" and approve the transaction.
After a few minutes, the ATOM should appear on your centralized exchange account. Convert them to EUR and then off-ramp them to your bank account.
## Method 3 - Polygon
This 3rd method has higher transaction fees, but allow you to keep your tokens in stable coins, avoiding sudden fluctuation in price.
Got to https://satellite.money/
- Select Evmos on the left
- Select Polygon on the right
- Select axlUSDC as the starting token
- Select axlUSDC as the target token
- Fill in your **PRIVATE** Polygon wallet address
- Type the amount of axlUSDC you want to offramp.
- Click "Generate Deposit Address"
NOTE: you will need MATIC in you Polygon Wallet.

Once the button appear, click on "Send from Keplr"

And approve the transaction.
Go to https://quickswap.exchange/,
Connect with Metamask to your PRIVATE Polygon wallet and enter the app.

- Select "axlUSDC" as the starting currency
- Enter the amount you want to swap
- Select "USDC" as the target currency
- Click "Swap"

On you Centralized Exchange account, make sure to get the deposit address for Polygon USDC. On Kraken it would look like this:

Open Metamask (or any wallet you are using for your private Polygon address).
Make sure you selected the network "Polygon Mainnet" and that the USDC appear in your balance (else, you need to import them, they are named "USDC (PoS)").
Click "Send"

Fill in your CEX deposit address for **POLYGON** USDC

Complete the steps and finalize the transaction
<p float="left">
<img src="https://hackmd.io/_uploads/H1FoRbKrn.png" width="300" />
<img src="https://hackmd.io/_uploads/H17nC-FSh.png" width="300" />
</p>
After a few minutes, you should see your USDC on your CEX balance. Convert them to EUR and send them to your bank account.