Skip to content

Instantly share code, notes, and snippets.

@dkackman
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 aerodrome.finance

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

Prerequisites

You are familiar chia

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

Configure the warp.green bridge

Follow this guide to configure and learn how to use warp.green. 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 warp.green setup. Aerodrome doesn't know about the chia block chain so everything is transferred and stored via this Base network wallet, once bridged.

image

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 warp.green 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.

image

Click Bridge

image

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, warp.green 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 warp.green UI (amount to transfer plus toll) and leave the Requesting side blank.

image

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 warp.green 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.

image

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

image

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 aerodrome.finance.

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

image

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.

image

Click New Deposit (wait some more...)

image

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

image

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

image

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.

image

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.

Locks

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.

image

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.

Vote

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.

image

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

image

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.

image

You have now voted for the wXCH pool.

Relay

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.

image

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

image

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