sink

How Sink works

The mechanics of Fables, of Sink and of the two tokens.

01

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.

02

Architecture

FABLESor a veFABLES NFT Lock one veFABLES, max, auto-max no function turns it off sFABLES1:1, liquid, transferable claim, extendmerge mint Voting keysubmits the tally nothing else Voter vlSINK tally, then the house allocation, weekly vlSINKfixed term, no decay votes the lock weights Fablesgauges, fees, incentives block, Monday Distributorclaims Wednesday, splits, pays income the cut the rest, weekly,in the tokens earned The rebase is paid to the Lock. How it is handled is published before deposits open.
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.
03

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:

  1. Claim any pending rebase on the NFT.
  2. Extend it to the maximum and switch auto-max on.
  3. Merge it into Sink's lock.
  4. 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.

04

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
05

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.

06

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
07

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
08

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.

09

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.
10

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.

ContractAddressStatus
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.