dotpi

Documentation

Back to the loop Buy dotpi Buy

Whitepaper · technical docs

How dotpi works.

The fee buys the pool. Everything below is the mechanism, the parameters, and the parts that can go wrong.

Overview

Most protocols pay outside suppliers to provide liquidity. Those payments are rent: when they stop, the liquidity leaves with them. dotpi holds part of every trading fee back and uses it to buy both sides of a pair, placed in a concentrated range the treasury keeps.

Positions earn fees of their own. Some of that income buys the next position. The treasury compounds, and every field that matters is read off the chain and published, including the ones that count against it.

Pool fee
0.30%

Charged on every trade through the pool

Fee kept
40%

Share held back to buy owned liquidity

Paid out
60%

Share that still leaves as it always did

Range fees
100%

Owned-range income buys the next position

The problem

Rented liquidity works while the emissions keep arriving. The pool is full, spreads are tight, and volume looks healthy. The cost never becomes an asset. When the payments thin out, suppliers leave, and the protocol has nothing left to show for what it spent.

The pool itself is fine. It is the cost of keeping it full that never goes away. Protocol-owned liquidity answers that by turning part of the fee into a position the treasury holds, rather than into a payment that vanishes.

The fee

Every swap through a concentrated-liquidity pool charges a fee. In a rented model that fee is treated as an expense and routed out to whoever is being paid to stay. It can equally be read as income: it is the one thing a protocol earns without asking anyone for money.

dotpi reads it as income. Nothing else in the mechanism needs capital from elsewhere. The fee is collected at the moment of the swap and split immediately.

01
TradeA swap crosses the pool and pays the pool fee.
02
CollectThe fee is taken at settlement, in the assets the pool holds.
03
SplitPart is paid out. Part is held back for the treasury.

The split

Some of each fee stays in the treasury instead of going out. That kept share buys both sides of a pair and places them between two ticks, which is where the trading actually happens. This is the only decision in the mechanism. Everything after it follows on.

The lit arc on the landing page is this kept share. It never closes the ring, because the protocol does not claim to own all of the liquidity, only the part it bought.

The position

A concentrated range exists on chain as a position token. It records which pair it covers and the two ticks at its edges. Anyone can trade against the pool. The fees that range earns belong to whoever holds the token.

In dotpi that holder is the treasury. Withdrawal of owned positions is not part of the design: the point of buying the liquidity is to keep it.

Holding a range still carries risk. The assets inside can fall in value, and the price can move outside the band the position covers. When that happens the position stops earning until the price returns or the range is moved by governance.

Form
An on-chain position token
Holder
The dotpi treasury
Withdrawal
Not part of the design

The loop

Return has two parts. The first is the share of each fee that was never held back, which goes out the way it always did. The second is the fee income the owned range earns whenever someone trades through it.

Some of that second part buys the next position. That is the step that brings the mechanism back to where it began.

01
FeeA trade pays the pool fee.
02
BuyThe kept share buys both sides of a pair.
03
OwnThe treasury holds the position token.
04
EarnThe range earns fees; some of them buy the next one.

Ownership of the range does not depend on either leg of income. Income from it does. When volume cools, the paid-out share thins with it; the owned positions remain, and they keep earning on whatever volume still crosses them.

Renting vs owning

Both models can charge the same fee. What separates them is where that fee ends up.

CriterionRented liquiditydotpi
Who provides liquidityOutside suppliers, while paidThe protocol, out of its own fee
What the fee buysNothing. It is spentA position, held as a token
If payments stopThe liquidity leavesThe position stays, because it was bought
What accumulatesNothing accumulatesRange fees buy more of it
What a holder can checkReported emission figuresPositions and fees, read off the chain
What can still go wrongSuppliers leave; emissions diluteAssets fall; ranges go offside; volume dries up

The ledger

Owning something only matters if somebody can check it. Every field below is intended to be read straight off the chain rather than reported by hand. The two that make the numbers look worse stay in on purpose.

