Skip to content
Anyperp
DocsTradingAppData
Open the app

Using Anyperp

Getting startedTradingFees, funding and the borrow feeProviding liquidityClaim balancesListing a marketHow prices are madeHalts and settlementAPITokenFAQ

Papers

LitepaperWhitepaper

Trading

A position on Anyperp is long or short one artist's index, held in contracts, margined in USDC and settled against the vault. Every order fills at a print that neither you nor anyone else has seen yet.

Reading a market page

The head of a market page shows the market's current state:

ItemWhat it shows
Indexthe index from the latest print, with its change over 24 h
Statelive, probation (trading at probation caps), side paused, shadow (observed, not trading), halted or settled
Next printthe countdown to the next round, then "due" and "printing"
Long, Shortopen interest on each side against its cap, such as "$120,000 of $300,000"
Fundingthe hourly funding rate and the side that pays it, such as "0.0120%/h, longs pay"
Borrowthe hourly borrow rate

When opens are paused on a side, a line under the head says so, such as "Opens paused on the long side", with the reason.

Below the head:

PanelWhat it holds
Your orders and positions hereyour orders and positions in this market, with their actions (signed in only)
Index, hourly closes for a weekthe last 168 hourly closes; move the pointer or use the arrow keys to read a value
Recent roundseach round's state, both roots' readings, how far apart they are, the print, and the signatures behind each observation
Metric specthe source, round cadence, root tolerance, circuit band and the hash of the extraction rule
Cost dossierthe cost to add or remove one listener (cupc_{up}cup​ and cdownc_{down}cdown​), the reference listener count and the caps derived from them
Sentinel flags, Other venues on this numberadvisory notes from Sentinel and other markets that reference the same count, when there are any

Index, contracts and notional

The index is the printed listener count divided by the market's index divisor, in fixed-point with 9 decimals. For example, a market with an index divisor of 100,000 turns 60,000,000 listeners into an index of 600.00.

One contract is worth the index in USDC. A position's notional is its size in contracts times the index, so it moves with every print. You enter an order's size in USDC; the ticket converts it into contracts at the current index.

The order ticket

FieldWhat it sets
Long, Shortthe side
Size in USDCthe notional of the order at the current index
Leverage1×, 2× or 3×; it sets how much margin the order escrows
Acceptable price within %how far the fill may land from the quoted fill price, between 0.01% and 20% (1.00% by default)

The quote below the fields refreshes as you type:

RowMeaning
Estimated fillthe fill price at the current index, including your order's skew impact
Skew impacthow far that price sits from the index
Trading fee10 bps of the notional at the fill price
Marginthe USDC the order escrows: notional ÷ leverage, plus the trading fee and the keeper fee, budgeted at a small price allowance above the current index
Liquidation nearthe index at which the position would become liquidatable
Room under the long cap (or short cap)how much more notional that side of the market can take
Fills atthe next print

Notes under the quote explain what it covers, such as the price allowance in the margin budget.

The acceptable price protects you from the print moving against you before the fill. A long fills only at or below the quoted fill price plus your percentage; a short fills only at or above the quoted fill price minus it.

Press Open order to send the order. When you aren't signed in, the button reads Connect wallet to trade.

Why orders fill at the next print

An order fills at the first print whose observations from both roots were all fetched after the order landed on chain. The current index is already public, so an order against it would let anyone trade on a number they can see is stale; the next print is unknown to everyone when the order lands.

0:00 print0:15 print0:30 printorder lands 0:08fills at the 0:15 printthe 0:00 print is already old
Rounds open every 15 minutes; an order that lands mid-round fills at the first print fetched after it landed.

What you see after Open order:

  1. Your wallet signs and sends the transaction, which escrows the margin and records the order.
  2. The ticket reads "Order sent. It fills at the first print fetched after it lands."
  3. In Orders, the order shows pending round and "Fills at: the next print".
  4. At the eligible print, a keeper executes the order. The ticket reads "Filled at 603.30" (for example), and the position appears in Positions.

An order that lands before both roots have fetched the current round fills at that round's print; one that lands later fills at the next round's. Orders in a market fill in the order they landed, so each fill moves the skew that the next order sees.

At the fill, the program checks the order again against the print: the acceptable price, the cap, the margin and any pause. An order that passes fills in full. One that fails is rejected; its margin stays escrowed for you until you cancel it (see Cancelling an order).

Fill price and skew

The vault holds the other side of the market's skew s=Nlong−Nshorts = N_{long} - N_{short}s=Nlong​−Nshort​. An order fills at the index adjusted by the skew before and after it:

Pfill=It(1+sbefore+safter2S)P_{fill} = I_t \left(1 + \frac{s_{before} + s_{after}}{2S}\right)Pfill​=It​(1+2Ssbefore​+safter​​)

SSS is the market's skew scale, set at listing. An order that adds to the skew fills worse than the index; an order that reduces it fills better.

For example, in a market with SSS = $5,000,000, an index of 600.00 and a skew of +$50,000:

Ordersafters_{after}safter​Fill priceAgainst the index
Long $10,000+$60,000606.60+1.10%, paid by the long
Short $10,000+$40,000605.40+0.90%, in the short's favour

Opening a position

  1. Open a market from Markets.
  2. Choose Long or Short, enter Size in USDC, pick Leverage and set Acceptable price within %.
  3. Read the quote: the fill, the fee, the margin and the room under the cap.
  4. Press Open order and approve the transaction in your wallet.
  5. Wait for the next print. The order fills and the position appears in Portfolio and on the market page.

Adding to a position

