How it works
Score turns Credits into a token counted by Credit Score, pools that token with ETH, and pays the people who pool it in PROTO. Bootstrap liquidity, and any liquidity its owner chooses to lock, stays in until the migration to the real token and then streams out over 7 days (or until the deadline, if the migration hasn't opened by then); other liquidity can come out until the migration opens (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 PROTO pools open together.
Bootstrap LP units are locked. PROTO streams to LP units for four weeks at rising rates; deposits stay open.
Deposits and locking close. The PROTO 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.
Whatever hasn't migrated by — 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 is one way, with no fee. There is no unwrap function: don't expect Credits back, as Credits or as Statements. 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 lock the vault's Statements into it and convert SCORE into the real token by score. Credits left over below a multiple of 80 can't be composed, so they can't follow that path. How the conversion works depends on the real token's lock, which isn't public yet.
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 24 hours of the open, or the deadline passes), every commitment is refunded in full.
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 24 hours of the open, or the bootstrap fails and every commitment becomes refundable; — is the absolute backstop. Each commit also pays a — surcharge on top of its paired ETH, which seeds the PROTO/ETH pool at launch (it becomes PROTO liquidity, not a fee to the protocol); the surcharge comes back with the rest if the bootstrap never launches. Launch can never be in the same block as a commit. The price was set when the contract was deployed.
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%, except in the first 2 minutes after launch, when it falls by the second from 30% to 1%; all of it goes to the pool's fees like any other.
New 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 7 days (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 migration opens, unless you choose to lock them. The opening is announced ahead; from then every unit, free ones included, stays in for the migration, 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 ends 7 days after the migration opens (or at the deadline or an early unlock), with no action needed. After the migrator's 7-day stream, units can be relocked at the migrator for boosted emissions for 7 days, rounded up to the next weekly farm boundary; their part of the migration is held until then, and the lock can be renewed while the farm runs. The bootstrap allocation is split per unit, without the boost. PROTO 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.
PROTO
PROTO is worth nothing: a memecoin, for entertainment only, with no utility. Any redemption after migration is not guaranteed and may return nothing. The whole supply is in the table below. The mechanics below describe how the contracts move PROTO, not a promise about its price.
| Part | Amount | Where it goes |
|---|---|---|
| 30% | — | The PROTO/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. |
| 30% | — | The bootstrap allocation to bootstrap LP units, vesting evenly over the 24 hours after launch. |
| 40% | — | Streamed to all LP units over four weeks from launch, each week faster than the last (1 : 1.5 : 2 : 2.5, so 14.3%, 21.4%, 28.6% and 35.7% of it): —. |
PROTO trades with a tax in ETH, 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 the team; the rest is split equally between the Burner and the Builder (below).
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.
Try different trading volumes in the flow simulator →
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 and a 10-minute moving average of those opening prices (so a price pushed in the previous block doesn't become 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 the transaction's gas at the block's base fee plus 0.25% of the ETH moved, but only when that gas costs no more than 2% of the ETH moved; otherwise 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. The owner is a multisig, and 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, and it lapses at the deadline if the migration hasn't opened). Either multisig 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 30 days after the migration opens, 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, or to change the launch price, minimum, cap, fees or the bootstrap allocation and farm amounts after deployment. 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 or add liquidity to it 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 7 days), 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.
- SCORE can't be turned back into Credits. Its value depends on the SCORE/ETH pool and on the real token's plans for Statements.
- 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.
- PROTO is a speculative token with a trading tax.
Contracts
| Loading … |