FieldHow it is worked out
Treasury NAVOwned positions marked to market at the current tick
Fees earnedCollected and uncollected, summed across every position
Divergence lossWhat a position gave up against simply holding the two assets
Net against holdingFees earned minus divergence loss, which can be negative
Position feedEvery deposit, withdrawal and collection, priced at execution
AddressesContracts, treasury wallet and pools, printed as text

If a number on this site ever disagrees with the chain, the chain is right.

Parameters

“Governed” means changeable only by public on-chain governance, and only within the hard bounds the contracts enforce. Figures marked standing are placeholders until the treasury is live.

ParameterValueMutable?
Pool fee0.30%Pool creation · standing
Fee kept40%Protocol policy · standing
Fee paid out60%Protocol policy · standing
Owned-range fee use100% buys next positionProtocol policy · standing
Position formConcentrated range tokenNo · by design
Treasury withdrawalNot part of the designNo · by design
Ledger fieldsNAV, fees, divergence, net, feed, addressesPublished set · standing
AuditPendingLink appears here when ready

Roadmap

Not a schedule. No dates. The order the work is being done in, and this list changes when the work does.

  1. 01

    Live

    The loop

    Protocol-owned liquidity. Part of each fee buys a range, the treasury keeps it, and range fees buy the next one.

  2. 02

    Live

    Live ledger

    NAV, fees, divergence and the position feed update in public, read straight off the chain. If the site and the chain disagree, the chain is right.

Airdrops are a share of fees already earned. Not a yield promise.

What dotpi cannot do

Cannot invent the fee
Income starts with a trade. No volume means no fee to keep, and nothing to buy with.
Cannot withdraw owned positions
Withdrawal is not part of the design. The treasury buys liquidity in order to keep it.
Cannot hide the bad rows
Divergence loss and net-against-holding stay on the same page as NAV and fees earned.
Cannot promise yield
Owned ranges earn when trades cross them. That income varies and is never guaranteed.

Risks

  • Asset prices inside a position can fall.
  • The market can trade outside the range, so the position stops earning until price returns or the range is moved.
  • Divergence against simply holding the two assets can exceed fees earned. Net can be negative.
  • Volume can dry up. Both the paid-out share and the owned-range income shrink with it.
  • Smart contracts, oracles and pool venues can fail. Until an audit link appears above, treat the system as unaudited experimental software.
  • If a figure on this site disagrees with the chain, the chain is right.

Nothing here is a yield promise or financial advice. Do not risk more than you can lose.

Addresses

Contracts, the treasury wallet and the pools publish here as plain text once they are deployed. Until then the rows stay empty on purpose rather than filled with decoys.

ComponentAddress
TreasuryPublishes at deploy
Fee splitterPublishes at deploy
Position managerPublishes at deploy
Primary poolPublishes at deploy
Ledger readerPublishes at deploy

FAQ

How is this different from rented liquidity?

Rented models spend the fee to keep suppliers in the pool. When the payments stop, the liquidity leaves. dotpi holds part of the fee back and buys a position the treasury keeps, so ownership does not depend on the next emission round.

Where does the money to buy liquidity come from?

From the trading fee itself. Nothing else in the mechanism needs capital from elsewhere.

What does the treasury actually hold?

On-chain position tokens for concentrated ranges. Each one names the pair and the two ticks it sits between. The fees that range earns belong to the treasury.

Can the treasury withdraw?

No. Withdrawal is not part of the design. The point of buying the liquidity is to keep it.

What gets published?

Treasury NAV, fees earned, divergence loss, net against holding, the position feed, and the addresses. The two flagged rows stay in even when they look bad.

Are the numbers on the homepage live?

Yes. The ledger reads amounts off the chain. If the site and the chain disagree, the chain is right.

Is there a token airdrop?

Holder airdrops are next on the roadmap. A share of fee income from owned ranges will land in wallets that hold through the loop — nothing to stake or claim. Until that ships, the return in this design is the fee income the owned ranges earn, some of which buys the next position.