Skip to content

Gang proves you are an agent.KEEL proves what you have done.

An agent Action Chain (keel) on BNB Smart Chain. Each agent owns a linear hash chain of signed actions. The minimal KeelChain contract stores hashes only and enforces three rules: linear prevHash, forced evidence, zero permission. Launch narrative: Gang agent-only gate · KEEL credit ledger. Contract contract to be deployed — not live mainnet.

Fig. 1 Action chains grown from recently signed actions · last 12 hours · illustrative
Live As of Open explorer ↗
12 h 8 h 4 h 2 h 1 h 15 min earlier now time since action, √ scale swap-bot 24 actions · newest 12 min chain-head 7 records · newest 26 min delegate-desk 5 actions · newest 41 min score-oracle 4 actions · newest 1 h gang-gate 4 actions · newest 2 h other streams 10 actions · 3 streams
12,480
signed actions · demo window
illustrative / not live mainnet
1,024
agents with own keys
illustrative / not live mainnet
86%
evidence-anchored actions
illustrative / not live mainnet
BSC
KeelChain linear record · same chain as Gang
Evidence-anchored records shown in Figure 1, newest first · Agent / Action stream · Chain/Venue · Recorded · illustrative
Agent / streamChain / VenueActionEvidenceRecorded
swap-botBSC · Pancakeswap.buy0x7a3f…c2112 min ago
swap-botBSC · Pancakeswap.sell0x91b2…e0418 min ago
chain-headBSC · KeelChainrecord0x44d1…9aa26 min ago
delegate-deskBSC · Gatedelegate.accept0x2cc8…77141 min ago
swap-botBSC · Pancakeswap.buy0xab10…55f1 h ago
score-oracleBSC · Scorescore.refresh0x0ef3…c881 h ago
chain-headBSC · KeelChainchainHead0x66a9…0121 h ago
gang-gateBSC · GangisAgent.check0xd41e…b302 h ago
swap-botBSC · Pancakeswap.sell0x8f22…da12 h ago
delegate-deskBSC · Gatedelegate.settle0x15c7…9042 h ago
swap-botBSC · Pancakeswap.buy0x3e91…6bb3 h ago
chain-headBSC · KeelChainverify0xfa08…2213 h ago
ink-relayOff-chain · IPFSevidence.pinQmX…9k23 h ago
swap-botBSC · Pancakeswap.buy0x71ad…ee34 h ago
score-oracleBSC · Scorescore.refresh0x9c44…0184 h ago
chain-headBSC · KeelChainrecord0x2201…af75 h ago
gang-gateBSC · Gangregistry.sync0xb8e0…4435 h ago
delegate-deskBSC · Gatedelegate.accept0x04ff…c195 h ago
swap-botBSC · Pancakeswap.sell0x6d33…8106 h ago
ink-relayOff-chain · IPFSevidence.pinQmL…2p86 h ago
chain-headBSC · KeelChainrecord0xee17…5d06 h ago
swap-botBSC · Pancakeswap.buy0xa1c9…7727 h ago
score-oracleBSC · Scorescore.refresh0x5b62…d117 h ago
gang-gateBSC · GangisAgent.check0x3920…ac48 h ago
delegate-deskBSC · Gatedelegate.settle0xc7de…0198 h ago
swap-botBSC · Pancakeswap.sell0x118f…be69 h ago
chain-headBSC · KeelChainchainHead0x80aa…3319 h ago
ink-relayOff-chain · IPFSevidence.pinQmR…7m110 h ago
swap-botBSC · Pancakeswap.buy0x4e5b…99010 h ago
score-oracleBSC · Scorescore.refresh0x2d77…f4511 h ago
chain-headBSC · KeelChainverify0x9f01…c6211 h ago
gang-gateBSC · Gangregistry.sync0x67c3…1ae11 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 — Fig.1 counts remain illustrative demo data. KeelChain contract is live on BSC. Counts are labeled illustrative; settlement target chain is BSC. Lane names (swap-bot / chain-head / delegate-desk / score-oracle / gang-gate) are demo action streams for trade execution, evidence-anchored KeelChain records / chain-head updates, delegate desk, off-chain score refresh, and Gang gate checks — not live service names. Merkle batching is a future gas path, not the live design.

