Credit Pool

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

01Bootstrap

Commit Credits or SCORE with the matching ETH, up to the caps. A commitment can't be taken back.

02Launch

Once the minimum is in, anyone launches: the SCORE and POOL pools open together.

03Farming

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.

04Real token live

Deposits and locking close. The POOL stream runs on to its end.

05Migration

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.

Timelinenot to scale · launch comes at once if the cap fills
Bootstrap to migration timeline Commits open. Launch is possible from 2 hours after the open once the minimum is in, or at once when the cap fills. The minimum must be in within 6 hours of the open, or the bootstrap fails and commitments can be withdrawn. At launch the pools open and wrapping opens; the POOL farm streams to LP units until Oct 22, 02:20 UTC (or the migration, if sooner) and bootstrap units stay locked until the migration. 1 SCORE becomes 1 BALANCE; after the migration completes, locked units stream out over 24 hours. If the migration hasn't opened by the deadline, every unit unlocks. Bootstrap Farming Migration 0 h +2 h +6 h POOL farm streambootstrap units locked unlock streamby the second, 24 h Opencommits start Earliest launchif minimum is in Minimum dueelse it fails Launchwrapping opens Migration1 SCORE → 1 BALANCE Unlockedall units free No minimum by +6 hcommitments withdrawable Past the deadlineevery unit unlocks

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.

POOL supplyfixed at deploy · none for a team
POOL supply split 30% seeds the POOL/ETH pool with the bootstrap surcharge. 30% goes to bootstrap LP units. 40% is the farm: 10% streams from launch until Oct 22, 02:20 UTC (or the migration, if sooner) and the rest of that part is burned; 10% goes to LPs in the first week after the migration; 20% is for concentrated-liquidity incentives, or burned. 40% · Farm 30% · POOL/ETH poolseeded with the surcharge 30% · Bootstrapto bootstrap LP units 10% 10% 20% streams launch → Oct 22 (or the migration); what hasn't streamed is burned LPs in the first week after the migration, locks 3x concentrated-liquidity incentives, or burned
PartAmountWhere 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.

POOL tax over the first hoursame rate on buys and sells · plus 0.3% LP fee
POOL tax over the first hour The tax is 99.9% in the launch block, then 99% falling evenly by the second to 3% over 60 minutes, and 3% from then on. 100%75%50%25%0% 015304560 minutes 99.9% in the launch block, then 99% falling evenly to 3% over 60 minutes 3% from then on

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.

1 · SCORE/ETH trading fees1% of every swap, in ETH and SCORE
SCORE/ETH fee flywheel SCORE/ETH trades pay a 1% fee. 5% of it goes to dev; of the rest, half is compounded back into the pool, half goes to the Burner, which buys POOL and burns it. SCORE/ETH tradesswaps in the pool 1% pool feeETH + SCORE 47.5%47.5%5% Compoundedback into the pool for its owners Burner buys POOLsells the SCORE, buys with the ETH Devrevocable; can't be raised Burnedin the same transaction every LP unit owns a little more of the pool
2 · POOL trading taxthe burn in POOL, the rest in ETH
POOL tax flywheel POOL trades pay a tax in ETH: 99.9% in the launch block, then 99% falling to 3% over an hour. 5% goes to dev in ETH; of the rest, half is burned as POOL inside the trade and half goes to the Builder in ETH (protocol-owned SCORE/ETH liquidity). POOL tradesbuys and sells Tax99% → 3% in an hour 47.5%47.5%5% Builder buys SCOREfrom the pool, within the band Taken in POOLfrom what is bought or sold Devrevocable; can't be raised Protocol-ownedSCORE/ETH liquidity Burnedin the same transaction
3 · Burn and buildanyone, once per block each
Burn and build Burn sells the Burner's SCORE and buys POOL with its ETH, then burns it. Build buys SCORE with part of the Builder's ETH and adds both to the pool. Each trades only within a band around the block's opening price: the pool's price before that block's first trade. Burner · burn() Sell fee SCORE for ETH Buy POOL and burn it band: SCORE ±1%, POOL ±4%from the block's opening price Builder · build() Buy SCORE with part of the ETH Add both to the pool band: SCORE ±1%what doesn't fit waits

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 …