Docs
baskt lets anyone assemble a basket of real stock tokens and launch coins that trade against it. This page describes what the contracts actually do. The formal version is the whitepaper (v0.4).
Baskets
A basket is an ERC-20 token backed by fixed quantities of between two and ten stock tokens. One share always redeems for the same amounts of the same tokens. Nothing rebalances and there is no manager.
Because the quantities are fixed rather than the weights, a constituent's share of the basket drifts as prices move. That is deliberate: it is what lets minting and redeeming work without reading a price at all, so a basket keeps functioning over a weekend and cannot be broken by a stale oracle.
Constituents must be on an allowlist of canonical stock tokens, which exists to stop a counterfeit token being passed off as a real one inside a basket.
- Constituents
- 2 to 10
- Rebalancing
- none
- Owner
- none; the vault cannot be upgraded or paused
Minting and redeeming
Anyone can mint shares by depositing the required amount of every constituent, and redeem them back for those same tokens. Both directions are permissionless and neither reads a price.
Deposits round up and payouts round down, so the vault can never pay out more than it holds. The difference is dust, and it stays with the basket rather than with anybody in particular.
- Fee
- 5 bps of shares, each way
- Split
- half to the basket's curator, half to the protocol
- Paid in
- shares, so fee shares are backed like any other
Launches
A coin is launched against a basket rather than against a stablecoin. Its entire supply is minted once, and the token contract has no way to mint more.
The whole supply goes into a Uniswap V3 pool that is locked the moment it is created. Nobody can withdraw that liquidity: not the creator, not the protocol, not the operator of the launch factory. The only thing the pool permits besides trading is collecting fees.
There is no graduation and no migration. The pool a coin launches into is the pool it trades in for as long as it trades, which means there is no threshold to wait for and no migration step that can go wrong.
- Supply
- 1,000,000,000, all of it sold into the pool
- Reserved for the creator
- none
- Pool
- Uniswap V3, 1% fee, locked at creation
- Governance
- none
The curve
Supply is spread across a price range as a series of liquidity positions, cheapest first. Each purchase eats through the cheap ones and the price steps up, which behaves like a bonding curve, except that it is already a real market.
Four fifths of the supply sits on the curve between the opening and ending market caps the creator picks. The remaining fifth sits in a single position above the end, so the pool still has depth if the coin runs past it. The ending market cap is not a ceiling; it is where the dense part of the curve stops.
On the default range, measured against live pools:
- Opening market cap
- $10,000 by default
- End of the curve
- $1,000,000 by default
- To reach $100k
- roughly $10,600 of buying
- To reach $1M
- roughly $290,000 of buying
Both ends are set per launch. A wider range spreads the same supply further, so the climb is smoother and slower.
Fees
Every trade in a launched coin pays a 1% pool fee. It accrues inside the locked pool until somebody collects it, which anyone can do, and it is then split in proportions fixed at launch that nobody can change afterwards.
The launch factory takes 5% off the top. What remains is divided three ways between the coin's creator, the curator of the basket it trades against, and the protocol.
- Pool fee
- 1% of every trade
- Coin creator
- 71.25% of the fee
- Basket curator
- 9.5%
- Protocol
- 14.25%
- Launch factory
- 5%
There is no fee to launch a coin and no fee to create a basket beyond a refundable bond.
Buying and selling
A buyer never has to hold basket shares. One transaction takes the token they are spending, buys each of the basket's constituents by the cheapest route, mints the shares, swaps those into the coin, and delivers it. Selling runs the same path backwards. Anything left over is returned in the same transaction.
Routes are chosen across Uniswap V3 and V4, at whichever fee tier is cheapest, and a leg that cannot be reached in one swap is routed through a hub. Pools that run custom hook code are avoided by default, because such a pool can quote a price and then fail when the trade actually executes.
Because every purchase buys the underlying stock tokens on the open market, demand for a coin becomes real demand for the stocks its basket holds.
Curators
Anyone can create a basket. Doing so requires a refundable bond, which exists only to make spam cost something, and it comes back the first time a coin is launched against that basket.
A curator earns two streams: a share of the pool fees of every coin launched against their basket, and half of the 5 bps charged on minting and redeeming. Both can be pointed at a different address, and the curator role itself can be handed on.
A curator is paid for being chosen. A basket that nobody launches against earns nothing, so the return goes to people who assemble baskets that creators actually want.
Token addresses
Every coin launched through baskt has an address ending in ba5c. The launcher refuses anything else, so it is a guarantee rather than a convention, and it makes a baskt coin recognisable in a list of addresses anywhere.
Risks
Coins launched here are speculative and can go to zero. Most will. Nothing about a basket protects the coins that trade against it.
Stock tokens are issued by a third party and track a share's price. They are not ownership of the underlying company and carry the issuer's credit risk. They are minted and redeemed on weekdays while these markets trade continuously, so a basket can diverge from the value of its constituents when the underlying market is shut.
The contracts have not been audited by an external firm. Liquidity in a launched pool is locked forever, which protects against withdrawal but also means a coin cannot be wound down.
Community
Questions, basket ideas and launches are discussed in the open. Nobody from baskt will ever message you first, ask for a seed phrase, or ask you to approve a transaction in a direct message.