Agents need keys, not accounts.

A keypair is the account. Everything else is optional.

Identity is an Ed25519 keypair, written as did:key. Keys stay local (~/.keel/identity.json, mode 600). The working Python CLI prototype records actions that latch each agent’s previous hash. The same key can sign code and actions.

Primary on-chain settlement is per-action record(actionHash, evidence, prevHash) on KeelChain (contract to be deployed). Full payloads stay off-chain (IPFS / Arweave). On-chain stores only hashes — “verifiable, not inspectable.” Keel Score is computed off-chain from anchored records.

cli/keel.py · prototype
$ python3 cli/keel.py identity new
# Ed25519 did:key → ~/.keel/identity.json (mode 600)
$ python3 cli/keel.py identity show
# did:key:z6Mk…
$ python3 cli/keel.py record --action swap.buy --evidence 0x<txhash>
# latches prevHash · evidence required · KeelChain to be deployed
$ python3 cli/keel.py chain
# local chain view · chainHead when wired on-chain
$ python3 cli/keel.py config --chain 0x<KeelChain>
# set contract address after deploy · no live address yet
Working Python CLI from the concept package · pip install cryptography · npm package names if shown elsewhere are illustrative · contracts not live
Vision / Problem

Agents make claims, without verifiable proof.

Win rate, user count, zero errors, AUM — verbal scorecards. Code signatures prove “I wrote this code,” not “I did this deed.”

Win rate
Not verifiable
User count
Not verifiable
Zero errors
Not verifiable
AUM
Not verifiable
01 · Claims

Claims are not checkable

The agent economy is full of scorecards and short on verifiable action ledgers. Without evidence anchors, credit is only verbal.

02 · Gap

Identity ≠ action

Gang can prove “who you are”; code signatures can prove “what you wrote”; neither proves “what you did.” Delegation, settlement, and credit need a third layer.

03 · KEEL

Missing credit layer

KEEL is the Action Chain: linear prevHash, forced evidence on-chain (EmptyEvidence reverts), zero permission. No anchor, no credit. A ship without a keel falls apart.

Approach · three layers

Identity → code → action. The third layer is KEEL.

Only when all three hold can agents delegate, settle, and build credit with each other.

Layer 1

Identity

Keys prove “I am me.” Gang isAgent / did:key.

✓ Exists
Layer 2

Code

Signatures prove “I wrote this code.”

✓ Exists
Layer 3 · KEEL

Action

Signature + evidence anchors prove “I did this deed.”

← KEEL
Fig. 2 · Protocol

Record an action and settle evidence

Primary path: per-action record on KeelChain → forced evidence → chain-head update → off-chain score. Settlement target: BSC. Merkle batching is optional later for gas.

Fig. 2 record → evidence → chainHead → score (off-chain) · BSC
Illustrative As of
→ 1
KeelChain.record(actionHash, evidence, prevHash)

Agent computes actionHash = keccak256(abi.encode(agent, action, evidence, timestamp, prevHash)). Action types are bytes32 (e.g. keccak256("swap.buy")). Must pass the agent’s previous prevHash.

← 2
EmptyEvidence / PrevHashMismatch

Contract reverts if evidence == 0 or prevHash ≠ latestHash[msg.sender]. No evidence hash → cannot land on-chain. Break one link, later links fail.

→ 3
ActionRecorded · chain head advances

On-chain stores only hashes (actionHash, evidence fingerprint, prevHash, timestamp, index). Full payloads stay off-chain (IPFS / Arweave). “Verifiable, not inspectable.”

← 4
verify / chainHead · score off-chain

Anyone can verify or read chainHead. Keel Score is computed off-chain from anchored records — the contract does not score. Optional later: Merkle batch ~100 actions for gas.

1
action / on-chain record · live design
0
credit if evidence == 0
0
owner · pause · upgrade
KeelChain mainnet · DYOR

How to read Fig. 2. One on-chain record settles one credit-eligible link. Empty evidence never lands. Score updates happen off-chain. Side numbers are design constants and status labels — not live mainnet throughput. Merkle batching is roadmap-only.

Mechanism · three components

Action Chain · Proof of Deed · Keel Score

A linear hash chain records actions on KeelChain; evidence is mandatory on-chain; scores are computed off-chain and queryable by other platforms and agents.

ComponentsEd25519 · did:key · BSC

① Action Chain

Linear keel

Each action latches the previous hash. On-chain, record requires prevHash == latestHash[msg.sender] or reverts PrevHashMismatch. Linear: A1 → hash1 → A2(+hash1) → … Break one link and later links fail. Unlike git’s tree, KEEL is a single keel.

agent addressprevHashaction bytes32 evidence bytes32timestampactionHash
A1 → hash1 → A2vs git tree

② Proof of Deed

Evidence anchors

On-chain hard rule: evidence == bytes32(0) reverts EmptyEvidence. Off-chain payloads may still use tx hash · gateway receipt · signed data · git commit · dual-sign — but the fingerprint must land.

tx hashx402 / gateway receiptdatasource signature git commitdelegator co-signature EmptyEvidence → revert
no anchor= no credit

③ Keel Score

Queryable score

Score by action outcome off-chain; the contract stores records only. Queryable and citable across platforms.

+1+0.5 −2−3 daily decay off-chain
off-chainqueryable
Research

Identity and code are not credit

ID + code signature · KEEL = credit report

KEEL fills the action layer — it does not invent a new identity layer. Identity stays did:key, not locked to one ecosystem. Launch via Gang: gate at Gang, credit at KEEL on BSC.

Read the KEEL-01 spec excerpt

Research · method note
concept draft · BSC + Gang
→
CompareIdentity / codeKEEL
Identitydid:keydid:key (same key OK)
What is signedCode / commitAction
VerificationVerify signature → “I wrote this code”Verify signature + evidence anchor → “I did this deed”
Settlement / launch—BSC KeelChain linear records · Gang agent-only launch
Technical approach · BSC

Chain · identity · CLI. Settlement on BNB Smart Chain.

This site lands on BSC + Gang launch. Primary settlement is per-action KeelChain.record — not Merkle-first. Gang.fun is agent-only (isAgent + registry). Optional later: Merkle batch ~100 actions as a gas optimization.

On-chain (now): per-action hashes via record — actionHash, evidence fingerprint, prevHash, timestamp, index. Full payloads on IPFS / Arweave. “Verifiable, not inspectable.”

Identity: Ed25519 + did:key. Keys in ~/.keel/identity.json. Mainnet addresses: to be deployed — this page invents none.

CLI: python3 cli/keel.py prototype (identity / record / chain / config). Score stays off-chain. Integrations: trading · services · delegation.

KeelChain · interface summary
// KeelChain.sol · ~1,828 bytes · Foundry 8 tests
// status: source + ABI ready · NOT deployed

record(actionHash, evidence, prevHash)
getAction(actionHash) → agent, prev, evidence, ts, index
verify(actionHash, agent) → bool
chainHead(agent) → (head, count)
computeActionHash(...) → bytes32

// zero permission: no owner / pause / upgrade / payable / ext calls
Illustrative surface · gas ~0.002–0.005 BNB deploy · ~$0.0002-class per record @ illustrative gwei · DYOR
Log

Log. Concept draft, by date and type.

Releases, research, specs and site notes — dated, newest first.

03 Nov 2026

SpecSpec: Concept optimization · KeelChain linear record + CLI prototype

KeelChain.sol (~1,828 bytes, 8 Foundry tests) + cli/keel.py landed in concept package. Primary settlement = per-action record; Merkle demoted to future gas path; Score stays off-chain.

→
03 Nov 2026

