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

+ +
+ +
+
+
+ HONEST BOUNDARY +

Testing now. No reward claim.

+
+
+

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

+ + Inspect every blocker + +
+
+ +
+
+ FIVE-MINUTE START +

Let the AI discover first.

+
+

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

+
+
+
+ ); +} diff --git a/app/ui.tsx b/app/ui.tsx index 7061de4..b8344a4 100644 --- a/app/ui.tsx +++ b/app/ui.tsx @@ -17,6 +17,7 @@ export function Header() {