# Exploiting Crypto Prediction Markets for Fun and Profit

I believe that exploiting inefficiencies in crypto prediction markets is an easy way to make market beating returns. This guide is a step by step walkthrough of how to make bets on these markets. I think this is useful because the process is somewhat complicated and there are a few non-obvious mistakes which can wipe out your returns.

The payoff per trade is in the region of 3% with a roughly 30 - 60 day turnaround time. Because of various costs, it's probably not economical to trade on less than 5k USD as the fixed costs will eat up your margin.

This is not financial advice. I may be wrong. The steps may be wrong. The specifics will become outdated over time. This is not zero-risk.

# 1: What are crypto prediction markets 
Prediction markets are markets where people predict things, then the thing happens and then people either make or loose money based on whether their predictions were correct. The "market" in prediction market comes from the fact that rather than having a single agent set the odds and offer people bets, as is the case with a bookie, instead there is a supply of options representing outcomes which people bid on and freely exchange. The tokens are distributed in an initial auction. People can trade their tokens between the auction and the market resolving. Once the market resolves, those options can be redeemed for a fixed amount if they represent the correct outcome. Tokens representing the incorrect outcome are worthless.

There are various kinds of markets and formats but the simplest is a binary yes no question which resolves on a specific date. A few examples are:
- "Will 100 million people have received a dose of an approved COVID-19 vaccine in the US by April 1, 2021?"
- "Will ETH be above $2000 on April 1st, 2021?"

The tokens for these markets typically resolve for 1$ if they're correct or 0$ if incorrect, meaning the token price is bounded between 0$ - 1$ and converts neatly to a percentage.

# 2: Why should we believe we can beat the market?
On the object level because these markets are often obviously insane. At the date of writing there is an active prediction market asking if Trump will be president of the USA on the 31st of May, 2021. The odds are 0.95/0.05. [Vitaliks post](https://vitalik.ca/general/2021/02/18/election.html) describing how he made money from the US election is another good example. On a more meta level, because prediction markets are far less optimized than other financial markets. Prediction markets today are small, shallow and inaccessible. Because of this they are not subject to the strong optimizing forces that work on larger markets such as those for stocks/bonds. Most of the money in prediction markets comes amateurs making bets with their personal money, not professionals and financial institutions whose existence depends on being better than you at making those bets. 

# 3: How to identify good bets on prediction markets?
Intuition and common sense combined with basic research. To me it's been fairly obvious when certain markets were deeply wrong. A few markets I think are insane at the moment:
- https://polymarket.com/market/will-joe-biden-be-president-of-the-usa-on-april-30-2021
- https://polymarket.com/market/will-donald-trump-be-president-of-the-usa-on-may-31-2021
 
 While there is no structured method to identifying insane markets there are a few things that are good to keep in mind:
- There's a 2% trading fee on polymarket + around 0.4% from buying crypto on an exchange so bear in mind that a 5% return on paper is actually a 2.6% return after fees.
 - Many people trading on prediction markets use high cost ways of moving money in/out. That means that they often loose 3 % or so in fees. 
 - The resolution criteria of the market determine which side is correct. It's important to look at the resolution criteria, not just the question.
 - The listed spot price per option may not be the price you pay. The larger your investment relative to market size the more you can expect to pay an average  price different from the spot price.
 - Time to return matters a lot. A 2% return in 2 months beats a 5% return in 6 months.

I realize that not giving a clear way to identify exploitable markets weakens the case for this. Still, I think it's better to be upfront. There's no magic formula, just intuition and reason. Even then there's always the meta-uncertainty over your level of confidence in your predictions. If that's too much of a risk for you, or if you think you're not sufficiently well-calibrated, then you probably shouldn't do this.

# 4: How to participate in prediction markets

There are four basic things you need to do:
1. Acquire crypto
2. Get the crypto into the market
3. Place the bet
4. Redeem your winnings
While these steps are in theory simple, there are a few non-obvious mistakes you can make that will wipe out your earnings or expose you to tail risks. This guide minimizes or eliminates most of these risks.

This guide assumes you're going to be using polymarket. Polymarket is one of the largest and most reliable on-chain markets at the moment. Different markets may require different deposit methods or tokens to participate in so this guide won't apply.

## Acquire crypto
The first step is to acquire crypto. Polymarket accepts USD coin (USDC), a stable coin pegged to the US dollar. You'll need to acquire X USDC, where X is the amount in USD that you want to bet. You'll also need around 0.03 Ether (ETH) for transaction fees. The main risk in this step is incurring transaction costs. High costs usually arise from one of two mistakes:
- Using a consumer rather than trader platform (e.g: using Coinbase means you incur a 1.5% fee on any buy/sell)
- Using a debit/credit card to deposit fiat which usually incurs fees of around 4%.

Follow these steps to avoid that risk:
- Make either a Kraken or Coinbase Pro account (Note it has to be Coinbase Pro, not regular Coinbase)
- Verify your identity to enable trading
- Deposit fiat via a free bank transfer method. (e.g: In the UK a CHAPS transfer costs £22 while a FPS transfer is free. Check the fees for your country and choose a free method)
- Buy 0.03 ETH for transaction fees. Convert the rest of the fiat to USDC.
    - Note that if the fiat you deposited is not USD, you may need to do a conversion from your fiat --> ETH --> USDC. This will double your fees.

Done correctly, your total fee should be around 0.2 - 0.4% or less. There are volume incentives so going over around 50k will reduce your fees somewhat.

## Get crypto into the market
The second step is to get your crypto into polymarket. There are two risks here: fees and loosing your crypto due to human error. We minimize fees by using metamask. Metamask is a crypto wallet. Its unique feature is that it allows you to give other apps permission to do things with your money. By doing a "metamask deposit" into polymarket, you avoid the fees incurred with a standard deposit where you transfer money from your exchange wallet to polymarket's wallet. We minimize the risk of human error by saving backup access codes and testing that those codes work.

Do the following
- Set up metamask
    - Download and install [metamask](https://metamask.io/)
    - Follow the instructions to create your wallet
    - Remember to save your recovery phrase. I suggest write it down on two pieces of paper. Put one in your wallet and another in a safe location.
    - Test your recovery phrase.
        - Uninstall metamask.
        - Reinstall metamask.
        - Use your recovery phrase to recover the wallet you made.
- Withdraw funds to metamask from your crypto exchange
    - Go to your exchange and navigate to the withdraw screen
    - Add your metamask wallet. (You can copy your metamask wallet address by clicking your account name at the top of the page)
    - Withdraw the USDC and ETH. If you're withdrawing a large amount, consider first withdrawing $10 to make sure you've got the address right.
- Go to polymarket. Make an account. Go to deposit and choose "Metamask Deposit". Deposit all your USDC.
- In polymarket, use your deposited USDC to purchase options on a market.

## Getting out of the market
Once the market ends you'll be able to redeem any options you have. Redeem your options by clinking the button and withdraw them to metamask or a crypto exchange wallet. You'll need ETH to do this but the total cost should be less than $40 USD or so. Alternately, wait a while for polymarket's no withdrawal options to go live as they'll have far lower fees.

# 4: Risks to consider
Following the steps above will minimize your fees. That being said, there are still a few risks to consider. These are:
- You're wrong about a given market being insane
- USDC loses value for some reason
- You make a mistake somewhere in the process resulting in the loss of your crypto. The most common error here is not writing down and keeping your recovery phrase but other mistakes include sending crypto to the wrong address or being pawned.
- The prediction market you're using fails. Decentralization protects against certain threat vectors such as insider attacks but flaws in the smart contract itself can still occur. See this [link](https://medium.com/@danrobinson/ethereum-is-a-dark-forest-ecc5f0505dff) for an interesting write up of how such an exploit plays out.



Crossposted to my [blog](https://dissent.blog/2021/03/13/exploiting-crypto-prediction-markets-for-fun-and-profit/)