gitgrit / specimen 001
refresh +180dbase · 8453
§ thesis

A credential
bots cannot forge.

GitGrit converts a developer's multi-year public GitHub trail — commits, reviews, maintainership — into a soul-bound credential on Base L2. No biometrics. No KYC. No video calls. Years of work, now legible to any protocol.

proof · of · work/not · your · wallet · balance/not · your · twitter · followers/not · your · ens/not · your · discord · level/your · multi-year · commit · trail/proof · of · work/not · your · wallet · balance/not · your · twitter · followers/not · your · ens/not · your · discord · level/your · multi-year · commit · trail/
§ 00 · footnote
We are not building a wallet. We are not building another stamp aggregator. We are not building a KYC service.

Web3 burns $300M / year trying to tell humans from bots.

Meanwhile developers carry the hardest-to-forge credential ever made — a decade of public commits.

GitGrit is the protocol that turns it on-chain.

OPTIMISMBASEFOUNDRYARBITRUMGITCOINWAGMIVIEMLINEASCROLLEASPOLYGON IDFARCASTERLENSZK SYNCOPTIMISMBASEFOUNDRYARBITRUMGITCOINWAGMIVIEMLINEASCROLLEASPOLYGON IDFARCASTERLENSZK SYNC
01 · soul-bound×02 · non-transferable×03 · refresh 180d×04 · gasless×05 · on-chain weights×06 · peer attestation×07 · challenge stake×08 · 12 signals×01 · soul-bound×02 · non-transferable×03 · refresh 180d×04 · gasless×05 · on-chain weights×06 · peer attestation×07 · challenge stake×08 · 12 signals×01 · soul-bound×02 · non-transferable×03 · refresh 180d×04 · gasless×05 · on-chain weights×06 · peer attestation×07 · challenge stake×08 · 12 signals×
§ 01the credential

Four tiers that take years not minutes to earn.

Levels aren't a single metric. A farm can pump commit counts, but it can't simultaneously fake longevity, peer attestations and CODEOWNERS presence in popular repos.

Bronze
Silver
Gold
Diamond
01≈ 1 year
Bronze

Active developer for at least a year with regular commits and one external contribution.

  • ·Sybil filter for airdrops
  • ·Testnet whitelist
  • ·Observer roles in OSS Discords
02≈ 2–3 years
Silver

2–3 year account with merged PRs across multiple repositories and code review activity.

  • ·Grant round registration
  • ·Tier-1 grant programs
  • ·Mid-weight DAO governance vote
03≈ 4–6 years
Gold

4+ year account with commits to popular repos and maintainership of at least one project.

  • ·High-tier airdrops
  • ·RetroPGF voting
  • ·Closed developer DAOs
  • ·Right to attest other developers
04≈ 6+ years
Diamond

Multi-year maintainership of >1k★ projects with peer attestations from other Diamond holders.

  • ·OSS governance with full weight
  • ·Right to challenge other credentials
  • ·GitGrit Council seat
§ 02the pipeline

From issue comment to on-chain in under 10 seconds.

Same infrastructure as Gitbank — IssueOps UX, Claude Haiku intent parser, a gasless relayer, and Base L2 as the settlement layer.

01
GitHub
issueops webhook
02
Bot
hmac verify
03
Claude Haiku
intent parse
04
Indexer
graphql · 12 signals
05
Scoring
on-chain weights
06
Relayer
gas sponsored
07
GritFactory
base · 8453
end-to-end
5–10s
from issue comment to SBT minted
cost to mint
$0
gas sponsored by the protocol relayer
behavioural signals
12
aggregated under on-chain weights
§ 03the scoring engine

Twelve signals, one number.

Each weight is governed on-chain by $GITGRIT holders. The formula is fully open and reproducible; the only thing you can't fake is years.

scoring matrix
sample: @gaearon
01Account age (years)w = 14.09.6 → +134.4
02Lifetime commitsw = 0.0008/c8412 → +6.7
03Unique repositoriesw = 0.15/r184 → +27.6
04Commits to >100★ reposw = 0.45/c5128 → +2307.6
05Merged PRs (external)w = 0.55/PR661 → +363.5
06Code review approvalsw = 0.4/r1842 → +736.8
07Longest active streakw = 6.0/yr11.5 → +69.0
08Activity regularityw = 18.09.5 → +171.0
09Unique collaboratorsw = 0.25/c912 → +228.0
10Maintainershipw = 11.0/r6 → +66.0
11Peer attestationsw = 9.0/a15 → +135.0
12Sybil penaltyw = −1.0/sig0 → 0.0
Σ ·8,412.4diamond
score thresholds
BRONZE
60
SILVER
140
GOLD
260
DIAMOND
420
YOU · 480
sybil filters
  • ×Burst commits in short windows
  • ×No external contributions
  • ×No social graph in collaborators
  • ×Boilerplate / AI-generated patterns
  • ×Style discontinuity (purchased account)
§ 04comparisons

The first proof-of-personhood specialised for developers.

Existing solutions are general-purpose and high-friction. GitGrit weaponises the multi-year activity already attached to every real developer.

solution
mechanism
friction
audience
resistance
01GitGritthis protocol
GitHub history
Zero · one comment
Developers
High
02Worldcoin
Iris biometrics
Orb hardware
Everyone
Very high
03Gitcoin Passport
Stamp aggregation
10+ integrations
Web3 users
Medium
04BrightID
Video meet-ups
Synchronous
Everyone
Medium
05Civic
KYC documents
ID upload
Regulated
High
§ 05integration

One line for any Web3 protocol.

REST query, Solidity read, or SDK call. Use the credential to gate airdrops, RetroPGF, DAO votes, grant programs, closed communities.

01 · airdropsgrit.sdk

Filter your developer airdrop

Require a minimum credential level for eligibility. Use the level as a multiplier — Diamond holders are unambiguously real builders, farms cannot keep up.

const c = await grit.credentials.get(user);
if (c.level === 'Gold' || c.level === 'Diamond') {
  await airdrop.claim(user, multiplier(c.level));
}
02 · retropgfgrit.sdk

Quadratic funding without sybils

Require Silver+ for ballot participation. Sybil rejection drops below 0.2% without blocking legitimate new contributors above the threshold.

require(
  grit.scoreOf(voter) >= grit.threshold("Silver"),
  "Voter not eligible"
);
03 · communitiesgrit.sdk

Auto-gate Discord, Telegram, grant rounds

No more manual approvals or wallet-NFT gates that arbitrage themselves. Map levels to roles and let bots invite real builders automatically.

const { passes } = await grit.integrators.query({
  username,
  minLevel: 'Gold',
});
if (passes) discord.giveRole(user, 'core-dev');
04 · oss governancegrit.sdk

One head — one weighted vote

Map credential level to voting power inside OSS DAOs. Diamonds outweigh wallet-bought tokens, without giving up token incentives.

function votingPower(address v) public view returns (uint256) {
  uint8 lv = grit.levelOf(v);
  return weight[lv] * stake[v];
}
§ 06live state

The credential graph, right now.

Every credential is on Base — public, queryable, soul-bound. Tail of the GritFactory mint stream below.

factory 0x4F1E2cD3chain id 8453treasury $0.54mqueries 24h 205,935
DIAMOND
333
GOLD
1,274
SILVER
5,461
BRONZE
10,923
live mint stream0000 tracked
full ledger →
  • 01
    LE
    @leeerob
    0x84e52c…9dd6b1
    Diamond
  • 02
    LI
    @lirantal
    0x832de7…f74b07
    Diamond
  • 03
    BD
    @bdougie
    0x70c8ab…b47f2d
    Silver
  • 04
    TH
    @thedaviddias
    0x05fd75…a5ec9c
    Diamond
  • 05
    RM
    @rmharrison
    0x2d5b5f…be33cc
    Bronze
  • 06
    MI
    @mikael-s
    0x8be212…cbd58b
    Bronze
  • 07
    DE
    @devsapariya94
    0x836403…9e411e
    Gold
  • 08
    SA
    @samuelfung
    0xa3fb35…417ea8
    Silver
  • 09
    JA
    @jaredpalmer
    0x8e2afd…3acf1e
    Diamond
  • 10
    KO
    @koolkishan
    0xb72062…a07cfc
    Silver
§ forge

Years of commits.
Ten seconds to forge.

Free. Gasless. Non-transferable. Refreshed every 180 days. Recognised by Optimism, Base, Foundry and the rest of the developer ecosystem.

Forge my credentialRead the specno wallet connection required to preview