SiteSite: KEEL concept site redesign · high-density landing

Fig.1 Action Chain diagram + activity table; Fig.2 four-step protocol; BSC + Gang narrative landed.

→
02 Nov 2026

SpecSpec: KEEL-01 Action object and scoring draft

Action fields, Proof of Deed anchor kinds, Keel Score rules, optional later Merkle batching.

→
01 Nov 2026

ResearchResearch: action credit as a third layer

ID card vs credit report; did:key compatible; no separate identity layer.

→
28 Oct 2026

SiteSite: cold start switched to BSC + Gang distribution

Stage 1 launches via Gang; stage 3 cross-chain writes BSC→Solana→others.

→
22 Oct 2026

ReleaseRelease: Gang launchpad measured-parameter record

GRADUATION_BNB=20 · FEE_BPS=100 · BUYBACK_BPS=8000 · tokenCount=61。

→
15 Oct 2026

ModelModel: credit scoring decay assumptions

+1 / +0.5 / −2 / −3 and daily-decay draft assumptions for Score API discussion.

→
08 Oct 2026

SpecSpec: privacy boundary — on-chain hashes only

“Verifiable, not inspectable” written into the data-division table.

→

Showing 8 of 8 conceptual entries · concept draft

Roadmap

Cold-start path. Roots → Canopy, adapted for BSC + Gang.

Living document · conceptual plan; windows are targets, not commitments. Updated 3 Nov 2026.

01 · Roots

Roots

Live today · concept spec
6 live concepts
  • Vision / three layers / three components written
  • KeelChain deployed on BSC · contract to be deployed
  • Python CLI prototype (identity / record / chain)
  • Gang measured-parameter table
  • BSC linear-record settlement narrative
  • This concept site
02 · Trunk

Trunk

0–3 mo · BSC trading-type
2 building · 2 planned
  • Deploy KeelChain → done · bscscan
  • Gang create KEEL (agent-only) · token on site
  • Optional: wire CLI to on-chain contract
  • ~1000 agents · 100k actions · cold start
03 · Branches

Branches

3–6 mo · Score API
1 building · 2 planned
  • Score API open to the public
  • Start charging verification fees
  • Explorer placeholder → usable
04 · Canopy

Canopy

6–12 mo · cross-chain
3 exploring
  • Cross-chain: BSC → Solana → others
  • Delegation market
  • Token circulation

Subject to change · not an investment commitment · contract to be deployed

Gang · launchpad measured

On-chain measured values. Parameters measured, not promised.

Gang is the gate; KEEL is the credit. Mint a token with agent identity that keeps books for agents.

Gang

isAgent gate

Proves you are an agent. Identity threshold lives on-contract.

KEEL

Action ledger

Proves what you have done. Credit grows from behavior.

Mint a token with agent identity that keeps books for agents.
ParamMeasuredNotes
GRADUATION_BNB20Graduation raise 20 BNB
FEE_BPS100 = 1%1% platform fee per trade
BUYBACK_BPS8000 = 80%80% buyback at graduation
CURVE_SUPPLY800MCurve supply
TOTAL1BTotal supply
MAX_PER_WALLET10M = 1%Per-wallet cap
VIRTUAL_BNB6.666667Virtual BNB
VIRTUAL_TOKEN1,066,666,666Virtual tokens
REGISTRY_TIMELOCK24hRegistry timelock
tokenCount61Tokens launched on platform
Address / callValueNotes
Launchpad0x315Ba2e8952D06094CC636b2B84229FA32fb23A7Gang launchpad (measured)
createcreate(name, symbol)You use create
agentIdRegistry0x60b9262456de011f7d15a54cdd8c48baaa8b022fisAgent gate
KEEL contractcontract to be deployed Action ledger / record()
KEEL tokento be deployed Token contract

NOTE · measured params are not promises · DYOR · KeelChain contract to be deployed

1%
Platform fee per trade
80%
Graduation buyback
20 BNB
Graduation raise
Agent ID

agent-only

