Protocol: contracts, keeper, security

What runs where, who can do what, and how to check it.

Chain eventsSwap, Post, Copy→Keeper, hourlymarks to Chainlink and pool prices→ScoreBookscores and root→Hook and routerread isUp(trader)→Mondayepoch root, slashes

Contracts

Solidity 0.8.26 to 0.8.30, cancun, Foundry. V4SocialHook, V4SocialRouter, ScoreBook, V4SocialBond and MerkleEpochDistributor. Addresses are listed on the protocol page once deployed. The fee constants are immutable.

The keeper

Every hour: read new Post and Copy events, mark each open copy to price, post the changed scores and the root, flush the burn reserves and buy and burn $V4S. Every Monday 00:00 UTC: harvest the creator fees, post the weekly epoch, slash the bonds of traders whose followers ended the week down.

Security notes

The keeper key decides the scores, so it decides who is paid and whose bond is slashed; its inputs and outputs are public and the key change is timelocked for 48 hours. The hook holds royalties and the burn reserve as PoolManager claims and pays them out by redeeming those claims. A copy can lose money like any swap, and thin pools move: the 1% cap reverts a copy rather than filling it badly.

Support

Write to the project account on X, linked in the footer.