Fables mechanics
Fables is the ve(3,3) DEX on Robinhood Chain, built on Uniswap v4. Its token is FABLES. Lock FABLES for two years at auto-max and the lock votes every week on which pools receive emissions.
A voting lock receives, on the pools it votes:
- Swap fees, staked liquidity
- 100%
- Swap fees, unstaked liquidity
- 10%
- Incentives
- Posted on those gauges, paid in whatever token was posted
- Rebase
- FABLES added to locks that voted, at a rate that falls as more of the supply is locked
The lock is a veFABLES NFT. Auto-max keeps it at full weight until it is switched off. Locks with the same expiry can be merged. There is no vote delegation: only the owner of a lock can vote it. A lock that does not vote in a week earns nothing that week. Emissions to each pool are capped at twice the fees its staked liquidity earned the week before; incentives do not raise the cap.
Locked means locked. The FABLES inside a veFABLES position cannot be sold.
Architecture
- Lock
- Holds the single veFABLES NFT. Accepts FABLES and NFTs, mints sFABLES. Has no function that shortens the lock or turns auto-max off.
- sFABLES
- A plain ERC-20. One per FABLES inside the Lock at the time of deposit.
- Voter
- Takes the vlSINK tally and the house allocation, and calls Fables' vote once a week from the Lock. The only account that can call it is the voting key.
- Distributor
- Claims the week's fees, incentives and rebase; sends the published cut to vlSINK; pays the rest to sFABLES holders pro rata, in the tokens earned.
- SINK, vlSINK
- SINK is an ERC-20. vlSINK is SINK locked for a fixed term, non-transferable, votes once per epoch, unlocks in full.
- Voting key
- One hot key held by the team. It can submit a tally. It cannot move FABLES, sFABLES, SINK or income, and it cannot change the Lock.
Sink mechanics
Sink accepts FABLES, or a veFABLES NFT you already hold. Everything deposited is merged into one lock at the maximum, with auto-max on. You receive sFABLES, 1:1 on the FABLES inside.
A deposited NFT goes through four steps, in this order:
- Claim any pending rebase on the NFT.
- Extend it to the maximum and switch auto-max on.
- Merge it into Sink's lock.
- Mint sFABLES 1:1 on the FABLES it held.
A six-month lock is extended to auto-max on deposit and arrives with the 80% of the points allocation it claimed. A liquid claim can be deposited as FABLES like any other.
Sink's lock never unlocks. The contract has no function that turns auto-max off. The only way out of a position is to sell sFABLES.
The week
Fables' epoch runs Tuesday to Tuesday. Sink's week is built around it.
- Tuesday
- Fables epoch opens
- Tuesday to Sunday
- vlSINK holders vote
- Sunday night
- Weight that did not vote follows the house allocation: pools ranked by fees plus incentives per vote
- Monday
- Sink casts the block, once
- Tuesday
- Fables closes the week
- Wednesday
- Payouts are claimable; the Distributor claims and pays them
sFABLES
sFABLES is the receipt. It is liquid and transferable. Each sFABLES stands for one FABLES inside Sink's lock at the time it was minted. The rebase the lock earns each week is paid to the lock; whether it compounds inside the lock or is paid out to sFABLES holders is a decision published before deposits open.
The income the block earns comes to sFABLES holders every week, in the tokens it was earned in, net of the platform cut. sFABLES does not vote.
sFABLES can trade below one FABLES, most likely in weeks with thin liquidity. Three things push it back toward par: a pool Sink seeds and defends, SINK paid directly to the liquidity providers of that pool, and the treasury buying under par out of its cut.
SINK and vlSINK
SINK is the second token. Liquid SINK earns nothing and votes on nothing.
Lock SINK for a fixed term and it becomes vlSINK. vlSINK votes once per epoch on where the block goes, and receives the platform cut. It does not decay: its weight is the same on the last day of the term as on the first. At the end of the term it unlocks in full.
The team holds a voting key. It submits the tally of vlSINK votes and the house allocation to Fables. It cannot move tokens and cannot change the lock.
- Term length
- to be published
- Supply and allocation
- to be published
The platform cut
A fixed share of what the block earns goes to vlSINK lockers, the treasury that defends the sFABLES pool, and the agent that claims each week. The rest goes to sFABLES holders. The number is fixed before deposits open and does not move afterwards without a vlSINK vote.
- Cut, total
- to be published
- Of which vlSINK
- to be published
- Of which treasury and agent
- to be published
For teams with a pool on Fables
Sink votes as one block. If your pool is on Fables, two things move that block toward it, and both are things you control.
- Post incentives
- Post a token on your gauge for the epoch. Fables pays it to the voters who voted your pool. The house allocation ranks pools by fees plus incentives per vote, so a posted incentive raises your rank for every vlSINK holder who did not direct their weight.
- Keep staked liquidity in it
- Voters receive 100% of swap fees from staked liquidity and only 10% from unstaked. A pool whose liquidity is staked pays its voters ten times more per dollar of volume, and Fables' emissions cap is set from staked fees too.
- Hold vlSINK
- vlSINK votes directly on where the block goes. A team that locks SINK steers its own share of the block every week without posting anything.
- What does not work
- Sink does not sell votes, does not take side payments, and does not hard-code any pool. Everything goes through the tally or the house allocation.
Our partner Throne is building a separate market in front of the Fables gauges where teams can post incentives for the Sink block in one place. It is not live; when it is, it links from here.
Risks
- Smart contract
- Sink's contracts can have bugs. They are in build and review, and the addresses below stay empty until the review is done and published. A bug in the Lock could lose the FABLES inside it; sFABLES would then be a claim on nothing.
- FABLES price
- sFABLES tracks FABLES. If FABLES falls, sFABLES falls with it. There is no hedge inside Sink.
- Fables parameters
- Fables can change its fee split, emissions cap, rebase schedule or lock rules. Sink's income changes with them, and the lock cannot leave. If Fables ends the rebase, that part of the income stops.
- Below par
- In thin weeks sFABLES can trade below one FABLES. Selling then means selling at a discount. The three par defences are tools, not guarantees.
- Fables itself
- If Fables stops, the lock stops earning. Sink has no income that does not come through Fables.
- Concentration
- A few large depositors could hold most of sFABLES. They cannot vote the block with it, but they can move the sFABLES price by selling.
Contracts and review
Nothing is deployed. The rows fill in, with a link to the source and to the review report, on the day each contract goes live. Until an address appears here, no contract claiming to be Sink is Sink.
| Contract | Address | Status |
|---|---|---|
| Lock | — | in build |
| sFABLES | — | in build |
| Voter | — | in build |
| Distributor | — | in build |
| SINK | — | not deployed |
| vlSINK | — | not deployed |
- Review
- Reviewer and report: published here when the review is complete.
- Source
- Repository: published here at deployment.