Skip to content

Action attestation for agents.Every action is key-signed and strung into a keel.

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

npm install -g @keel/cli
Read the mechanism Get started in four commands
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 verifier 7 actions · 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
settlement chain · same chain as Gang
illustrative / contracts to be deployed
Signed actions shown in Figure 1, newest first · Agent / Action stream · Chain/Venue · Recorded
Agent / streamChain / VenueActionEvidenceRecorded
swap-botBSC · Pancakeswap.buy0x7a3f…c2112 min ago
swap-botBSC · Pancakeswap.sell0x91b2…e0418 min ago
verifierBSC · Merklebatch.commit0x44d1…9aa26 min ago
delegate-deskBSC · Gatedelegate.accept0x2cc8…77141 min ago
swap-botBSC · Pancakeswap.buy0xab10…55f1 h ago
score-oracleBSC · Scorescore.refresh0x0ef3…c881 h ago
verifierBSC · Merklebatch.commit0x66a9…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
verifierBSC · Merklebatch.commit0xfa08…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
verifierBSC · Merklebatch.commit0x2201…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
verifierBSC · Merklebatch.commit0xee17…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
verifierBSC · Merklebatch.commit0x80aa…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
verifierBSC · Merklebatch.commit0x9f01…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 — 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.

Agents need keys, not accounts.

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.

Terminal
$ 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
Get started in four commands · package / CLI names are illustrative · contracts to be deployed · not a published commitment
Vision / Problem

Agents make claims, without verifiable proof.

Win rate, user count, zero errors, AUM — verbal scorecards. Twigpine proves “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 / Twigpine can prove “who you are / what you wrote”; they cannot prove “what you did.” Delegation, settlement, and credit need a third layer.

03 · KEEL

Missing credit 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.

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.” Twigpine-compatible.

✓ Exists
Layer 3 · KEEL

Action

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

← KEEL
Fig. 2 · Protocol

Record an action and settle evidence

Mirrors the OpenGateway four-step message flow: record → need evidence → attach tx/receipt → score updates. Settlement target: BSC.

Fig. 2 Record → Evidence → Anchor → Score · BSC
Illustrative As of
→ 1
POST /v1/actions · keel.record

Agent submits an Action (did:key, action, prev_hash, timestamp, signature). No credit until an evidence anchor is attached.

← 2
402 / need_evidence

The protocol requires Proof of Deed. The response lists acceptable anchor kinds: tx hash · gateway receipt · signed data · git commit · dual-sign.

→ 3
POST /v1/actions · evidence attached

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.

← 4
200 OK · score updates

Counts toward Keel Score; queryable via Score API. About every 100 actions, a Merkle root is batched to BSC (contracts to be deployed).

100
actions / Merkle batch · BSC
5
evidence anchor kinds
0
credit if no anchor
TBD
mainnet contracts · to be deployed · DYOR

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.

Mechanism · three components

Action Chain · Proof of Deed · Keel Score

A linear hash chain records actions; evidence anchors decide whether credit counts; scores are queryable by other platforms and agents.

ComponentsEd25519 · did:key · BSC

① Action Chain

Linear keel

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.

agent did:keyprev_hashaction evidencetimestampsignature Ed25519
A1 → hash1 → A2vs git tree

② Proof of Deed

Evidence anchors

Evidence anchors are required. No anchor, no credit.

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

③ Keel Score

Queryable score

Score by action outcome; queryable and citable across platforms.

+1+0.5 −2−3 daily decay
cross-platformqueryable
Research

With Twigpine: complement, don’t compete

Twigpine = ID + signature · KEEL = credit report

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.

Read the KEEL-01 spec excerpt · Twigpine ↗

Research · method note
concept draft · BSC + Gang
→
CompareTwigpineKEEL
Identitydid:keydid:key (compatible)
What is signedCode / commitAction / Action
VerificationVerify signature → “I wrote this code”Verify signature + evidence anchor → “I did this deed”
Settlement / launchNetwork nodes / pushBSC Merkle batches · Gang agent-only launch
Technical approach · BSC

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

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 · BSC
// @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
Illustrative API · not a published package commitment
Log

Log. Concept draft, by date and type.

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

03 Nov 2026

SiteSite: KEEL concept site redesign · Twigpine density alignment

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, Merkle batch commits.

→
01 Nov 2026

ResearchResearch: complementary layer with Twigpine

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 7 of 7 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
  • Gang measured-parameter table
  • BSC settlement narrative locked
  • CLI / SDK sketches
  • Privacy boundary table
  • This concept site
02 · Trunk

Trunk

0–3 mo · BSC trading-type
2 building · 2 planned
  • BSC trading-type ledger running
  • Distribute / launch via Gang
  • ~1000 agents · 100k actions
  • No fees this stage (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 · contracts 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

NOTE · measured params are not promises · DYOR · no forged contract addresses · KEEL contracts 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

Batch-commit gas

Cost of Merkle batch commits on BSC.

~100 / batch
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) hash / Merkle root / chain head (batches of ~100) Full action bodies, private fields, plaintext evidence
Off-chain (IPFS / Arweave) Encrypted full Action + evidence —
“Verifiable, not inspectable”
Docs · Spec excerpt

KEEL-01 excerpt. Action · Score · Merkle.

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

1. Action object

An action is a signed object. Fields (concept draft):

agent: did:key prev_hash: bytes32 action: string | object evidence: Evidence[] timestamp: unix signature: Ed25519

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.

2. Proof of Deed

Accepted evidence-anchor kinds:

tx_hash (BSC) gateway_receipt signed_datasource git_commit dual_signature

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.

3. Scoring rules

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

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.

4. Merkle batch on BSC

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.

batch shape · illustrative
{
  "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.

5. Identity

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.

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 Twigpine-home density for Fig.1 / Fig.2 / Products / Log / Spec / Gang measured params.

SectionAnchorContentStatus
Hero#topTwo-line H1 · npm chip · Read the mechanism / four commandsLanded
Fig. 1 Action Chain#networkshoots SVG · 4 metrics · ≥20-row activity table · how to readLanded · illustrative
Identity / CLI#sdkKeys not accounts · keel identity/register/record/scoreLanded · illustrative
Problem ×3#problemClaims not checkable · identity≠action · missing credit layerLanded
Approach ×3 layers#layersIdentity / code / action←KEELLanded
Products list#productsAction 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 complement#researchTwigpine comparison table · complement, don’t competeLanded
Technical approach BSC#techNot Base · same chain as Gang · Merkle / IPFS · SDKLanded
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 · gas · credit bonusLanded
Privacy table#dataOn-chain hash / off-chain encrypted · verifiable, not inspectableLanded
Spec TOC#specOn this page · Action/Deed/Score/Merkle/IdentityLanded
Pending#pendingName/ticker · timing · baw UNCONNECTED · no decisions madeLanded

Nav IA aligned with Twigpine: 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

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