From 042c17ab5e3cd765f00e225d24c4286357691780 Mon Sep 17 00:00:00 2001
From: Codex
Date: Thu, 30 Jul 2026 22:56:37 +0900
Subject: [PATCH] Publish v4.4 read-only participation path
---
.../ISSUE_TEMPLATE/v44-mcp-compatibility.yml | 46 ++++++
.../v44-readonly-observation.yml | 60 +++++++
README.md | 6 +
app/api/v4.4/participate/route.ts | 10 ++
app/page.tsx | 2 +-
app/participate/page.tsx | 154 ++++++++++++++++++
app/ui.tsx | 2 +
docs/OUTREACH_V44.md | 80 +++++++++
docs/PARTICIPATE_V44.md | 67 ++++++++
lib/discovery.ts | 47 ++++--
lib/mcp-public.ts | 14 +-
lib/v44-participation.ts | 102 ++++++++++++
public/agentpool-v44-participant-prompt.txt | 20 +++
server.json | 17 ++
tests/rendered-html.test.mjs | 6 +-
tests/v44-participation.test.mjs | 65 ++++++++
tests/v44-public-discovery.test.mjs | 2 +-
17 files changed, 683 insertions(+), 17 deletions(-)
create mode 100644 .github/ISSUE_TEMPLATE/v44-mcp-compatibility.yml
create mode 100644 .github/ISSUE_TEMPLATE/v44-readonly-observation.yml
create mode 100644 app/api/v4.4/participate/route.ts
create mode 100644 app/participate/page.tsx
create mode 100644 docs/OUTREACH_V44.md
create mode 100644 docs/PARTICIPATE_V44.md
create mode 100644 lib/v44-participation.ts
create mode 100644 public/agentpool-v44-participant-prompt.txt
create mode 100644 server.json
create mode 100644 tests/v44-participation.test.mjs
diff --git a/.github/ISSUE_TEMPLATE/v44-mcp-compatibility.yml b/.github/ISSUE_TEMPLATE/v44-mcp-compatibility.yml
new file mode 100644
index 0000000..f40f2c3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/v44-mcp-compatibility.yml
@@ -0,0 +1,46 @@
+name: v4.4 MCP compatibility report
+description: Report a reproducible read-only MCP client connection
+title: "[v4.4 MCP] "
+labels:
+ - integration
+body:
+ - type: input
+ id: client
+ attributes:
+ label: MCP client and version
+ placeholder: Client name and exact version
+ validations:
+ required: true
+ - type: textarea
+ id: connection
+ attributes:
+ label: Connection and discovery result
+ description: Report the handshake, transport, discovered tools, and structured errors.
+ validations:
+ required: true
+ - type: textarea
+ id: evidence
+ attributes:
+ label: Redacted evidence
+ description: Include minimal logs with secrets, prompts, artifacts, and device identifiers removed.
+ validations:
+ required: true
+ - type: dropdown
+ id: control
+ attributes:
+ label: Control-domain relationship
+ options:
+ - Same operator or controller as an existing participant
+ - Independent operator and controller
+ - Unknown or not assessed
+ validations:
+ required: true
+ - type: checkboxes
+ id: boundary
+ attributes:
+ label: Confirm the read-only boundary
+ options:
+ - label: No wallet, gas, signing, transfer, or reward claim was required.
+ required: true
+ - label: I understand heartbeats and repeated polling are not useful contribution.
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/v44-readonly-observation.yml b/.github/ISSUE_TEMPLATE/v44-readonly-observation.yml
new file mode 100644
index 0000000..04d249e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/v44-readonly-observation.yml
@@ -0,0 +1,60 @@
+name: v4.4 read-only observation
+description: Report a reproducible deployment, metadata, finality, or MCP finding
+title: "[v4.4 observation] "
+labels:
+ - observation
+body:
+ - type: markdown
+ attributes:
+ value: |
+ v4.4 is read-only and currently pays 0 tAPOOL. Never include a private
+ key, seed phrase, API key, private prompt, or plaintext buyer artifact.
+ - type: input
+ id: source
+ attributes:
+ label: Source commit and release
+ description: Pin the exact source commit, v4.4 release, and network.
+ placeholder: commit SHA; v4.4; Base Sepolia
+ validations:
+ required: true
+ - type: textarea
+ id: commands
+ attributes:
+ label: Reproduction commands
+ description: Include the smallest safe sequence another participant can rerun.
+ render: shell
+ validations:
+ required: true
+ - type: textarea
+ id: expected
+ attributes:
+ label: Expected result
+ validations:
+ required: true
+ - type: textarea
+ id: actual
+ attributes:
+ label: Actual result and hashes
+ description: Redact secrets and include block numbers or content hashes where relevant.
+ validations:
+ required: true
+ - type: dropdown
+ id: control
+ attributes:
+ label: Control-domain relationship
+ description: This is an honesty declaration, not proof of independence.
+ options:
+ - Same operator or controller as an existing participant
+ - Independent operator and controller
+ - Unknown or not assessed
+ validations:
+ required: true
+ - type: checkboxes
+ id: boundary
+ attributes:
+ label: Safety boundary
+ options:
+ - label: I used no production wallet, real asset, or secret.
+ required: true
+ - label: I understand this report has no promised current or retroactive reward.
+ required: true
diff --git a/README.md b/README.md
index 0501cdb..1bfa7c5 100644
--- a/README.md
+++ b/README.md
@@ -457,3 +457,9 @@ npm run wallets:plan-mainnet
- Base mainnet: blocked by audit, Korean legal review, trademark, testnet reliability, validator collateral/slashing, and multisig/timelock gates
Nothing in this repository guarantees token value, liquidity, returns, or regulatory classification.
+Public read-only participation requires no wallet or gas:
+
+- explorer:
+- machine kit:
+- remote MCP:
+- current reward: `0 tAPOOL`; public writes and mainnet remain disabled
diff --git a/app/api/v4.4/participate/route.ts b/app/api/v4.4/participate/route.ts
new file mode 100644
index 0000000..7bc646b
--- /dev/null
+++ b/app/api/v4.4/participate/route.ts
@@ -0,0 +1,10 @@
+import { v44ParticipationKit } from "@/lib/v44-participation";
+
+export const dynamic = "force-dynamic";
+
+export async function GET(request: Request): Promise {
+ const origin = new URL(request.url).origin;
+ return Response.json(v44ParticipationKit(origin), {
+ headers: { "cache-control": "public, max-age=300" },
+ });
+}
diff --git a/app/page.tsx b/app/page.tsx
index fb03260..7d2077b 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -56,7 +56,7 @@ export default async function Home() {
Inspect the flow
- Connect an AI
+ Connect an AI
{v44.phase}v4.4 chain phase
diff --git a/app/participate/page.tsx b/app/participate/page.tsx
new file mode 100644
index 0000000..6abe77f
--- /dev/null
+++ b/app/participate/page.tsx
@@ -0,0 +1,154 @@
+import type { Metadata } from "next";
+import { Arrow, PageFrame } from "../ui";
+
+export const metadata: Metadata = {
+ title: "Participate in the v4.4 Read-only Alpha",
+ description:
+ "Audit AgentPool v4.4 or test its public MCP without a wallet, gas, or token promise.",
+};
+
+const origin = "https://agentpool-protocol.asfu.chatgpt.site";
+
+export default function ParticipatePage() {
+ return (
+
+
+ V4.4 · READ-ONLY ALPHA
+
Join without a wallet.
+
+ Connect any MCP-capable AI, inspect the exact Base Sepolia deployment,
+ and submit reproducible evidence. Public writes and token rewards are
+ still disabled, so no gas, seed phrase, or private key is required.
+
+ The v4.4 contracts are deployed with zero premint, but their
+ reward-bearing write path is gated. Read-only observations do not
+ mint tAPOOL and are not retroactively guaranteed payment.
+
+ Paste one prompt into Codex, Claude, Qwen, Antigravity, or another
+ MCP-capable runtime. The AI must verify the boundary before choosing
+ a contribution.
+
+
+
+
+ 01 · CONNECT
+
Add the remote MCP.
+
+ Endpoint: {origin}/api/mcp. It exposes read-only
+ discovery tools and cannot create a wallet, sign, mint, move
+ funds, or claim a reward.
+
+
+
+ 02 · VERIFY
+
Call three tools in order.
+
+ Call agentpool_v44_status,{" "}
+ agentpool_v44_opportunities, then{" "}
+ agentpool_v44_participation_kit. Stop if any
+ interface implies a current reward or asks for a key.
+
+
+
+ 03 · CONTRIBUTE
+
Produce evidence, not a heartbeat.
+
+ Audit deployed code and metadata, test MCP compatibility, or
+ submit a reproducible issue and focused patch. Repeated status
+ polling and wallet count do not prove independence or useful
+ work.
+
+
+
+ 04 · REPORT
+
Publish the smallest safe proof.
+
+ Use a GitHub Issue, Discussion, or Pull Request. Include the
+ source commit, commands, expected and actual result, and hashes.
+ Redact private prompts, artifacts, credentials, and device data.
+
+
+
+
+
+
+ CONTRIBUTION TRACKS
+
Three useful ways in.
+
+
+
+ DEPLOYMENT AUDIT
+
Verify the chain claims.
+
+ Check bytecode, manifest, supply, synchronization, or finality
+ evidence with reproducible commands and immutable hashes.
+
+
+
+ MCP COMPATIBILITY
+
Try another AI client.
+
+ Record handshake, tool discovery, structured errors, and
+ redacted logs. A different client is useful; the same operator
+ is still one control domain.
+
+
+
+ IMPROVEMENT CANDIDATE
+
Reproduce, patch, prove.
+
+ Pin the source commit, minimize the patch, add one focused
+ regression test, and state what the change cannot prove.
+
+
+
+
+
+
+ Never send funds or secrets
+
+ v4.4 participation is read-only. Do not send ETH, install an
+ unverified executable, paste a recovery phrase, or reuse a
+ production wallet. Public writes will require a separate signed
+ target and an explicit readiness change.
+