Skip to content

Instantly share code, notes, and snippets.

Last active June 17, 2024 13:28
Show Gist options
  • Save dkackman/bc0c223377f89d71b13c2c2f41fb25ca to your computer and use it in GitHub Desktop.
Save dkackman/bc0c223377f89d71b13c2c2f41fb25ca to your computer and use it in GitHub Desktop.
Staking XCH on Aerodrome

A Step by Step Guide to Staking XCH on

Why? Because while it's fairly simple, it is not discoverable. I had to ask for help (thanks @michaeltaylor3d).


You are familiar chia

This means you have a chia wallet and have farmed or bought some XCH.

Configure the bridge

Follow this guide to configure and learn how to use I used my coinbase wallet and it worked great. Most people probably use metamask for this sort of thing, so that's a safe bet too.

Read, but don't follow the sections about doing a transfer. The example in the guide is not the token exchange we are going to use but the steps are the same. We will cover that next so the important part is having an XCH wallet and Base ETH wallet connected on the bridge.

Connect aerodrome to your ETH wallet

Follow the steps in their connection guide. This will use the same Base ETH address that you used in the setup. Aerodrome doesn't know about the chia block chain so everything is transferred and stored via this Base network wallet, once bridged.


Step 1: Bridge XCH to Base

I am doing this with wallet connect, so make sure to have your Chia GUI open so you can confirm transactions. The same steps apply when using Goby give or take.

At select the XCH coin in the first drop down and provide the amount you want to transfer. Make sure the direction is from Chia to Base.


Click Bridge


When you click the Initiate Bridging via Wallet button switch to the Chia GUI and confirm the request. Though the confirmation came up for me in the Chia app, errored creating the offer so I had to use the Generate offer manually option.

In the Chia Offer Build create an offer for the total amount shown in the UI (amount to transfer plus toll) and leave the Requesting side blank.


Save the offer to a file and copy the file contents to the clipboard. As soon as you paste it in the offer1... text box it will initiate on chain even though there is a Submit button. So be sure about the amount you want to transfer.

There will be a couple of status updates in the page as the offer is confirmed on chia and base. This takes about 15 minutes. After confirmations onchain, claim the tokens on the Base network. This requires confirmation in your ETH wallet, so be ready to acknowledge the transaction there. If the confirmation doesn't work you can safely refresh the page as all of the transaction info is url encoded.


Once it says "Transaction Confirmed" we are done with Step 1!


In your ETH wallet you should now see the correct amount of Chia Warped XCH.

Step 2: Stake wXCH

Now head over to your already connected

The first thing we're going to do is swap half of the wXCH for USDC. Staking requires both tokens in equal value.


Click Allow wXCH and confirm in your ETH wallet. This sometimes takes a couple of tries for me but refreshing the page and/or connection seems to solve it. Then click Swap wXCH for USDC and confirm that in your ETH wallet.

Now go to the Liquidity tab. This page can take a few seconds to fully load but once it does click Deposit Liquidity This too takes a few seconds but select wXCH and USDC.


Click New Deposit (wait some more...)


Allow both wXCH and USDC and confirm in your wallet. You will need to do this every time. (Again some page refreshes might get you unstuck waiting for the confirmation popup in your wallet).

Click the big Deposit button and confirm in your wallet. After that's done hit the Stake Your Deposit button


Allow and confirm the liquidity token vAMM-wXCH/USDC and then Stake with the button


Confirm in your wallet and you are done!

Now head over to the dashboard and you will see your deposits and staked liquidity, as well as the liquidity rewards.


The rewards come in the form of AERO Tokens which can be swapped for more wXCH and USDC for staking, sold on places like coinbase, or Locked for the purposes of promoting the wXCH AMM pool on aerodrome.

Step3 (optional but encouraged): Locking, Voting, and Relays

Voting for the vAMM-wXCH/USDC pool increases the percentage of emissions it receives and pays out. Voting on aerodrome is done with the AERO token.


To vote one first must create a lock. A lock reserves an amount of AERO for given period of time. The more tokens reserved for longer; the more voting power. The amount and duration can both be increased but not decreased.

On the Lock tab click the Create Lock button.


Select the amount of AERO to lock, the time frame, allow the AERO token and confirm in your ETH wallet. Then hit the Lock button creating the lock.


Now that some AERO is locked you can use it to vote on the Vote tab. A vote lasts for a number of days and you must re-vote each epoch unless you use a relay. A relay votes automatically but you can't assign a lock that has voted in an open epoch. If you want to setup automatic voting, skip to the next section.

Search for XCH and press Select on the vAMM-wXCH/USDC pool.


Select your lock (Lock #23592 in this example) and hit the Vote button at the bottom of the page.


In the dialog that pops up, pick the amount of voting power (the % of the locked AERO) to vote with, hit the Vote button and confirm in your ETH wallet.


You have now voted for the wXCH pool.


A relay is just a way to vote automatically. You can't assign a lock that has voted in the current epoch so you may need to wait for the current epoch to end.

On the Lock tab find the Chia veAERO relay and press its Deposit Lock button.


Select your lock and acknowledge the unlock date extension. Confirm in your ETH wallet.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment