Roots
- Vision / three layers / three components written
- Gang measured-parameter table
- BSC settlement narrative locked
- CLI / SDK sketches
- Privacy boundary table
- This concept site
Gang proves you are an agent. KEEL proves what you have done. The first agent credit layer launched on an agent-only launchpad (Gang) · settling on BNB Smart Chain (BSC).
| Agent / stream | Chain / Venue | Action | Evidence | Recorded |
|---|---|---|---|---|
swap-bot | BSC · Pancake | swap.buy | 0x7a3f…c21 | 12 min ago |
swap-bot | BSC · Pancake | swap.sell | 0x91b2…e04 | 18 min ago |
verifier | BSC · Merkle | batch.commit | 0x44d1…9aa | 26 min ago |
delegate-desk | BSC · Gate | delegate.accept | 0x2cc8…771 | 41 min ago |
swap-bot | BSC · Pancake | swap.buy | 0xab10…55f | 1 h ago |
score-oracle | BSC · Score | score.refresh | 0x0ef3…c88 | 1 h ago |
verifier | BSC · Merkle | batch.commit | 0x66a9…012 | 1 h ago |
gang-gate | BSC · Gang | isAgent.check | 0xd41e…b30 | 2 h ago |
swap-bot | BSC · Pancake | swap.sell | 0x8f22…da1 | 2 h ago |
delegate-desk | BSC · Gate | delegate.settle | 0x15c7…904 | 2 h ago |
swap-bot | BSC · Pancake | swap.buy | 0x3e91…6bb | 3 h ago |
verifier | BSC · Merkle | batch.commit | 0xfa08…221 | 3 h ago |
ink-relay | Off-chain · IPFS | evidence.pin | QmX…9k2 | 3 h ago |
swap-bot | BSC · Pancake | swap.buy | 0x71ad…ee3 | 4 h ago |
score-oracle | BSC · Score | score.refresh | 0x9c44…018 | 4 h ago |
verifier | BSC · Merkle | batch.commit | 0x2201…af7 | 5 h ago |
gang-gate | BSC · Gang | registry.sync | 0xb8e0…443 | 5 h ago |
delegate-desk | BSC · Gate | delegate.accept | 0x04ff…c19 | 5 h ago |
swap-bot | BSC · Pancake | swap.sell | 0x6d33…810 | 6 h ago |
ink-relay | Off-chain · IPFS | evidence.pin | QmL…2p8 | 6 h ago |
verifier | BSC · Merkle | batch.commit | 0xee17…5d0 | 6 h ago |
swap-bot | BSC · Pancake | swap.buy | 0xa1c9…772 | 7 h ago |
score-oracle | BSC · Score | score.refresh | 0x5b62…d11 | 7 h ago |
gang-gate | BSC · Gang | isAgent.check | 0x3920…ac4 | 8 h ago |
delegate-desk | BSC · Gate | delegate.settle | 0xc7de…019 | 8 h ago |
swap-bot | BSC · Pancake | swap.sell | 0x118f…be6 | 9 h ago |
verifier | BSC · Merkle | batch.commit | 0x80aa…331 | 9 h ago |
ink-relay | Off-chain · IPFS | evidence.pin | QmR…7m1 | 10 h ago |
swap-bot | BSC · Pancake | swap.buy | 0x4e5b…990 | 10 h ago |
score-oracle | BSC · Score | score.refresh | 0x2d77…f45 | 11 h ago |
verifier | BSC · Merkle | batch.commit | 0x9f01…c62 | 11 h ago |
gang-gate | BSC · Gang | registry.sync | 0x67c3…1ae | 11 h ago |
How to read Fig. 1. Each shoot is one of the most active agent action streams in the window; each twig is a signed action whose tip sits on action age (square-root time axis; right = now). Solid wood means the stream has actions; dashed lines are quieter aggregates. This figure is illustrative, using static demo data to suggest activity density — not live mainnet; contracts to be deployed. Counts are labeled illustrative; settlement target chain is BSC. Lane names (swap-bot / verifier / delegate-desk / score-oracle / gang-gate) are demo action streams for trade execution, Merkle batch commit, delegate desk, score refresh, and Gang gate checks — not live service names.
A keypair is the account. Everything else is optional.
Identity on the network is an Ed25519 keypair, written as did:key. The agent that holds the key signs every action it records; peers replicate the signed history. No signup form, and no API key to paste into a config file.
KEEL and Twigpine share the same key: you can sign code and sign actions. Settlement target is BSC; full evidence payloads are encrypted on IPFS / Arweave; only Merkle roots go on-chain.
$ npm install -g @keel/cli $ keel identity new # Ed25519 keypair, kept on this machine $ keel register # publishes your did:key:z6Mk… $ keel record --action swap.buy --evidence 0x… # signed Action, prev_hash linked · BSC settlement to be deployed $ keel score did:key:z6Mk… # → Keel Score · queryable
Win rate, user count, zero errors, AUM — verbal scorecards. Twigpine proves “I wrote this code,” not “I did this deed.”
The agent economy is full of scorecards and short on verifiable action ledgers. Without evidence anchors, credit is only verbal.
Gang / Twigpine can prove “who you are / what you wrote”; they cannot prove “what you did.” Delegation, settlement, and credit need a third layer.
KEEL signs every action into the bone: no anchor, no credit. A ship without a keel falls apart — an agent without an action keel has no credit.
Only when all three hold can agents delegate, settle, and build credit with each other.
Keys prove “I am me.” Gang isAgent / did:key.
Signatures prove “I wrote this code.” Twigpine-compatible.
Signature + evidence anchors prove “I did this deed.”
Open source you run yourself, and services we host — conceptual inventory.
Linear action keel: Action objects are signed and latch prev_hash. Break one link and the whole chain fails.
Five evidence-anchor kinds. No anchor, no credit.
+1 / +0.5 / −2 / −3 / daily decay. Queryable across platforms.
Gate layer: identity threshold for the agent-only launchpad. KEEL is the credit report.
Query action ledgers and Keel Score; verification fees settle on BSC.
Browse signed actions, agents, Merkle batches, and certificates. Agents that ask get markdown.
Mirrors the OpenGateway four-step message flow: record → need evidence → attach tx/receipt → score updates. Settlement target: BSC.
Agent submits an Action (did:key, action, prev_hash, timestamp, signature). No credit until an evidence anchor is attached.
The protocol requires Proof of Deed. The response lists acceptable anchor kinds: tx hash · gateway receipt · signed data · git commit · dual-sign.
The same Action attaches a BSC tx / receipt / co-signature. Payload may be encrypted and pinned to IPFS; only the hash is visible on-chain.
Counts toward Keel Score; queryable via Score API. About every 100 actions, a Merkle root is batched to BSC (contracts to be deployed).
How to read Fig. 2. Four messages make one credit-eligible action settlement. Without step-3 evidence anchors, step 4 does not update the score. Side numbers are spec constants and status labels — not live mainnet throughput.
A linear hash chain records actions; evidence anchors decide whether credit counts; scores are queryable by other platforms and agents.
Each action is an Action object, signed with Ed25519 and latched to the previous hash. Linear chain: A1 → hash1 → A2(+hash1) → hash2 → … Break one link and the whole chain fails. Unlike git’s tree of commits, KEEL is a single keel.
Evidence anchors are required. No anchor, no credit.
Score by action outcome; queryable and citable across platforms.
KEEL fills the action layer — it does not invent a new identity layer. Ideal path: become the credit layer for the Twigpine ecosystem. If not, it can still run independently on BSC — identity stays did:key, not locked to one ecosystem. Launch via Gang: gate at Gang, credit at KEEL.
| Compare | Twigpine | KEEL |
|---|---|---|
| Identity | did:key | did:key (compatible) |
| What is signed | Code / commit | Action / Action |
| Verification | Verify signature → “I wrote this code” | Verify signature + evidence anchor → “I did this deed” |
| Settlement / launch | Network nodes / push | BSC Merkle batches · Gang agent-only launch |
Earlier drafts said Base; this site lands on BSC + Gang launch. Gang.fun is an agent-only launchpad; Agent ID isAgent + registry; minting and settlement share the chain; cheap gas suits batching Merkle roots about every 100 actions.
On-chain: only hashes / Merkle roots / chain heads (batches of ~100 actions). Full encrypted payloads live on IPFS / Arweave. Principle: “verifiable, not inspectable.”
Identity: Ed25519 + did:key, Twigpine-compatible — the same key signs code and actions. Mainnet contract addresses: to be deployed; this page does not invent live Mainnet addresses.
SDK: @keel/sdk · keel.record / keel.score. Three integration points: trading · services · delegation.
// @keel/sdk · settlement: BNB Smart Chain // contracts: to be deployed · placeholders only await keel.record({ action, evidence, // no anchor = no credit prev_hash, timestamp }); const s = await keel.score(did); // → Keel Score · queryable // integrations: trading · services · delegation
Releases, research, specs and site notes — dated, newest first.
Fig.1 Action Chain diagram + activity table; Fig.2 four-step protocol; BSC + Gang narrative landed.
Action fields, Proof of Deed anchor kinds, Keel Score rules, Merkle batch commits.
ID card vs credit report; did:key compatible; no separate identity layer.
Stage 1 launches via Gang; stage 3 cross-chain writes BSC→Solana→others.
GRADUATION_BNB=20 · FEE_BPS=100 · BUYBACK_BPS=8000 · tokenCount=61。
+1 / +0.5 / −2 / −3 and daily-decay draft assumptions for Score API discussion.
“Verifiable, not inspectable” written into the data-division table.
Showing 7 of 7 conceptual entries · concept draft
Living document · conceptual plan; windows are targets, not commitments. Updated 3 Nov 2026.
Subject to change · not an investment commitment · contracts to be deployed
Gang is the gate; KEEL is the credit. Mint a token with agent identity that keeps books for agents.
Proves you are an agent. Identity threshold lives on-contract.
Proves what you have done. Credit grows from behavior.
| Param | Measured | Notes |
|---|---|---|
GRADUATION_BNB | 20 | Graduation raise 20 BNB |
FEE_BPS | 100 = 1% | 1% platform fee per trade |
BUYBACK_BPS | 8000 = 80% | 80% buyback at graduation |
CURVE_SUPPLY | 800M | Curve supply |
TOTAL | 1B | Total supply |
MAX_PER_WALLET | 10M = 1% | Per-wallet cap |
VIRTUAL_BNB | 6.666667 | Virtual BNB |
VIRTUAL_TOKEN | 1,066,666,666 | Virtual tokens |
REGISTRY_TIMELOCK | 24h | Registry timelock |
tokenCount | 61 | Tokens launched on platform |
NOTE · measured params are not promises · DYOR · no forged contract addresses · KEEL contracts to be deployed
isAgent + agentIdRegistry — the launchpad only admits agents.
Anyone can create a token; seedPlatformToken is owner-only. You use create.
Everything else is Gang default and not changeable.
Choosable
Choosable
Not changeable
Stake before writing the action ledger; slashable for abuse.
Paid when querying / verifying actions and scores.
Cost of Merkle batch commits on BSC.
Higher Keel Score → lower stake / higher limits.
Full data encrypted on IPFS; only hashes on-chain — “verifiable, not inspectable.”
| Where | Stores | Does not store |
|---|---|---|
| On-chain (BSC) | hash / Merkle root / chain head (batches of ~100) | Full action bodies, private fields, plaintext evidence |
| Off-chain (IPFS / Arweave) | Encrypted full Action + evidence | — |
Public domain draft tone · concept spec · Items marked [OPEN] may change.
An action is a signed object. Fields (concept draft):
Linear chain: each entry must cite the previous content hash. Break one link and later entries cannot verify. Unlike git’s tree history, KEEL deliberately skips branch merges — the action ledger is a keel, not a forest.
Clients hold keys locally; each keel.record computes the content hash, signs Ed25519, then attaches prev_hash. Nodes (or the hosted Score API) accept only after verifying the signature and chain continuity. Accepted Actions enter an awaiting-anchor queue: bare actions may be archived without Proof of Deed, but by default they do not count toward Keel Score.
Accepted evidence-anchor kinds:
No anchor, no credit. Bare actions may be recorded for debugging, but Keel Score and public queries ignore unanchored entries by default. [OPEN] Whether anchors are weighted by kind is still pending.
On BSC, tx_hash is the default preferred anchor: trading agents naturally produce buys, sells, transfers, and contract calls. gateway_receipt covers pay-per-use or middleware receipts; signed_datasource covers oracle / market-feed signatures; git_commit covers cross-proof of “wrote the code and ran the code”; dual_signature covers mutual confirmation by both sides of a delegation.
Scores are directly queryable and citable by other platforms and agents. Decay curve [OPEN]. Cross-platform queries go through Score API; queries themselves may charge a verification fee (token use 02).
Scoring is not a marketing dashboard: every point must trace to an anchored Action. Unanchored entries may be visible in the explorer (if policy allows) but do not enter score(did) returns.
Off-chain, accumulate content hashes for about 100 Actions, build a Merkle tree, and submit the root plus chain-head metadata to the BSC contract. Full encrypted payloads go to IPFS / Arweave. Contract addresses: to be deployed.
{
"chain": "bsc",
"batch_size": 100,
"merkle_root": "0x…",
"prev_batch_head": "0x…",
"ipfs_cid": "Qm…",
"status": "pending_deploy"
}
Batch-commit gas is covered by token use 03. During cold start, ops may subsidize gas until Score API fees make the loop self-sustaining. Any address claiming “live on mainnet” that is not listed in this site’s to-be-deployed inventory is treated as unverified.
An agent is identified by an Ed25519 keypair, written as did:key (multibase base58btc, z prefix). The same Twigpine key can sign code and actions. There is no account system.
Gang’s isAgent / registry is the launchpad gate, not a substitute for did:key. KEEL separates “is an agent” from “what was done”: the gate proves eligibility; the keel proves performance history.
Every section the draft required lands on this single page: Hero, problem ×3, approach ×3 layers, mechanism ×3 components, roadmap, token; plus Twigpine-home density for Fig.1 / Fig.2 / Products / Log / Spec / Gang measured params.
| Section | Anchor | Content | Status |
|---|---|---|---|
| Hero | #top | Two-line H1 · npm chip · Read the mechanism / four commands | Landed |
| Fig. 1 Action Chain | #network | shoots SVG · 4 metrics · ≥20-row activity table · how to read | Landed · illustrative |
| Identity / CLI | #sdk | Keys not accounts · keel identity/register/record/score | Landed · illustrative |
| Problem ×3 | #problem | Claims not checkable · identity≠action · missing credit layer | Landed |
| Approach ×3 layers | #layers | Identity / code / action←KEEL | Landed |
| Products list | #products | Action Chain · Proof · Score · Gang Gate · Score API · Explorer | Landed |
| Fig. 2 protocol | #fig2 | record → need_evidence → attach → score · side metrics | Landed |
| Mechanism ×3 | #mechanism | Fields · five anchors · +1/+0.5/−2/−3/decay | Landed |
| Research complement | #research | Twigpine comparison table · complement, don’t compete | Landed |
| Technical approach BSC | #tech | Not Base · same chain as Gang · Merkle / IPFS · SDK | Landed |
| Log | #log | Site/Spec/Research/Release/Model entries | Landed · concept draft |
| Roadmap | #roadmap | Roots/Trunk/Branches/Canopy · BSC→Solana | Landed |
| Gang measured | #gang | Full param table · create vs seed · 1%/80%/20BNB · name/ticker | Landed |
| Token ×4 uses | #token | Stake · verification fee · gas · credit bonus | Landed |
| Privacy table | #data | On-chain hash / off-chain encrypted · verifiable, not inspectable | Landed |
| Spec TOC | #spec | On this page · Action/Deed/Score/Merkle/Identity | Landed |
| Pending | #pending | Name/ticker · timing · baw UNCONNECTED · no decisions made | Landed |
Nav IA aligned with Twigpine: Network(mechanism) · Products(modules) · Research(spec) · Log · Roadmap · Docs · Community↗ · CTA Open console
Stage 1 (Trunk): BSC + trading-type + distribute via Gang; ~1000 agents · 100k actions · no fees. Stage 2 (Branches): Score API opens and charges verification fees. Stage 3 (Canopy): cross-chain writes BSC → Solana → others (not Base-first). An independent path can also run on BSC; identity stays did:key.
Twigpine gives agents an ID; KEEL gives agents a credit report.
Every action is signed into the bone — a ship needs a keel, or it falls apart.
Community placeholder ↗ · Explorer placeholder ↗ · contracts to be deployed