Skip to content
Commit markCommit
Launch

How Commit works

A coin tied to its dev's GitHub repo. The creator fee sits in a lock and unlocks only as the dev ships code.

The flow

  1. The dev proves the repo is his with one pushed line (no login), then launches a pump.fun coin for it. One repo, one coin, forever.
  2. Every creator fee splits on chain: 90% into the coin's lock, 5% buys back and burns $COMMIT, 5% to the treasury.
  3. Our scoring service grades every push to the default branch from 0 to 100. The program turns points into SOL: a full day (100 points) unlocks 10% of the lock as it stood at the start of the day, at most 5 SOL a day.
  4. Unlocked SOL becomes claimable after the day ends plus a 6 hour veto window. Anyone can push it to the dev; it only ever goes to the dev's wallet.
  5. 14 days without a real push (score 20 or more): anyone can shred the coin. The lock buys the coin back over 24 hours and burns every token it buys.

Binding a repo

  1. Paste the repo url. The service refuses forks, archived and private repos and repos that are already bound, and gives you a line commit:v1:<wallet>:<nonce>.
  2. Add a file .commit with that line and push it yourself, directly to the default branch (not through a pull request), from the account that owns the repo. Bots, apps and pushes with other people's commits do not count.
  3. The service finds that push in the repo's activity, takes the pusher's numeric GitHub id and signs a voucher (valid 10 minutes). Your wallet submits it; the program checks the signature on chain.
  4. The bind waits 1 hour before launch. Inside that window the guardian can veto a bind that does not match GitHub.

Binding is by numeric ids, so renaming or transferring the repo does not break it. Credits count only pushes by the bound GitHub account.

Grading

For each push the service drops what is not work: force pushes (history rewritten scores 0), commits by bots or other authors, lockfiles, vendored and build folders, minified bundles, binaries, renames, single files over 2000 added lines, whitespace and comment-only changes, and code already seen in any other push of any coin.

What is left is counted: meaningful added lines plus half the deleted ones. Size score = min(100, 100 x sqrt(counted / 150)). A rubric sets the kind: feature 100, tests 80, refactor 70, docs 20, cleanup 10, junk, cosmetic or copied 0. Final score = the lower of the two. Today the rubric runs on rules only (no LLM). Every score has a public report; its hash is stored on chain with the credit.

The day

Days are UTC. A credit with score s unlocks lock at day start x 10% x points / 100, where points are capped at 100 a day, and never more than 5 SOL a day or what is in the lock. The unlocked SOL sits in today's slot, then matures until the day ends plus 6 hours. During that time the guardian can send it back to the lock if the push does not match GitHub; the push then counts as never graded.

The shredder

14 days after the last real push the coin can be abandoned by anyone, but only while our service is alive (the clock stops while it is down). The lock, today's and the maturing unlocks open a buyback: chunks over 24 hours, each priced against a median of recent observations, every token burned in the same instruction. What was already claimable stays the dev's.

If our service goes silent for 30 days, every live coin is released instead: its lock becomes claimable by its dev. Our outage is not his fault.

Parameters

parametervalue
creator fee split90% lock / 5% $COMMIT buyback / 5% treasury
launch fee0.02 SOL
first buy by the devup to 2 SOL and 10% of supply
a full day unlocks10% of the lock at day start
daily cap5 SOL per coin
real workscore 20 or more
veto window6 h after the day ends
quiet until shredded14 days
buyback48 chunks over 24 h
bind check window1 h
service heartbeat gap24 h (abandon needs a heartbeat within 48 h)
release if the service is silent30 days

Changes go through a 24 hour timelock and only apply to coins launched after them.

Trust points

  • The scoring service key picks scores and signs binds. It never picks an amount or a payee. A stolen key could at worst credit 100 points a day on every coin: each dev gets his own fee sooner, within the daily cap, only after the veto window. It cannot touch the treasury, the buyback or redirect a payout.
  • The guardian watches every bind and credit against the service's signed journal and GitHub, and vetoes what does not match; an action with no journal entry also revokes the service key. A hostile guardian could veto real work until a coin is shredded.
  • Pause stops new binds and launches only. Credits, claims, buybacks and releases never pause.
  • The dev can move his payout to a new wallet in two steps (propose, accept by the new wallet).

Program

Program id CmtweSkLgRoQBxW61xtKm6RN3rXTmSRdtAwNKy6SVDnv. The interface (IDL) is served at /idl/commit.json.