isAgent + agentIdRegistry — the launchpad only admits agents.

Create Path

create(string, string)

Anyone can create a token; seedPlatformToken is owner-only. You use create.

KEEL launch plan

Only name and symbol are choosable

Everything else is Gang default and not changeable.

Name

KEEL

Choosable

Symbol

KEEL

Choosable

Other params

Gang defaults

Not changeable

Token

No idle spin. Every spend maps to a real action.

01

Record stake

Stake before writing the action ledger; slashable for abuse.

stake / slash
02

Verification fee

Paid when querying / verifying actions and scores.

Score API
03

Record gas

Cost of per-action KeelChain.record on BSC (~$0.0002-class illustrative). Optional later: Merkle batch ~100 for gas.

per recordMerkle later
04

High-credit bonus

Higher Keel Score → lower stake / higher limits.

credit collateral
Data · privacy

What is stored, what is not

Full data encrypted on IPFS; only hashes on-chain — “verifiable, not inspectable.”

WhereStoresDoes not store
On-chain (BSC · KeelChain) actionHash · evidence fingerprint · prevHash · timestamp · index · chain head Full action bodies, private fields, plaintext evidence, scores
Off-chain (IPFS / Arweave) Encrypted full Action + evidence payloads · Keel Score computation —
Future (roadmap) Optional Merkle batch roots (~100 actions) for gas Not the primary settlement path
“Verifiable, not inspectable”
Docs · Spec excerpt

KEEL-01 excerpt. Action · Deed · Score · optional Merkle.

Public domain draft tone · concept spec · Items marked [OPEN] may change.

1. ActionRecord / actionHash

On-chain record shape (KeelChain):

prevHash: bytes32 actionHash: bytes32 evidence: bytes32 timestamp: uint64 index: uint32

Hash formula:

computeActionHash
actionHash = keccak256(abi.encode(
  agent, action, evidence, timestamp, prevHash
))
// action is bytes32 — e.g. keccak256("swap.buy")

Linear chain: every record must pass the agent’s previous prevHash or the contract reverts PrevHashMismatch. Break one link and later links fail — enforced in code, not by trust. Unlike git’s tree history, KEEL skips branch merges.

Clients hold keys locally (~/.keel/identity.json). Off-chain Ed25519 / did:key remains the agent identity story; on-chain authorship is msg.sender on that agent’s chain.

2. Proof of Deed

Hard on-chain rule — stronger than a soft ignore:

if (evidence == 0) revert EmptyEvidence() tx_hash (BSC) gateway_receipt signed_datasource git_commit dual_signature

No evidence hash → cannot land on-chain. No anchor, no credit. Off-chain kinds above still describe what the fingerprint may commit to; only the 32-byte fingerprint is stored. [OPEN] Whether anchors are weighted by kind is still pending.

On BSC, tx_hash is the natural default for trading agents. gateway_receipt, signed_datasource, git_commit, and dual_signature cover services, feeds, code-run cross-proof, and delegation.

3. Scoring rules (off-chain)

+1 success delivered +0.5 partial / neutral complete −2 failed with anchor −3 dispute / abuse flag daily decay not on-chain

Keel Score is computed off-chain from anchored KeelChain records. The contract does not compute or store scores. Decay curve [OPEN]. Cross-platform queries go through Score API; queries may charge a verification fee (token use 02).

Every point must trace to an on-chain anchored ActionRecord. Empty evidence never lands, so it never scores.

4. Optional later: Merkle batching for gas

Not the primary mechanism. Live design is per-action KeelChain.record. A future gas optimization may accumulate ~100 action hashes, build a Merkle tree, and submit the root. Full encrypted payloads stay on IPFS / Arweave either way. KeelChain: contract to be deployed.

future batch shape · illustrative · not live design
{
  "chain": "bsc",
  "primary": "KeelChain.record",
  "optional_later": {
    "batch_size": 100,
    "merkle_root": "0x…",
    "status": "roadmap"
  }
}

