Description

Ante is a blockchain protocol that introduces and hosts a new trustless primitive, Ante Tests. Ante Tests are smart contracts that check a particular guarantee or condition is always holding. By deploying and staking Ante Tests on-chain, users create new digital public goods that users can view and interact with for generating a Decentralized Trust Score, which makes it easy for anyone to explicitly see measures of trust. Ante Tests can check properties of projects, behaviors of individuals, or economic qualities of new protocols. Ante can be seen as a form of "Financial Verification" for DeFi protocols -- the existence and staking of a quality set of Ante Tests is almost "financial evidence" that the community believes a particular protocol's guarantees will likely hold. (Formal verification is mathematical proof that the behavior of set of code conforms to a formal spec; we think of "financial verification" as a new form of evidence that a protocol will behave in the future according to community expectations.) Projects can deploy and stake Ante Tests to show users they have skin in the game. Cautious users can deploy and challenge Ante Tests that check guarantees about DAO behavior. Ante provides simple interfaces and tooling to make building and deploying an Ante Test easy. Ante aims to build the Schelling Point of Decentralized Trust.

Ante Finance showcase

How it's made

The Ante Protocol (V0.5) was written in Solidity. The Ante "Comptroller" and Ante Compound TVL drop tests were both written with Solidity, and made extensive use of Hardhat. The Ante webapp was built with React and also utilizes Web3.js as well as Ethers.js. The backend of the Ante Webapp hooks up to a plain web2 database (MongoDB). In terms of how the Ante Protocol works, it's a fairly simple construct (we are only on V0.5). First, there are Ante Tests -- these are on-chain "Smart Tests" that anyone can write (we've had a few PR'ed by community members into our community github repo for other protocols). Ante Tests are settled programmatically and serve like live "Unit Tests" on chain (or integration tests, if you stitch enough functionality together). We've designed and built interfaces to make it simple to write Ante Tests (and an abstract class that gives some syntactic sugar). After an Ante Test is created, anyone can deploy it on chain, but the Ante Test by itself doesn't do much -- to get stakers and challengers participating, an AntePool (non-custodial, immutable smart contract that holds onto Staker funds and also charges a decay fee to Challengers) must be created. To do that, we have an AntePoolFactory contract that uses create2 (like Uniswap V2) to deploy an AntePool instance on-chain at a "predetermined" fixed address, which links to a given Ante Test. Anyone can then stake (collect decay fees from challengers, assuming the Ante Test Passes) or challenge (pay a block-by-block decay fee, but collect all staker funds if the Ante Test ever fails) that given AntePool, which is linked programmatically to the afforementioned Ante Test. The Webapp currently grabs data on-chain about participation in Ante Pools to compute the Decentralized Trust Score, but hopefully in future versions we can do that computation fully on-chain.