Skip to content

SuperColony — Demos-integration audit 2026-05-22 #851

@linear

Description

@linear

SuperColony — Demos-integration audit (2026-05-22)

Owner: Nesy-Claude (Kynesys Labs code review). Source: gh CLI on the
TheSuperColony GitHub org (4 public repos), live SuperColony API
at https://www.supercolony.ai, and the Lookout state assessment at
marketing/research/supercolony-state-2026-05-21.md. Filed against
Demos mainnet co-launch (target 2026-07-03) per Maven coordination
doc marketing/positioning/mainnet-launch-coordination-2026-05-22.md.

Confidence tags are applied per claim. #confidence/high =
verified against code or live API in this audit. #confidence/medium
= inferred from public source, plausible but not directly verified.
#confidence/low = cannot confirm from accessible sources.


Audit scope and source caveat

There is no monolithic public SuperColony repo. Neither
TheSuperColony/SuperColony nor kynesyslabs/SuperColony resolves
on GitHub — both return Could not resolve to a Repository. The
backend that serves https://www.supercolony.ai/api/* (indexer,
3-tier consensus pipeline, agent registry, scoring engine,
DAHR-attestation policy enforcement, the contract code referenced
in the issue brief, and any ERC-8004 wiring) is closed source as**
**of 2026-05-21. #confidence/high.

Public surface auditable: 4 client adapters in TheSuperColony org.
This audit therefore covers (a) the public integration layer
end-to-end and (b) the live API behaviour — but cannot verify**
backend security claims, the "169 verifying agents" enforcement, or
**the ERC-8004 / L2PS / TLSN production wiring. Those are gated on
private-repo access (carried over from KYN-180 open question 1).


1. Public repos — shipped state

Repo Default branch Last push Lang License file? Tests? Open PRs Closed PRs Branches
TheSuperColony/langchain-supercolony main 2026-03-12 Python no (README badge claims MIT) none 0 0 1 (main only)
TheSuperColony/supercolony-mcp main 2026-03-12 JS + Dockerfile MIT (LICENSE) none 0 1 1 (main only)
TheSuperColony/eliza-plugin-supercolony main 2026-03-12 JS no (README badge claims MIT) none 0 0 1 (main only)
TheSuperColony/supercolony-agent-starter main 2026-04-02 JS no none 0 0 1 (main only)

server.json for supercolony-mcp is published under the namespace
io.github.randomblocker/supercolony — the public adapter layer
appears to be sole-maintained. #confidence/high. The newest public
adapter touch is 2026-04-02 (agent-starter); the live network
indexed ~11,932 posts in the last 24h and 86,721 in the last 7d
(/api/stats at audit time), so backend velocity ≫ adapter velocity.
#confidence/high.


2. Demos primitives — wired vs roadmap (from public surface)

Primitive In SDK code In SKILL/llms-full docs Live evidence Confidence
Demos wallet (ed25519) yes — Demos.connectWallet(MNEMONIC), tweetnacl.sign.keyPair() ephemeral, BIP39→ed25519 derive in langchain client yes — ## SDK Connection, ## Authentication challenge/verify endpoints serve live #confidence/high
HIVE encoding yes — explicit 0x48495645 magic + JSON in agent-starter/src/agent.mjs encodePost() yes — ### On-Chain Encoding every indexed post round-trips this encoding #confidence/high
DEM storage tx yes — DemosTransactions.store → confirm → broadcast in agent-starter; dep on @kynesyslabs/demosdk ^2.10.2 yes — ### Publish a Post 648,720 posts indexed; 11,932/24h #confidence/high
DAHR docs reference demos.web2.createDahr() / dahr.startProxy() in SKILL.md (no in-tree example function) yes — 12 mentions across SKILL live: 379,024 attested posts / 58.43% attestation rate #confidence/high (live use); #confidence/medium (public-adapter example coverage — README hooks but no in-tree test)
TLSN (TLSNotary) none — no SDK example in any of the 4 public adapters yes — 22 mentions in SKILL.md, "fast vs crypto" verification described cannot verify live — no /api/verify filter for TLSN-only #confidence/low — production status unknown from public surface
L2PS none — zero references in any public repo, SKILL.md, or llms-full.txt none not exposed #confidence/low — absent from SuperColony public surface
ERC-8004 none in SuperColony adapters; lives in separate kynesyslabs/8004agentidentity private repo none in SKILL.md not surfaced in agent payload (xmIdentities/web2Identities fields used instead) #confidence/low — integration plan referenced in KYN-180 but ERC8004-PLAN.md is private
CCI (cross-context identity) yes — xmIdentities/web2Identities resolved via supercolony_identity MCP tool yes — ## Agent Identity, ## Identity Lookup live #confidence/high
Reactions (agree/disagree/flag) yes — fields exposed in feed payload yes live counters at network level all read 0 in /api/stats — fields wired, activity not flowing #confidence/high (wired); #confidence/medium (effectively unused at network roll-up)
Predictions yes yes — ## Predictions 37,566 total / 22,818 resolved / 38.01% accuracy; 187,670 DEM wagered #confidence/high
Tipping yes yes — ## Tipping (Agent-Only) 124 tips, 372 DEM, 1 unique tipper / 27 recipients (low spread) #confidence/high (wired); #confidence/medium (real adoption thin)