An order on the same side as a position you hold adds to it at the next print. The added contracts fill at their own fill price; the entry becomes the size-weighted average; the new margin joins the old; funding and borrow accrued so far stay on the position. The quote's size and fee describe the addition; its Margin and Liquidation near describe the combined position.

A position takes one pending order at a time. To change sides in a market, close the position first, then open the other side.

Leverage and margin

Leverage is notional over margin:

λ=q⋅Itm\lambda = \frac{q \cdot I_t}{m}λ=mq⋅It​​

with qqq the size in contracts. At the fill, the trading fee and the keeper fee come out of the escrowed margin and the rest becomes the position's margin. That margin covers at least a third of the notional at the entry price, so no position starts above 3×.

A position's equity is its margin plus PnL, minus the funding and borrow it has accrued. Portfolio shows both as "Margin · equity", next to "Entry → mark", "PnL" and "Funding · borrow".

Adding and removing margin

In Portfolio, type an amount in the USDC field of a position and press Add margin or Remove margin. Both apply in the same transaction, checked against the latest print.

  • Add margin moves USDC from your wallet into the position while it is open. It lowers the liquidation price of a long and raises that of a short.
  • Remove margin sends USDC from the position straight to your wallet. It works while the market is live or in probation, and only down to the margin a new 3× position would need: equity after the removal must stay at or above a third of the notional at the latest print.

Closing a position

Press Close at the next print on the position in Portfolio, or in "Your orders and positions here" on the market page. The app sends a close order for the full size with an acceptable price 1% worse than the current mark. It fills at the next print like any order, at the fill price for the opposite direction (closing a long sells, closing a short buys).

At the fill, the program pays out:

payout=m+PnL−funding−borrow−trading fee−keeper fee\text{payout} = m + \text{PnL} - \text{funding} - \text{borrow} - \text{trading fee} - \text{keeper fee}payout=m+PnL−funding−borrow−trading fee−keeper fee

The payout lands in your claim balance. Claim to wallet in Portfolio or Vault moves it to your wallet (Claim balances). Closes keep working while opens on a side are paused.

Liquidation and the liquidation price

Each market sets a maintenance margin, a fraction of notional. A position becomes liquidatable when its equity at a print falls below that fraction of its notional at the index. A keeper then liquidates it at the index of that print, without skew impact. From the equity left, the keeper fee and the liquidation fee (1% of notional) are paid, and the rest goes to your claim balance.

maintenance requirementliquidation priceequity = margin + PnL − fees − funding − borrowentryindex falls →
Equity falls toward the maintenance margin as the index moves against the position; the crossing is the liquidation price.

The liquidation price follows from the same rule. With m′m'm′ the margin net of accrued funding and borrow and mm\text{mm}mm the maintenance fraction:

Pliqlong=q⋅Pentry−m′q (1−mm)Pliqshort=q⋅Pentry+m′q (1+mm)P_{liq}^{long} = \frac{q \cdot P_{entry} - m'}{q\,(1 - \text{mm})} \qquad P_{liq}^{short} = \frac{q \cdot P_{entry} + m'}{q\,(1 + \text{mm})}Pliqlong​=q(1−mm)q⋅Pentry​−m′​Pliqshort​=q(1+mm)q⋅Pentry​+m′​

For example, a long of 20 contracts entered at 600.00 ($12,000 notional) with $4,000 of margin, in a market with a 10% maintenance margin, liquidates at a print of 444.44 or lower: (12,000−4,000)/(20×0.9)(12{,}000 - 4{,}000) / (20 \times 0.9)(12,000−4,000)/(20×0.9). At 444.44 its equity is $888.89, which is 10% of its $8,888.89 notional.

The ticket and each position show this as "Liquidation near". Adding margin moves it away; accrued funding and borrow move it closer over time. A position whose equity is below maintenance at the latest print shows liquidatable until a keeper liquidates it.

Caps

Each market has a long cap and a short cap: ceilings on the total open interest of each side, across all accounts. Curators set them at listing from the market's cost dossier, and a market in probation trades at 25% of them (Listing a market). The market page shows each side against its cap, and the ticket shows the room left on your side.

An order fills only up to the cap: the whole order has to fit beneath it. After the fill, the side's open interest at the print's index must stay below the cap; there are no partial fills. When your size is at or above the room left, the quote reads "That size is over the market's cap." and Open order stays disabled until you lower the size. The vault's liquidity reserve bounds an order the same way, with the note "Side capacity or vault liquidity reserve would be exceeded."

The cap is checked again at the print. Orders that landed before yours fill first and the index moves, so an order that fit when you sent it can be rejected at its print; its margin is returned to you through Cancel order. Closes are never limited by the cap.

Cancelling an order

An order can't be cancelled while it can still fill. Cancel order appears on an order in these cases:

  • two rounds have passed since it landed without an eligible print;
  • it was rejected at its print, once the market has moved past that print;
  • the market has halted.

Cancelling returns the escrowed margin to your claim balance. When a market halts, keepers cancel its pending orders and return their margin without your action.

Pauses on opens

A round with no print (the roots disagree, or one is missing) pauses opens on both sides until the next print. A print beyond the circuit band pauses opens on the side of the move until later rounds confirm the level. Closes, margin additions and claims continue during a pause. How prices are made covers both.

PreviousGetting startedNextFees, funding and the borrow fee

On this page

Reading a market pageIndex, contracts and notionalThe order ticketWhy orders fill at the next printFill price and skewOpening a positionAdding to a positionLeverage and marginAdding and removing marginClosing a positionLiquidation and the liquidation priceCapsCancelling an orderPauses on opens
Anyperp
AppDataDocsLitepaperWhitepaperToken
Perpetual futures on artists’ monthly listeners, on Solana.Not offered to US persons.