Docs
How the lock works
How the Lockedin market works, what its contracts can and cannot do, and what is still a proposal. Nothing here is live yet: this is the design the contracts are being built to.
- Overview
- How a deal works
- Listings
- Positions
- Discount
- Fees and the burn
- $LOCKED
- Token launch
- Contracts
- Public record
- Questions
Overview
Lockedin is a market on Robinhood Chain for locked bags. A holder sells tokens below the pool price in exchange for a lock. The buyer pays ETH today and receives a position that unlocks on a set date. The position can itself be sold, so the tokens never reach the pool before the date.
- Sellers get ETH without selling into a thin pool.
- Buyers pay less than the pool price and accept a wait.
- Every other holder sees the sale in public, with its unlock date, instead of finding out from a candle.
NoteStatus: pre-launch. The contracts are not deployed and $LOCKED has not launched. Values marked as proposed become constants only once they are confirmed.
How a deal works
- 01A seller lists tokens with a price in ETH and a lock length. The whole amount moves into the market contract.
- 02A buyer pays the listed price for all or part of the bag. The seller receives the ETH, less the 2% fee, in the same transaction.
- 03The buyer receives a locked position: the right to claim those tokens after the unlock time.
- 04The holder waits for the date and claims, or sells the position to someone else before it.
- 05At the unlock time, whoever holds the position receives the full amount of tokens.
The pool takes part in none of these steps. Its price does not move and its liquidity is not used.
Listings
- Token
- Any coin launched through Pons, checked against the launch factory on the chain
- Amount
- Escrowed in full the moment the listing is created
- Price
- Set by the seller in ETH per token, fixed for the life of the listing
- Lock length
- 24 hours, 3 days, 7 days or 30 days
- Fills
- Partial fills allowed, from 0.01 ETH per fill
- Minimum size
- 0.05 ETH for the whole listing
- Lifetime
- 7 days; after that the unsold part can only go back to the seller
- Cancel
- The seller may cancel the unsold part at any time; filled parts stay sold
Creating a listing is free. Cancelling is free. A listing priced above the pool is allowed; the app labels it "above market" and leaves it off every discount board.
Positions
Every fill creates one position, owned by the buyer. It is a standard transferable token (ERC-721) that records the coin, the amount, the unlock time and the listing it came from.
- The unlock time is the fill time plus the listing's lock length. Two fills of one listing can unlock on different days.
- A position cannot be split and cannot be claimed before its date.
- There is no penalty exit. The way out before the date is to sell the position.
- After the unlock time anyone may trigger the release; the tokens can only go to the current holder.
Selling a position
The holder sets an ETH price. The app shows the discount that price gives the next buyer for the time left on the lock. When a buyer pays, the position moves to them, the ETH goes to the seller, 1% is burned, and the unlock date does not change.
Discount
The contract has no price feed. It knows one number: the ETH price the seller asked for. The discount shown in the app is a display, and it never changes what a buyer pays.
- 01The app reads each listed coin's pool price at sixty moments, one minute apart, from the chain's own past blocks.
- 02The reference price is the mean of the last 60 samples, so a one-minute push of the pool cannot inflate a discount.
- 03Discount = 1 − listing price ÷ reference price.
- 04The listing page shows the reference, the live price and the listing price side by side.
- 05A coin with fewer than 30 samples shows "not enough price history" instead of a number.
NoteA wrong number on screen cannot cost a buyer more than they agreed to: a fill carries the buyer's maximum price, and the contract compares it with the listing's price.
Fees and the burn
A fill
- 98%to the seller, in the same transaction
- 2%to the burner: buys $LOCKED and burns it
A resale
- 99%to the holder who sold
- 1%to the burner, the same path
There is no treasury share of these fees and no address that can redirect them. The buyer pays the listed price and nothing on top. Claiming costs only the network fee.
The burner
- Anyone may call it. It buys $LOCKED with the ETH it holds and burns what it receives.
- One buy is small: a fixed share of the ETH in the market it buys on, sized so that the price it moves is less than a trade round it costs in fees. What was spent comes back as allowance over ten minutes.
- It keeps the last five prices it wrote down, a quarter of an hour apart at the least, sets the lowest aside and does not buy more than 5% above the next lowest. A price that was pushed up has to hold for most of an hour before it is bought at.
- It has no withdraw function. ETH can leave it only as a purchase of $LOCKED.
$LOCKED
The market is complete without the token. Holding it changes when you can act, and every fill shrinks its supply.
- Burn
- 2% of every fill and 1% of every resale buys $LOCKED and burns it
- First window
- For its first 10 minutes a new listing can only be filled by wallets holding 1,000,000 $LOCKED (proposed)
- Pin
- A seller burns $LOCKED to pin a listing for 24 hours (proposed: 25,000)
- Cheaper fee
- Later phase: pay the seller fee in $LOCKED and pay 25% less
What it never does
- It never changes a price. A holder and a visitor pay the same ETH for the same listing.
- It is never required to buy, sell, resell or claim.
- It is never paid out for locking, holding or waiting.
- It gives no vote. There are no settings to vote on.
Token launch
- Supply
- 1,000,000,000 $LOCKED, fixed at launch
- Launchpad
- Pons: a bonding curve that graduates into a Uniswap V4 pool
- Pre-mine
- None
- Team allocation
- None
- Private round
- None
- Creator tax
- 1%, set once at launch (proposed)
- Team purchase
- 5% of supply bought on the curve in the launch transaction (proposed)
The team's purchase is sold through the market as listing #1: 30% under the pool, locked 30 days. The ETH goes to the published operations wallet, and its first use is an external review of the market contract. After listing #1 fills, the team holds no $LOCKED.
NoteThe launchpad's owner can re-point a coin's future creator fees after a public three-day delay. The market does not depend on that income.
Contracts
LockedinMarket
Holds listings, fills, positions, resale offers and claims.
- createListing
- Token must come from the Pons factory; the deposit must deliver the exact amount; a listing is worth at least 0.05 ETH and holds at least one millionth of the coin's supply
- fill
- Checks the first window, the buyer's maximum price and the amount left; mints the position
- cancel
- Seller only, unsold part only
- sweepExpired
- Anyone; returns an expired listing's remainder to its seller
- claim
- Anyone, at or after the unlock time; pays the position's holder
- offerPosition / buyPosition
- Resale at a fixed ETH price; the buyer names the most they will pay
- pin
- The seller burns $LOCKED to pin their own listing: one day for every 25,000
- withdraw
- Pays out ETH a seller's address did not accept when it was paid, to an address that seller names
LockedinBurner
Receives the ETH fees and turns them into burned $LOCKED. Before graduation it buys on the launchpad curve; after graduation, from the pool.
LockedinLens and LockedinArt
The lens reads the market for the app, a whole screen in one call. The art contract draws each position's picture on the chain: the coin, the amount, the unlock date and a ring that shows how far the lock has run. Neither holds anything, and replacing either does not touch the market.
What the contracts cannot do
- No owner function can move escrowed tokens or a seller's ETH.
- Claims, cancels and resales cannot be paused. One switch stops new listings only.
- No upgrade path: a change means a new deployment, and old positions keep working until claimed.
- Fee levels are constants, not settings.
- Coins that tax transfers or change balances by themselves are refused.
Public record
Every wallet that buys through the market has a public page built only from its history on the chain. It opens without a wallet and can be shared as an image.
- First fill
- The first position a wallet buys
- Held to unlock
- Positions claimed by the wallet that bought them
- Thirty days
- A 30-day position held to its date
- Never sold early
- Five or more positions held to their date and none sold before it
- Second hand
- Bought someone else's position and held it to the date
- Early position
- One of the first 1,000 positions ever created
- Straight seller
- Ten listings created and none cancelled after a first fill
Badges count positions of at least 0.05 ETH. Filling your own listing pays the 2% fee like any other fill.
Questions
Can I get my tokens before the date?
No. A position cannot be claimed before its unlock time, by anyone, for any fee. You can sell the position to another buyer if one wants it.
What if the coin falls during the lock?
Then the position is worth less, exactly as the tokens would be. A coin can fall by more than its discount, and it can fall to zero. The discount is a lower entry price, nothing more.
Who can list?
Anyone holding a coin launched through Pons. There is no approval and no allow-list of sellers.
Can the team take the escrowed tokens?
The design has no function for it. Tokens leave escrow in three ways only: a claim by the position's holder, a cancel of the unsold part by the seller, or the return of an expired listing's remainder.
Is the code reviewed?
Not yet. The source will be verified on the explorer before the first listing, and an external review is planned from the launch listing's ETH. A review reduces the chance of an error; it does not remove it.
This page describes a product under development. $LOCKED is a utility token for the Lockedin market: not a share, not a security, not a claim on any revenue. A locked position cannot be claimed before its unlock time. A token's price can fall by more than its discount, and it can fall to zero. A position can only be sold before its date if another buyer chooses to buy it. Smart contracts can contain errors. Nothing here is financial, legal or tax advice.