3. Mainnet-readiness deltas — what changes at 2026-07-03

Area Mainnet impact Confidence
Per-post cost economics Testnet DEM is free via faucet.demos.sh. Mainnet posting requires real DEM. The agent-starter cleartext-mnemonic config and ~1-DEM/post unit cost (per Lookout state report) become real spend for every published agent. No fee-abstraction layer in any public adapter. #confidence/high
Adapter pinning to @kynesyslabs/demosdk ^2.10.2 agent-starter/package.json pins ^2.10.2. If mainnet ships a SDK major (3.x), every starter-template builder breaks silently on next npm install unless adapters and starter are re-released and reannounced. #confidence/high
process.exit on misconfig agent-starter/src/agent.mjs:35 hard-exits when DEMOS_MNEMONIC is unset. This is the same anti-pattern DEM-704 P0-2 calls out for the bridge consensus path. Builder copies this pattern into agents that may run inside larger orchestrators, where process.exit blows the parent process. #confidence/high
TLSN policy at mainnet If TLSN attestations are weighted into mainnet scoring or required for any category, the public adapters do not surface a single working example. Builders without backend access cannot easily produce TLSN-attested posts at launch. #confidence/medium
Verifying-agent gating The "verifying agents" claim (issue brief: 169; public marketing: 140+; live stats: 213 registered / 265 total / 62 active 24h) is enforced backend-side at publish time. Auto-auth with an ephemeral ed25519 keypair lets any client read; the gating that distinguishes a "verifying agent" from a registered one is not visible in any public artifact. Mainnet co-launch positions SuperColony as the verifiability proof-point — that claim is currently un-auditable externally. #confidence/medium
ERC-8004 / L2PS positioning Maven coordination doc mainnet-launch-coordination-2026-05-22.md §1 puts ERC-8004 (as "Demos 8004") and L2PS in the institutional-layer launch story. Neither primitive is wired into any public SuperColony adapter or referenced in llms-full.txt. If mainnet ships these, SuperColony does not demonstrate them through any auditable public-facing surface unless the backend repo opens or the adapters get a release. #confidence/medium

4. Test coverage — critical paths

Critical path Where it lives Tested?
Agent publishing (encodePoststoreconfirmbroadcast) supercolony-agent-starter/src/agent.mjs no — no tests/, no *.test.*, no __tests__
Ephemeral-keypair challenge-response auth supercolony-mcp/src/index.mjs::ensureAuth, langchain-supercolony/client.py::_authenticate no
DAHR attestation flow (demos.web2.createDahr()startProxy → publish with sourceAttestations) Referenced in SKILL.md only; no example in src no example file, no test
Signal aggregation (consensus pipeline) backend-only — closed source not auditable
Reaction submission, prediction resolution Backend-only — closed source not auditable
HIVE-encoding round-trip agent-starter/src/agent.mjs no
Token refresh on 401 / reauth retry Code path exists in supercolony-mcp/src/index.mjs::get no

Cumulative public-repo test files across all 4 adapters: 0.
#confidence/high.


5. Open PRs and stale branches

  • 0 open PRs across all 4 repos as of audit time. #confidence/high.
  • 1 closed PR total (supercolony-mcp). #confidence/high.
  • Single-branch (main) shipping in every repo: no review trail**
    **visible. Either all changes squash-merge from outside or are
    direct-pushed to main. From outside the org this is
    indistinguishable. #confidence/high.

No stale branches to triage. The risk here is the inverse of a
stale-branch problem: there is no observable change-review process
in any public adapter, which compounds the test-coverage gap when
the network is under mainnet load.


6. Security posture — "169 verifying agents" claim

Cannot enforce-audit from public source. #confidence/high on the
limitation.

What is verifiable from outside:

  • Read tier requires only an ephemeral ed25519 keypair generated by
    the client (tweetnacl.sign.keyPair() in MCP, SigningKey.generate()
    in langchain). No on-chain identity required to authenticate
    reads. #confidence/high.
  • Publish tier requires a Demos wallet with DEM balance — gated by
    the chain, not by SuperColony. #confidence/high.
  • The number 169 does not appear in any public source: /api/stats
    reports 265 total / 213 registered / 62 active 24h at audit time;
    README and server.json say "140+". #confidence/high. Lookout
    flagged the same 169 mismatch in KYN-180 §5 — confirmed here.

The "verifying agents" subset, if it exists as a gated cohort
distinct from registered agents, is implemented in the closed
backend. From the public surface there is no observable boundary
between "registered" and "verifying" — the leaderboard ranks by
Bayesian quality score, not by a verifying flag. #confidence/medium.

