finance.vote: Curating the cryptospace with prediction markets, governance and Chainlink oracles

finance.vote | dApps for DAOs
9 min readFeb 9, 2021

We are thrilled to announce that finance.vote has integrated Chainlink as our go-to oracle solution for our prediction market dApp, markets.vote.

markets.vote is a quadratic voting-based prediction market that requires reliable and accurate price feeds at exactly midnight each week for at least ten different tokens to determine the weekly prediction market winners. The integration of Chainlink oracles marks a major upgrade to our prediction market, which will allow us to settle prices confidently with high fidelity.

Further to that, Chainlink will be integrated into finance.vote’s second layer governance tools, which means that FVT token holders can add new tokens to the prediction markets and effectively create new Chainlink Price Feeds as they are required.

This integration of Chainlink oracles and governance tooling opens up the possibilities of new kinds of prediction market-based governance known as “futarchy,” allowing users to decide which markets require a Chainlink oracle solution. The merger of oracles and prediction markets brings futarchy-based governance into reality.

The merger of oracles and predictions markets brings “futarchy” based governance into reality

Curating the Cryptospace

Thanks to projects like Uniswap, a new wave of decentralisation has swept across the cryptospace. This has allowed radical new kinds of decentralised financial activity to take place, creating the ecosystem known as DeFi.

But, the permissionless nature of DeFi comes at a cost. New token pairs enter the space on average every 12 minutes according to Uniswap Founder Hayden Adams, and this metric has been increasing in recent months.

The markets.vote application is designed to bring quadratic voting-based governance to these new and emerging markets, ultimately incentivising users to filter through these new tokens and select those they believe will live, grow, and gain adoption.

The very best of these tokens will make all the way up into our primary “Winner Market” and gain their own Chainlink oracle, providing a critical service to the space by allowing users to find trusted DeFi tokens easily while avoiding rug pulls and scam tokens that live and die in a matter of days.

Are you a gem hunter? This game is for you.

Vote Markets x Chainlink

Chainlink will provide Price Feeds for every token in the “Winner Market” token list. We will use an accurate snapshot of the weekly midnight closing price of each of the assets in our token list to calculate the top gaining token and then distribute rewards to winning voters.

What are Vote Markets?

Vote Markets are a quadratic voting-based prediction market that allows users to place weighted bets on the future order of the market. If a user places votes on the winning token in that vote market, they win a share of a network-generated rewards pool, which currently consists of 100,000 FVT. Presently, you only need to pay for Ethereum gas to participate in the Vote Markets.

Why We Need Chainlink?

Until now, the finance.vote markets had used market data drawn directly from Uniswap AMMs to obtain the price of tokens in our vote market list. Although this market data was suitable for most occasions, there have been some instances where our users disputed the price changes after our prediction markets have closed.

Upon closer inspection, at low time frame granularity prices can swing radically due to large AMM trades. These price fluctuations are made worse because of the high levels of volatility during the weekly market close.

AMMs settle back their on-chain price relative to “reference” markets via arbitrage activity over time; however, when looking closely for the price in one block at one particular moment in time (midnight in our case) the price can deviate quite radically from what is displayed elsewhere on large exchanges. Simply put, AMMs do not make great oracles.

We also need highly accurate data with a target of a single block time resolution. Our vote markets measure the change in an asset price over a 7-day period, and we need accurate and reliable prices sourced from a wide variety of high-quality data sources. Although the price on a single exchange may be “true” for that exchange, the market-wide price of an asset aggregated from across a variety of trusted exchanges and data providers is what most people consider the real “truth”.

The widely adopted Chainlink Price Feeds consist of decentralised oracle networks made up independent nodes run by highly experienced DevOps teams, which source data from numerous premium data aggregators like BraveNewCoin. These data aggregators are key as they collect data from all relevant centralised and decentralised exchanges, aggregate it by volume, and remove outliers to create a single volume-adjusted price for an asset. The individual nodes’ responses are then further aggregated together to create a single price update that is highly accurate, available, and tamper-resistant. Importantly, by having aggregation at the data source, individual node, and oracle network levels, users are highly protected against Sybil attacks and flash loan-induced and/or large trade data manipulation exploits carried out on single exchanges.

Chainlink’s aggregated source of truth is vital to protection of our prediction markets. Especially with our market’s “staking” function being released shortly, which will allow users to take large positions on the price differences that occur between snapshots in different markets.

Chainlink will provide price feeds for every token in the “Winner” token list. A high fidelity snapshot of the weekly midnight close of each of the assets in our token list, will be used to calculate the top gaining token and distribute rewards to voters.

Chainlink gives us the confidence to raise the stakes.

The Technical Details

Both Chainlink and finance.vote have similar intervals called “rounds” to reflect state changes in their networks.

For Chainlink, a new round is generated in their Price Feeds when the price deviates significantly from the last recorded price. For finance.vote, a round is a prediction market window – a 7 day change in price from midnight to midnight UTC, or a weekly open to weekly close for the traders.

