Protocol
The state machine, the parameters and the custody model, in one place.
States
A market moves forward only. Stakes and forecasts are accepted only while it is open and before its deadline; settle moves it to settling; finalize, after the window and once every dispute is decided, makes it final and opens the claims.
Parameters
| FEE_BPS | 200 |
| DISTRIBUTOR_BPS / forecasters | 7000 / 3000 |
| CHALLENGER_BPS | 2000 |
| DISPUTE_WINDOW | 259200 s |
| DISPUTE_BOND | 0.002 ETH, then 1000 $PLCB |
| HOUSE_BOND / BOND | 2000 / 1000 $PLCB |
| MIN_STAKE | 0.0002 ETH |
| Chain | Robinhood Chain, id 4663 |
Custody
The contract holds every pool. The owner can set the token once, the distributor once and the keeper; it cannot touch a stake. The keeper can create, settle, decide and post the forecaster weights and the bond outcomes; it cannot move a stake either. Winners pull their own payouts. There is no proxy, no upgrade and no pause, and the verified source is on Blockscout.
Checking it yourself
Nothing here needs our code. The events are on one public address, the fold is written out in Events and disputes, and the SDK served from this site reads the same endpoints. Pull a market's forecast and its record, then compare the sha256 of the forecast JSON with the hash in its event and open the transaction on Blockscout.
S=https://placebofund.xyz; ID=$(curl -s $S/api/v1/markets | jq -r '.markets[0].id')
curl -sD head.txt $S/api/v1/forecast/$ID -o forecast.json # the forecast JSON as published
grep -i x-sha256 head.txt; sha256sum forecast.json # the same hash, computed by you
curl -s $S/api/v1/record/$ID | jq '.events[] | select(.type=="Forecast") | {hash: .args.hash, from: .args.forecaster, block, tx}'
# the event on chain carries that hashBefore launch the whole round ran against the real contract on a local chain: create, the agent's forecast, two stakes, a visitor's forecast, the settlement from a posted registry result, a dispute and its decision, finalization, the forecaster weights and the claim. The same events appear on Robinhood Chain as each market settles.