Other security observations from public adapters:

  • agent-starter/.env.example and agent.mjs:25 expect plaintext
    DEMOS_MNEMONIC in .env. No encrypted-store guidance in the
    starter README. #confidence/high — onboarding pattern leaks
    mnemonics into builder filesystems.
  • agent-starter/package.json runs with tsx --env-file=.env. Any
    template fork that commits .env ships a hot wallet to the
    internet. No .gitignore entry for .env in the starter's
    .gitignore (only node_modules + dist). #confidence/high.
  • The MCP server runs npx -y supercolony-mcp-y consents
    to the latest published version on every invoke. A compromise of
    the supercolony-mcp npm publish key would propagate to every
    Claude Code / Cursor / Windsurf user using the canonical
    .mcp.json snippet. #confidence/high.

7. Top 3 blockers for Demos mainnet co-launch (ranked)

Blocker 1 — Verifiability story is unauditable from public surface #confidence/high

The mainnet positioning per the Maven coordination doc treats
SuperColony as the live proof-point of the verifiable-agent
institutional layer (DAHR + identity + on-chain settlement). But
the "169 verifying agents" claim, the 3-tier (4-tier per brief)
consensus pipeline, the scoring engine, and the contract code that
enforces any of this all live in a private repo. External
auditors, institutional counterparties, and skeptical journalists
who follow the launch cannot independently verify any of the
verifiability claims. This is the single biggest reputational and
technical risk to a co-launch narrative built on
"institutional-grade verifiable agents."

Recommended fix (ranked sub-options): (a) selectively open the
indexer + scoring code in a read-only public repo before launch
week, (b) publish a signed attestation-policy spec that describes
how the verifying-agent set is gated and refreshed, with a
counter-signed network-state snapshot at mainnet block 0, (c) at
minimum align the public number to live API (213 registered) and
retire the 169 and 140+ figures everywhere they appear before
the launch thread ships in W3.

Blocker 2 — Zero test coverage in the public adapter layer #confidence/high

langchain-supercolony, supercolony-mcp, eliza-plugin-supercolony,
and supercolony-agent-starter together ship zero tests. Critical
paths — ephemeral auth, HIVE encoding round-trip, the
store/confirm/broadcast chain, the 401-retry path, and the DAHR
example flow — have no automated verification. The starter
template is the on-ramp for every external builder; a regression
landed during launch week breaks the SuperColony adoption push at
the worst possible moment. Combined with main-only branching
across all four repos, there is no review trail to catch
regressions before publish.

Recommended fix: add a minimal harness (one happy-path test per
critical path) in each adapter before W3 (Wedge 1 builder push
runs W1–W2 per Maven coordination doc, so tests should land
before adoption volume increases). Pin @kynesyslabs/demosdk to
an exact version (not ^2.10.2) in the starter until post-mainnet
SDK velocity is known.

Blocker 3 — TLSN, L2PS, and ERC-8004 are absent from the public adapter surface #confidence/medium

The mainnet launch thesis includes ERC-8004 identity (as "Demos
8004"), TLSN web2-attestation, and L2PS settlement primitives. Of
these, only TLSN gets even a documentation mention (SKILL.md), and
none have a working example in any public SuperColony adapter.
External builders shown to be on stage at mainnet cannot
fork-and-ship an agent that uses any of the three from the public
surface. If any of these primitives are required to qualify as a
"verifying agent" or to participate in mainnet-only scoring, the
adapter layer needs to expose them before launch — or the launch
narrative must downscope SuperColony's involvement on those
specific primitives.

Recommended fix: in priority order, (a) decide whether SuperColony
demonstrates TLSN at mainnet — if yes, ship a TLSN example in
agent-starter with a working demos.web2.createTLSN() flow; (b)
clarify ERC-8004 / Demos-8004 integration in agent-starter
README and llms-full.txt (does CCI subsume it, or is it a
separate identity primitive on top of CCI?); (c) confirm with Jay
whether L2PS is part of the SuperColony surface at all, or whether
it lives only in the Demos node / Liquid Tanks side and SuperColony
only consumes settlement results.


8. Confidence summary

  • §1 — repo metadata + branch + test counts: #confidence/high
  • §2 — primitive wiring map: mixed, per row
  • §3 — mainnet deltas: mostly #confidence/high on adapter facts, #confidence/medium on backend assumptions
  • §4 — test coverage: #confidence/high
  • §5 — PR / branch state: #confidence/high
  • §6 — security posture: #confidence/high on what is observable;
    cannot audit the gating logic
  • §7 — blocker ranking: #confidence/high on rank order given
    current scope; rank may shift if private repo opens

Ties back to

  • marketing/positioning/mainnet-launch-coordination-2026-05-22.md
    (Maven master plan) — Track GTM / SuperColony adoption depends
    on the technical baseline above. Blocker 1 is a Wedge-3 and
    launch-week risk; Blocker 2 is a Wedge-1 (W1–W2 builder push)
    risk; Blocker 3 is a launch-week positioning risk.
  • marketing/research/supercolony-state-2026-05-21.md (Lookout
    current-state assessment) — open questions 1, 2, 3, and 4 carry
    forward unresolved into this audit.
  • KYN-210 (audit task), KYN-208 (Maven master plan), KYN-180
    (Lookout state assessment).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions