Score

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

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 PROTO pools open together.

03Farming

Bootstrap LP units are locked. PROTO streams to LP units for four weeks at rising rates; deposits stay open.

04Real token live

Deposits and locking close. The PROTO 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.

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.

PartAmountWhere 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.

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 PROTO 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 PROTOsells 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 · PROTO trading taxalways taken in ETH
PROTO tax flywheel PROTO trades pay a tax in ETH: 99.9% in the launch block, then 99% falling to 3% over an hour. 5% goes to dev; of the rest, half goes to the Burner (PROTO bought and burned) and half to the Builder (protocol-owned SCORE/ETH liquidity). PROTO tradesbuys and sells Tax, in ETH99% → 3% in an hour 47.5%47.5%5% Builder buys SCOREfrom the pool, within the band Burner buys PROTOuntaxed Devrevocable; can't be raised Pool liquiditybacks no LP units Burnedin the same transaction
3 · Burn and buildanyone, once per block each
Burn and build Burn sells the Burner's SCORE and buys PROTO 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 both the block's opening price and a 10-minute moving average of opening prices. Burner · burn() Sell fee SCORE for ETH Buy PROTO and burn it band: SCORE ±1%, PROTO ±4%from the opening price and its average Builder · build() Buy SCORE with part of the ETH Add both to the pool band: SCORE ±1%what doesn't fit waits

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 …