project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6


Take on swole friends in Apefit on Lens. Stake Apecoins, pick your rivals, and ace a fitness challenge. Fail to post results? Your Apecoins go to the victors. Apefit: get rich, stay fit!


Created At

ETHGlobal Istanbul

Winner of


WalletConnect - Innovation Pool Prize

Prize Pool


ApeCoin DAO - Best Consumer Use Case 1st Place


UMA - Best use of UMA & Across 3rd Place

Project Description

Create a challenge and challenge your friends. A smart contracts keeps all the rules, keeps all the funds (in ApeCoin!) and keeps all of you accountable.

Choose accountability judges who will verify your posts on Lens to validate the information onchain. Judges could be participants themselves or other appointed third-parties.

Upon creation of a new challenge, a post on Lens is created with a summary. Lens is also where the attestation happens: you post your proof and your challenge buddies (or judges) attest whether you've done it or not. When the challenge is over, the pot is split among those who have completed the challenge.

Example: I challenge my two friends that we will all do 50 push ups, every day, for 30 days. We create an ApeFit challenge which deploys a new smart contract and publishes a summary post on Lens. I choose ourselves as judges (self-accountability for the win!) We then post a proof of push ups every day on Lens, and we all attest on Lens if it counts or not. At the end of the 30 days whoever did 50 push ups every day for 30 days, gets to split the pot. Muscle gains, ApeCoin gains, friendship gains!

How it's Made

We use @Lens for distribution, social proof, and attestations. Attestations from Lens are tracked by the UMA Optimistic Oracle. Funding of the challenge is done with ApeCoin.

We use a NextJS App that deploys a custom escrow contract for the challenge, with participant Lens handles, judges, the ApeCoin amount, and criteria requirements, and more.

Our backend cron service is notified by QuickNode QuickAlerts when a new contract is created, pulls in the data of the challenge to start polling the Lens API for specific Lens posts from the participants.

If the backend determines that the participant has met the requirements of posting or meeting physical challenge of a certain period of time, it will update the UMA optimistic oracle so that it can influence the outcome of the challenge and the withdrawal functionality of the challenge contract.

At the end of the challenge smart contract queries the UMA Oracle to verify who won and who can or cannot withdraw the winnings.

background image mobile

Join the mailing list

Get the latest news and updates