How it works
Credit Pool turns Credits into a token counted by Credit Score, pools that token with ETH, and pays the people who pool it in POOL. Bootstrap liquidity, and any liquidity its owner chooses to lock, stays in until the migration to the real token and then streams out over the 24 hours after it completes (or until the deadline, if the migration hasn't opened by then); other liquidity can come out until the pause before the migration (announced ahead).
The phases
Commit Credits or SCORE with the matching ETH, up to the caps. A commitment can't be taken back.
Once the minimum is in, anyone launches: the SCORE and POOL pools open together.
Bootstrap LP units are locked. POOL streams to LP units at a flat rate from launch until Oct 22, 02:20 UTC, or until the migration completes if sooner; deposits stay open.
Deposits and locking close. The POOL stream runs on to its end.
Once it opens (announced ahead) every LP unit is in it; the migrator moves the liquidity to the real token, a few Statements at a time.
If the migration hasn't opened by —, every unit unlocks then, without anyone acting, and can be withdrawn as ETH and SCORE.
SCORE
A Credit wraps into exactly its Credit Score in SCORE. A Credit scoring 778.73 becomes 778.73 SCORE. The score isn't supplied by anyone: the contract computes it from the Credit's own seed and payment time with the same CreditScore contract Statements uses.
Wrapping has no fee. Until Statements open, anyone holding SCORE can unwrap a Credit in the vault for exactly the SCORE it minted; after that, whole Statements until the migration. Once the migration opens, SCORE becomes the real token, 1 for 1. Every 80 Credits in the vault can be composed into a Statement that stays in the vault and carries their summed score; anyone can trigger it, and the contract checks the score matches. The contract checks on every mint that SCORE's supply equals the total score of what it holds, and it has no owner.
Statements can be wrapped too, for the score they record, once the pool has launched and Statement wrapping has opened: —. The owner opens it; it also opens on its own once a migrator is set (the window to convert Statements before a migration), and it never opens automatically at the full unlock.
The plan for the real token is to convert the vault's Statements into it and SCORE into it by score. Credits left over below a full Statement are completed into one last Statement at the migration: anyone can bring the missing Credits and is paid for them in the real token, so every SCORE follows the same path.
Because one SCORE is one point of score, the pool's price reads directly as score per ETH.
The bootstrap
Every commitment is paired: Credits or SCORE (Credits are wrapped on the way in), plus the ETH that matches them at the launch price, —. Any extra ETH sent comes straight back. A commitment can't be taken back. If the bootstrap can never launch (the minimum isn't reached within 6 hours of the open, the deadline passes, or the real token goes live before launch), the contract lets each committer withdraw their ETH and surcharge and the SCORE their Credits were wrapped into (not necessarily the same Credits). Launch is refused from Oct 22, 02:20 UTC; a bootstrap that hasn't launched by then stays committed until the deadline, and is refundable from then. That depends on the contracts working as written and is not guaranteed.
The bootstrap holds at most —, and launches 2 hours after commits open — or straight away once the cap is full — as long as it has at least — by then. Commits open — (the contracts go live for review first). The minimum must be reached within 6 hours of the open, or the bootstrap fails and commitments can be withdrawn; — is the absolute backstop. Each commit also pays a — surcharge on top of its paired ETH, which seeds the POOL/ETH pool at launch (it becomes POOL liquidity, not a fee to the protocol). Launch can never be in the same block as a commit. The owner or its price keeper sets the launch price within a band fixed at deploy, at most 10% per step; launch needs a price set within the last 15 minutes. Every commit settles at the price the pool opens at, and whichever side is in excess comes back pro rata.
At launch everything committed goes into the pool. Your LP units are the value you put in.
—
Bootstrap LP units split a bootstrap allocation of —, on top of the farm.
After launch
The pool is a single full-range Uniswap v4 position owned by the protocol. Depositors hold LP units of it; units can't be transferred. Its trading fee is 1% from the opening, an ordinary LP fee, split as below.
Later deposits are paired too: Credits or SCORE plus ETH at the pool's current price. Whatever doesn't fit comes straight back. The page simulates each deposit first and refuses to send it for less than 99% of the quoted units. Units can't be withdrawn in the same block as their owner's latest deposit, so nobody can add liquidity just before a large trade and take it out right after.
Bootstrap commitments can't be taken back, and bootstrap units stay locked until the migration, then stream out by the second over the 24 hours after it completes (or until the deadline, if the migration hasn't opened by then); locked units earn boosted emissions. Units from later deposits can be withdrawn to ETH and SCORE until the pause before the migration (announced ahead), unless you choose to lock them. From the pause, wrapping, deposits and withdrawals stop. Once the migration opens, every unit, free ones included, is in it, and never-locked units can take their real-token/ETH liquidity as soon as it is migrated.
Locked units earn boosted emissions: each one counts — a free one in the farm. That includes every bootstrap unit. The boost lasts as long as the stream, unless every unit is unlocked early, with no action needed. After the migration, the first week's farm is open to any LP in the new pool, and locks there earn 3x until one fixed end, 7 days after the migration completes. The bootstrap allocation is split per unit, without the boost. POOL can be claimed at any time.
When the real token is live, the plan is to move the pool's liquidity into the real token's pool automatically, wherever that's possible.
POOL
POOL is worth nothing: a memecoin, for entertainment only, with no utility. The whole supply is in the table below. The mechanics below describe how the contracts move POOL, not a promise about its price.
| Part | Amount | Where it goes |
|---|---|---|
| 30% | — | The POOL/ETH pool, in full range with the bootstrap surcharge (forwarded at launch, no team ETH), so the opening price is their ratio: — fully diluted now. The launch contract has no function to remove it, and adds the seed's LP fees back into it. The pool has an LP fee on top of the tax; once the launch tax's hour is over, anyone may add full-range liquidity and earn it. |
| 30% | — | The bootstrap allocation to bootstrap LP units, claimable in full from launch. |
| 40% | — | The farm. 10% streams to all LP units at a flat rate from launch until Oct 22, 02:20 UTC, or until the migration completes if sooner, and whatever hasn't streamed by then is burned: —. 10% goes to LPs in the first week after the migration, with locks earning 3x. 20% is held back for concentrated-liquidity incentives, or burned. |
POOL trades with a tax taken by the pool's hook at the same rate on buys and sells. It is 99.9% in the launch block, then — falling evenly by the second to — over —, and stays there. — of it goes to dev in ETH. Of the rest, half is burned as POOL inside the trade itself (on a buy, part of the POOL bought is burned right after the swap; on a sell, part of the POOL sold is burned before the swap), and half goes to the Builder in ETH (below). Only exact-input swaps are accepted.
The flywheels
Two pools, two loops. Every arrow below is a transfer the contracts make; none of it is a promise about prices. The ETH and SCORE they move wait in two contracts, the Burner and the Builder, until anyone calls them.
Anyone can call burn and build, each at most once per block. Their trades stop at the edge of a band around both the pool's price at the start of the block (recorded before that block's first trade moves it, so a price pushed earlier in the same block is never the reference); the band is narrower than the fee or tax a sandwich would pay both ways, and a pool already outside it isn't traded. A call that only fills dust doesn't use up its block. The caller is tipped a flat part of the ETH moved, set by the guardian: 0 at launch, and never more than 2%. If the caller can't receive ETH, the call still runs and tips nothing.
Who controls what
- The owner can mark the real token live (once), which closes deposits, and sets the migrator, then enables it, which opens the migration. There is no waiting period and no second key (the real token's contracts may only be known at its launch): once it sets and enables a migrator, the owner is fully trusted, since that contract takes the pool's liquidity and the vault's Statements and decides what everyone receives in the real token. Once enabled, anyone holding SCORE can convert it to the real token at the migrator. The owner or a separate guardian multisig can schedule the pause before the migration for a set time (from then wrapping, deposits and withdrawals stop; trading goes on; it can be lifted; it doesn't block withdrawals once every unit unlocks, but wrapping and deposits stay stopped until it is lifted). The owner or the guardian can renounce the pause power for good, on-chain. The guardian can unlock every LP unit early, drop the migrator at any time, and pause the Burner and the Builder. Everything unlocks 3 days after the migration opens if it has not completed by then, however it went.
- As written, the contracts give the owner no function to withdraw deposits, the pool position or the Credits and Statements in the vault. Until launch, the owner or its price keeper moves the launch price within a band fixed at deploy, at most 10% per step. Until the bootstrap opens, the owner can change the minimum and caps; after that it has no function to change them, the fees, the bootstrap allocation or the farm amounts. The dev parts of the fees and the tax can only be lowered. This describes the code's intent; a bug could change what's possible.
- The hooks' untaxed addresses (the Burner, the Builder, the pool contract and the launch contract) and the only address allowed to open each pool (and, for SCORE/ETH, to add liquidity) are each set once by the contract's design.
Risks
- Locked means locked: bootstrap and locked liquidity can't come out until the migration (then it streams out over the 24 hours after it completes), or the deadline if the migration hasn't opened; once it opens, no SCORE/ETH liquidity can. Prices can move a long way in that time, and the migrator is written later.
- Don't count on getting your Credits back: unwrapping closes when Statements open, and the vault's Credits go into the migration.
- Liquidity in a pool loses value against holding when the price moves (impermanent loss).
- The market prices score differently by Credit: low scorers often sell for more per point. Expect the vault to hold mostly higher scores, and SCORE to trade on that.
- Smart contracts can have bugs. These have not been independently audited, and they can be exploited.
- POOL is a speculative token with a trading tax.
Contracts
| Loading … |