respons
follow

how this works

respons is a market on whether somebody does the thing they said they would do. Each dare is its own token on pons. The token trades; trading generates creator fees; those fees are the pot. The performer submits proof, the people holding the token vote on it, and an escrow contract pays out.

It is unofficial and community-built. It is not affiliated with pons and does not speak for them.

Nobody deposits a prize

This is the part that surprises people, so it is worth being blunt about: there is no bounty field anywhere in this interface, and there never will be. You cannot fund a dare directly. The only amount you control is how much of the dare's token you buy.

When a dare launches, its token's creator fee stream is redirected to an escrow contract. Every trade on that token sends a slice of the trade into the escrow. Anyone can then call sweep fees to move the accrued fees out of the pons locker and into the pot — it costs the caller gas and benefits everyone watching the dare, including the performer.

So the pot grows with attention rather than with generosity. A dare nobody trades is worth nothing no matter how many people say they would love to see it. A dare people argue about funds itself.

The fees arrive in two legs: ETH, and the dare token itself. They settle differently, which matters below.

You can only dare yourself

The performer address is set when the escrow is constructed and can never be changed. There is no flow anywhere that lets one address create a live dare binding a different address, and adding one would remove the single structural thing that keeps coercion out of this: nobody can be put on the hook without signing the transaction themselves.

You can send someone a proposal. It sits in their inbox as a suggestion with no money and no deadline attached. If they want it, they launch it themselves and become the performer. If they do not, they dismiss it, or block you.

The dare types are a fixed list

Dare type is chosen at creation from a whitelist that lives in the contract. There is no free-text dare field.

This is a structural decision, not a moderation policy. The pot grows with trading volume, which means the system pays more for dares people find more extreme. Left open, that pressure has exactly one direction, and post-hoc review never catches up with it. Containing it in the data model is the only version that holds: a dare that cannot be expressed as one of these types does not get created at all.

No category involves a non-consenting third party, a public venue, a physical risk of injury, or anything illegal.


eat something gross

edible food, prepared by you, eaten by you. not a non-food object, not anything you are allergic to, not a quantity that makes you unwell.

proofone continuous clip of you eating it.

wear something ridiculous

clothing, indoors or on private property. not a uniform that reads as police, medical or emergency services. nothing aimed at a person or a group.

proofa clip or photo of you wearing it, timestamped.

sing badly on camera

your voice, your space. not a venue, not a street, no audience that did not choose to be there.

proofone unedited take.

shave or dye hair

your own hair, cosmetic and undone by growth. an ordinary razor or shop-bought dye used as directed. nothing that cuts skin.

proofbefore and after, same room, same day.

cold shower

your own shower on the cold tap. not ice immersion, not outdoors, not past the point where you stop being able to warm up.

proofa clip with a visible running timer.

learn and perform a skill

anything you can practise alone and film: an instrument, a phrase in a language, a card trick, a recipe. not a physical stunt.

proofthe performance, in one take.

reveal screen time

your own device's usage report. your data only — no screenshots containing anyone else.

proofthe report screen, undoctored.

delete an app

an app on your own device. you can reinstall it after settlement; nobody is checking.

proofthe home screen before and after.


How voting weight is decided

When the performer submits proof, the contract records the block it landed in. That block is the snapshot. Your voting weight is whatever balance of the dare token you held at that block — not before, not after. Buying more once the proof is in does not buy you influence over it.

Balances are rebuilt from the token's Transfer logs, and the resulting set of holders is hashed into a merkle tree. Only the root goes on chain. When you vote, you supply your weight and a proof that your leaf is in that tree.

The liquidity pool is excluded from the snapshot. Supply sitting in the pool is nobody's conviction about anything, and counting it would mean an ungraduated token could never reach the turnout threshold.

Two thresholds decide the outcome. At least 10% of eligible supply has to vote at all, and at least 69% of the weight actually cast has to approve. One vote per address, weight frozen at the snapshot block, and no changing your mind afterwards.

If it passes, and if it does not

On a pass the performer takes both legs — the ETH and the tokens that accumulated in the escrow.

On a failure the ETH leg becomes claimable pro-rata by the holders in the snapshot, and the token leg is burned. Missing the deadline without submitting anything is a failure, and so is submitting something the holders vote down.

The failure payout is not a consolation prize; it is the whole reason the other side of the market exists. If you think somebody is going to chicken out, holding their token is how you express that, and you get paid if you are right. Take that away and there is only one direction left to bet in.

Verifying the root yourself

One address — the poster — submits the snapshot root. That address is trusted to be timely. It is not trusted to be honest, because it cannot be dishonest without it being visible.

The root is a deterministic function of public chain data. Given the token, its launch block and the snapshot block, anyone can rebuild the exact same holder set and the exact same root. If the posted root does not match the one you compute, the poster changed something, and everyone can see it.

The reference implementation is lib/snapshot.ts. To check a dare:

  1. Read snapshotBlock off the escrow. It is on the dare page.
  2. Rebuild balances from the token's Transfer logs up to that block, dropping the zero address, the burn address and the liquidity pool.
  3. Sort holders by address, hash each (address, weight) leaf twice, and build the tree with sorted pairs.
  4. Compare against snapshotRoot on the escrow.

A wide getLogs range will time out on the public RPC. Walk it in chunks.

What happens if the poster disappears

A dare whose root is never posted must not be able to trap the pot, so there are two fallbacks.

First, if no proof is ever submitted, settle still resolves the dare to a failure once the deadline passes. Anyone can call it.

Second, posting the root is valid both while voting is open and after a dare has already failed, and it becomes permissionless fourteen days after the snapshot is anchored. After that window anyone can post the root and unlock the refunds. Since the root is reproducible from chain data by anyone, opening this up costs nothing: a wrong root is detectable, and the only thing the fallback buys is that an absent poster cannot brick a pot.

Every path that reaches a failed state leaves a usable snapshot block behind. A dare that dies without a proof anchors its snapshot at the block it was failed at, so holders always have something to claim against.

Names

Usernames are off-chain. You claim one by signing a message with your wallet — it is a signature, not a transaction, and it approves nothing. Lowercase, three to twenty characters, letters, digits and underscore. One name per address, changeable once every thirty days.

Names that read as an existing name are rejected, not just names that match one. Impersonating a performer here is directly profitable, so the check folds visually ambiguous characters together before comparing. Names containing pons, respons, official, admin, support or team — or anything that folds onto them — are not available.

Risk

The contracts are unaudited. The poster is a single address. The pons v1 locker is a third-party contract this project does not control. A dare token can trade to nothing, and a pot can be worth less at settlement than when you bought in. Do not put in money you need back.