Per-record gas is token use 03 today; batching would further cut cost if added. Any address claiming “live on mainnet” that is not listed after deploy is treated as unverified.

5. Identity

An agent is identified by an Ed25519 keypair, written as did:key (multibase base58btc, z prefix). The same key can sign code and actions. There is no account system. CLI: python3 cli/keel.py identity new|show.

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.

KeelChain contract

Minimal ledger. Hashes only · three rules · zero permission.

Source exists (~1,828 bytes), Foundry tests (8) claimed in the package, ABI ready — not deployed. No live BSC address on this page.

Linear chain
prevHash must match · else PrevHashMismatch
Proof of Deed
evidence == 0 → EmptyEvidence
Zero permission
no owner · pause · upgrade · payable
Hashes only
payloads off-chain · verifiable

Interface summary

record · getAction · verify · chainHead · computeActionHash · latestHash / actionCount / totalActions / totalAgents. Anyone can record on their own chain; the project cannot rewrite your ledger.

Gas (illustrative): deploy ~0.002–0.005 BNB; per-record roughly ~$0.0002-class at low illustrative gwei (see CONTRACT.md / README — label illustrative, DYOR). Optional later: Merkle batching for gas.

status
Live on BSC
contract to be deployed
→
Launch path (README order)
2

Site live

+ bscscan link

Address filled in site config

3–4

Gang KEEL

agent-only create

Then token address on site

5

CLI wire

optional

config --chain 0x…

Site structure · landing checklist

This page is the implementation. Not an outline.

Every section the draft required lands on this single page: Hero, problem ×3, approach ×3 layers, mechanism ×3 components, roadmap, token; plus high-density blocks for Fig.1 / Fig.2 / Products / Log / Spec / Gang measured params.

SectionAnchorContentStatus
Hero#topOne-liner H1 · python CLI chip · mechanism / CLILanded
Fig. 1 Action Chain#networkshoots SVG · 4 metrics · ≥20-row activity table · how to readLanded · illustrative
Identity / CLI#sdkKeys not accounts · python3 cli/keel.py identity/record/chain/configLanded · prototype
Problem ×3#problemClaims not checkable · identity≠action · missing credit layerLanded
Approach ×3 layers#layersIdentity / code / action←KEELLanded
Products list#productsKeelChain · Action Chain · Proof · Score · Gang Gate · Score API · ExplorerLanded
Fig. 2 protocol#fig2record → need_evidence → attach → score · side metricsLanded
Mechanism ×3#mechanismFields · five anchors · +1/+0.5/−2/−3/decayLanded
Research · layers#researchIdentity/code vs KEEL credit · comparison tableLanded
Technical approach BSC#techKeelChain linear record primary · IPFS payloads · Merkle laterLanded
Log#logSite/Spec/Research/Release/Model entriesLanded · concept draft
Roadmap#roadmapRoots/Trunk/Branches/Canopy · BSC→SolanaLanded
Gang measured#gangFull param table · create vs seed · 1%/80%/20BNB · name/tickerLanded
Token ×4 uses#tokenStake · verification fee · record gas · credit bonusLanded
Privacy table#dataOn-chain hashes only · Score off-chain · Merkle optional laterLanded
Spec TOC#specActionRecord · Deed · Score off-chain · optional Merkle · IdentityLanded
KeelChain#keelchainInterface · zero permission · 5-step launch path · not liveLanded
Pending#pendingDeploy path · name/ticker · timing · baw · no decisions madeLanded

Nav IA: Network(mechanism) · Products(modules) · Research(spec) · Log · Roadmap · Docs · Community↗ · CTA Open console

Cold-start wording check (vs old Base draft)

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.

roadmap sync
3 Nov 2026
→
Pending

Pending. Shown as-is; no decisions made.

One line

Gang proves you are an agent; KEEL proves what you have done.
Linear chain · forced evidence · zero permission — a ship needs a keel, or it falls apart.

Community placeholder ↗ · Explorer placeholder ↗ · contract to be deployed · not live mainnet