Introduction

Im 0xHarb, a software engineer & crypto enjoyooor that loves to experiment

0xHarb

This project started from the idea of scraping the pancakeswap predictions data to see if I could have an edge over other players. I started by building a script to watch over pancakeswap & scraped all the data I deemed useful, after which I decided to build an app to visualize the data in a more accessible manner
After a thousand rounds of bets played using this, I had roughly 65% WR and sizable gains, so I started looking at automating my betting process with a bot aswell

About bullvsbear

Why ?

As mentioned in the intro, this tool first started as a mean to have an edge for pancakeswap predictions. EV used to be far better before the pancakeswap update that fixed a lot of issues with their Oracle, but it's still a nice-to-have tool if you want to play. The API can also be used if you wish to create a bot or "AI" to play the predictions, some endpoints aren't documented in the API though, so feel free to DM me if you have ideas involving automation

How it works

There are 4 pieces of software in total, of which 3 are accessible to the public

prediction-scraping
A script that crawls the website using pupeeter; It checks for changes on the page and save them to a database when they happen. Changes includes new Oracle update, pool increasing, new round..
prediction-api
The server that handles request to access the scraped data, this API is used both by the bot & bullvsbear
bullvsbear
The app that displays scraped data, it's basically all the meaningfull data served from the API baked in a single page for ease of use
bestbetsbots
A betting bot I mentioned in the intro, which is not available to the public. It uses the API data & also simulate betting on each new round and then saves the data with which the bet was made

Key Concepts

Oracle
Oracle price300.935$
BNB price301.125$
Time left00:43
New candle in13.1s
This is the standard oracle view on bullvsbear, a new table like this one is created for each update of the Last Price on pancakeswap

Oracle Price refers to the "Last Price" on pancakeswap
BNB Price refers to the price of BNB on Binance at the time of the snapshot
Time Left is the time left before the round ends
New Candle In is the time before a new 5mn candle appears on the chart
Timers

Seconds left for the current 5mn candle, this can be useful to time your bet

Seconds since the Oracle was updated, you can use this to your advantage by timing refreshes at the end of a round

Time left before the current round ends, 20-15s left is a sweet spot to place your bet

Intervals
A. / M.

The intervals displayed above are the interval of Oracle refreshes, making it easy to spot anomalies within timing. At the time of writing, a refresh happens every 20 to 30 seconds
Note: in precedent version, oracle used to refresh every 90s on average, sometimes up to +180 seconds, allowing an even greater discrepancy between the Oracle Price and the BNB price

Safe / Risky

In bullvsbear context, the Safe keyword refers to the bet side with the lowest payout of the 2, the "Safest" bet. Inversely the Risky keyword refers to the side with the highest payout, the "Higher risk / Higher reward" bet

Tips

In a typical setup, you would wait for the confluence of atleast some of the indicators displayed on the website. I've had the most success entering bets when a new candle was just newly formed, with an oracle refresh as recent as possible & a 0.1-0.2 price difference between the Oracle & the charted BNB price

Checking the averages can be quite useful to determine the trend and adapt your strategy
On top of that I recommend checking the EV chart for a quick look at which strategy is performing better

charts
Note: You can group/ungroup the results by hour to check if some hours are more profitable than others

You can check the history of any past rounds by entering the round number in the search bar at the bottom of the page.

Note: When the Oracle Price is below the Open price, it will be highlighted in red, inversely it will be highlighted in green if it's above the Open Price. The same applies to BNB Price in the history table