Our integration requires retrieving the latest “Chainlink round” as close to midnight UTC as possible. Natively, this may, or may not, be exactly at midnight, however the Chainlink team have agreed to generate a new round at midnight especially for us. This will ensure that we have the most accurate price when our weekly rounds resolve.

This was the difficult bit

The Resolution Process

At the end of every week, a new prediction market opens, which we refer to as “Ballots”, while the previous ballot awaits resolution from Chainlink Price Feeds prior to settling.

When this happens, our Vote Market contract calls the getWinner() function. This function calls the Chainlink Price Feed reference contracts in a single transaction. We call ten Chainlink Price Feeds, and we obtain the latest price from each of these feeds.

This is where it gets interesting. Anyone at this time can call the proposeWinner() function, which triggers a challenge window. We will be using Chainlink Keepers to do this automatically.

Chainlink is our source of truth; however, you don’t trust, you verify in crypto.

Each week, our users will have the opportunity to challenge the outcome from the Chainlink Price Feeds. To do so, they will need to stake 50,000 FVT and submit a challenge to the challengeWinner() function.

At this point, a management key will intervene to issue an outcome to the challenger, either through a ChallengerVindicated or ChallengerSlashed event, which will resolve the round.

If no challenge is issued during the 24-hour challenge window, then the comfirmWinnerUnchallenged() function will be called by a Chainlink supported Keeper, and the round will be successfully resolved. This triggers a payout event to all winning participants in the finance.vote vote market.

Although we rarely anticipate our users will challenge Chainlink oracle prices, we have designed our system in this way to future-proof our prediction market. Our challenge process could become more of a useful tool as we venture farther into the more uncertain world of new emerging assets.

Governance Rules

Of course, we don’t anticipate the same ten assets to be the most relevant assets in DeFi forever. This is where the FVT holders step in.

In the coming weeks, we will launch our snapshot voting mechanism, influence.vote. This is a quadratic voting-based governance tool that will allow our token holders to have a token-weighted influence on which tokens enter our token list.

Thus, the assets that make up our markets will be crowd-curated. If a new token is voted into the list and it does not have a native Chainlink Price Feed already live, the Chainlink team has agreed to create a new Price Feed (subject to certain constraints) for our users. This means that FVT token holders will be building sources of truth in the cryptospace through governance and Chainlink oracles.

When our main DAO, the DMF (Decentralised Monetary Fund) launches in Q2 of this year, our token holders will control precisely how our vote markets will run, including the length of challenge periods and which new tokens and markets to add.

Summary

This Chainlink integration takes us towards our vision of being the consensus layer for DeFi. Accurate and reliable prices are the cornerstone of decentralised finance, and Chainlink Price Feeds will allow our token holders to make high-quality decisions about which tokens are included in the finance.vote ecosystem.

Dr. Nick Almond, founder of finance.vote discusses the integration:

There is a reason why Chainlink is so dominant in the oracle space at the moment. Their oracle infrastructure is robust and high-quality, and they also have a broad and highly skilled team that can support integration and adapt to the needs of teams trying to push DeFi into innovative territories.

This is just the start of our interaction and integration with the Chainlink ecosystem, and we aim to extend our prediction markets into the earlier token markets and push the boundaries of what is possible with decentralised oracle data.

Both prediction markets and governance technologies are at the cutting edge of decentralised finance. Integration with Chainlink takes us a further step towards decentralisation and will allow users to curate and predict the performance of the very best tokens in the cryptospace.

About Chainlink

Chainlink is the most widely used and secure way to power universally connected smart contracts. With Chainlink, developers can connect any blockchain with high-quality data sources from other blockchains as well as real-world data. Managed by a global, decentralized community of hundreds of thousands of people, Chainlink is introducing a fairer model for contracts. Its network currently secures billions of dollars in value for smart contracts across the decentralized finance (DeFi), insurance and gaming ecosystems, among others.

Chainlink is trusted by hundreds of organizations to deliver definitive truth via secure, reliable data feeds. To learn more, visit chain.link, subscribe to the Chainlink newsletter, and follow @chainlink on Twitter.

Docs | Discord | Reddit | YouTube | Telegram | Events | GitHub | Price Feeds | DeFi | VRF

About finance.vote

finance.vote is a decentralised organisation that creates governance dApps for DAOs. They specialise in quadratic voting technology and price discovery, with a prediction market, a decentralised auction house and a suite of gassless multi-chain voting tools designed to upgrade governance across the DeFi space.

The finance.vote dApp suite is the decision making tool kit for the future of decentralised finance. It is governed by FVT holders, who control our roadmap, monetary policy and the funding of the platform.

Join the DAO

Website: https://finance.vote

Prediction Market: https://markets.vote

Follow our Telegram Announcement Channel: https://t.me/financevote

Join our Unofficial Telegram Discussion channel: https://t.me/financedotvote

Join our official token gated community: the Citizens Chamber. You need to mint a decentralised identity token to join.

Join our Community Call: at 3pm UTC every Friday in the unofficial group.

Follow us on Twitter: https://twitter.com/financedotvote

Follow us on Medium: https://financedotvote.medium.com

--

--

finance.vote | dApps for DAOs

The consensus layer for #DeFi. Building the dApp suite for the decentralised future.