個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Proof-of-contribution layer for token communities — Colosseum Crypto World's Fair 2026 entry
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Hyphae is a proof-of-contribution layer for token communities. Members do real work for a community, an AI scores it against public guidelines and shows its reasoning, and each epoch's payouts are committed to Solana as a merkle root, next to the hash of the epoch's full audit record. Each community has a SOL vault; a contributor claims their share from it with a merkle proof, signed by their own wallet, once.
Built solo for Colosseum's Crypto World's Fair (2026-09-14 → 2026-10-12), under the Organic/MYCEL umbrella. The build log is docs/BUILDLOG.md.檢視完整 README ↗Hyphae is a proof-of-contribution layer for token communities. Members do real work for a community, an AI scores it against public guidelines and shows its reasoning, and each epoch's payouts are committed to Solana as a merkle root, next to the hash of the epoch's full audit record. Each community has a SOL vault; a contributor claims their share from it with a merkle proof, signed by their own wallet, once.
Built solo for Colosseum's Crypto World's Fair (2026-09-14 → 2026-10-12), under the Organic/MYCEL umbrella. The build log is docs/BUILDLOG.md.
Live demo · Paid epoch 2 · Mainnet receipts · Development milestones · Public rules
Start with the paid epoch: inspect a contribution's score and reasoning, its allocation, and its confirmed claim. The wallet record connects the signed identity to its payment history. The homepage setup prompt helps another community prepare an operator-assisted setup.
Use the official bot from your community's registered group. Ask its owner for the verified group invite.
| Step | Command or button | Result |
|---|---|---|
| 1. Set up | /setup in the group | Open your guided checklist privately; /link verifies your wallet with a readable message. |
| 2. Learn the rules | /rules in the group | Open this community's rules quiz privately; /help explains scores and payment conditions. |
| 3. Find work | /help brief | Read the current raid brief and its audit link. |
| 4. Submit | The exact raid's Submit button | Send your own reply/quote URL privately; retain its receipt to inspect the result. |
| 5. Check progress | /me → Open my private checklist | See your wallet and eligibility privately. Published allocations and confirmed claims are on the audit site. |
Optional alerts use /notifications; privately refresh a result with /receipt <receipt ID> or report a scoring issue with /issue <receipt ID> <reason>. Points do not promise payment.
Epoch 2 used MYCEL 1.2.0. The rubric and scorer changelog, whitepaper, and each epoch's public audit expose the applicable rules and amendments. Published rubric files retain prior versions. MYCEL 1.3.0 is a candidate, not the live epoch-2 rule set. Rules are public; individual rules-test and hold checklists are private.
October 10, 2026: epoch 2 paid on Solana mainnet. All four payees claimed 1,238,881,509 lamports, with 0 unclaimed; three of the four payees are non-founder community members. Finalized payout and claim receipts.
| Part | State and evidence |
|---|---|
| Solana program: vaults, epoch roots, one-time claims | Mainnet and devnet program EAz8WkyUbGqr3ewSLpk94GWEoiWsvMENE5zV7Tvh4d6E. Mainnet upgrade authority is the Ledger 2kz1Zq8UDm9Hq6XwPW6cViQZe7aySEBGk1gLWN8gofjR; the October 11 mainnet hash re-read matches the verified build. |
| MYCEL community and vault | Mainnet community HRkBN4…XbRX and vault AC3zkG…oG86K, created in C16 aensGhPg…aQJSghNX; funded with 1.5 SOL in C18 5spBxwDa…i1c7rjtj. |
| Epoch 2 payout | C20 4qhKtnsV…Xop6EnLm committed the root and audit hash, sent the 0.045 SOL Treasury fee and allocated 1,238,881,509 lamports. All four claim receipts confirm 4/4 paid, 0 unclaimed; live settlement. |
| Published IDL | 2sS66trK…aBj9ArgZ; canonical metadata. Solscan decodes the . |
Each token community uses its own registered Telegram group and /c/<mint> audit page. The shared bot provides community-specific welcome/help, rules, submissions and progress. Adding the bot alone does not register a group.
The operator setup guide describes the local community-setup tool: offline plan, read-only checks, then an explicitly approved registration that starts paused with a pinned epoch and no payment eligibility. Current setup is operator-assisted; an Organic owner-authorized integration and a self-service administrator interface are not built. No new production community or Telegram setting is changed by publishing this code.
Public, read-only, unauthenticated JSON at https://hyphae-api.fly.dev/v1. The reference is at /docs, which renders the OpenAPI 3.1 document at /v1/openapi.json. The document is generated from the same schemas the API's tests check its responses with. To run it locally, see Develop.
For the locally packed standalone TypeScript read SDK, a runnable reader and community/launchpad adoption boundaries, see the integration guide. Package installation is verified in a separate Node/browser consumer; npm publication and self-service setup remain separate.
{ "status": "unavailable", "reason": … }, never a zero.RateLimit-* headers. Past 300 requests a minute from one address, the API answers 429 with Retry-After.A wallet's leaves in every community, newest first, each with its proof and its payment status (paid with the claim transaction, claimable, or unavailable with a reason). This reads the first 100; total_claims counts them all, and offset pages on. A wallet with no leaf in a published epoch gets total_claims: 0 and an empty claims, not a 404.
const API = process.env.HYPHAE_API ?? "https://hyphae-api.fly.dev/v1";
const wallet = process.argv[2];
const { claims } = await (await fetch(`${API}/wallets/${wallet}/claims?limit=100`)).json();
Check each proof yourself: rebuild the 89-byte leaf, then hash up the sorted pairs to the root. It is the same computation the program runs before it pays.
import { createHash } from "node:crypto";
import { getAddressEncoder } from "@solana/kit";
const sha = (...parts) => createHash("sha256").update(Buffer.concat(parts)).digest();
const u64 = (v) => { const b = Buffer.alloc(8); b.writeBigUInt64LE(BigInt(v)); return b; };
for (const c of claims) {
let node = sha(Buffer.of(0), Buffer.from(getAddressEncoder().encode(wallet)), u64(c.epoch.index),
u64(c.score), u64(c.amount_lamports), Buffer.from(c.evidence_hash, "hex"));
for (const p of c.proof.map((h) => Buffer.from(h, "hex")))
node = sha(Buffer.of(1), ...(Buffer.compare(node, p) <= 0 ? [node, p] : [p, node]));
console.log(c.community.mint, c.epoch.index, c.amount_lamports, c.payment.status, node.toString("hex") === c.root);
}
root is the root of the epoch account at epoch_address. Read that account to check it without trusting the API. To claim, read /v1/communities/{mint}/epochs/{index}/claims/{wallet} right before signing: it adds a recent blockhash.
A community is the pair (token mint, the admin key that publishes its epochs). Its vault is a program-derived address, so an integrator derives it without calling Hyphae, and funds it with an ordinary SOL transfer:
import { address, getAddressEncoder, getProgramDerivedAddress } from "@solana/kit";
const HYPHAE = address("EAz8WkyUbGqr3ewSLpk94GWEoiWsvMENE5zV7Tvh4d6E");
const enc = getAddressEncoder();
const [community] = await getProgramDerivedAddress({ programAddress: HYPHAE, seeds: ["community", enc.encode(mint), enc.encode(admin)] });
const [vault] = await getProgramDerivedAddress({ programAddress: HYPHAE, seeds: ["vault", enc.encode(community)] });
["vault", community], where community is the program-derived address of ["community", mint, admin]. The admin is a seed, so a community is the pair, not the mint alone.Organic's bagworker sweep can target this address. Nothing in this repository changes Organic's code.
Pilot policy. Hyphae's publisher key sets each epoch's payout list, so you trust it with that epoch's pot. We keep that key on a hardware wallet and fund one epoch at a time, just before it pays. The program has no withdraw instruction: SOL leaves the vault only through member claims and the 3% fee. The program can still be upgraded. The upgrade key is held the same way, and any upgrade is announced here before it is used.
Requires pnpm 10 and Node 22. The Solana program builds in WSL or Linux with Anchor 1.0.1 and Solana CLI 3.1.
pnpm install
pnpm test && pnpm typecheck && pnpm lint
pnpm --filter @hyphae/api test:pg # Postgres 17 in Docker
anchor build && cargo test -p hyphae --tests
python3 tests/h_contract_vectors.py # the commitment vectors, with Python's standard library
CI runs the same checks on every push. The program builds weekly.
To run the read API locally on a disposable database with the demo community:
docker run -d --rm --name hyphae-pg -p 55433:5432 -e POSTGRES_PASSWORD=local -e POSTGRES_DB=hyphae postgres:17
export DATABASE_URL=postgres://postgres:[email protected]:55433/hyphae
pnpm --filter @hyphae/db exec drizzle-kit migrate
cd apps/api && node --import tsx src/http/demo-seed.ts && pnpm build
# The bot and scoring variables must be set but are not used by the read API.
TELEGRAM_BOT_TOKEN=000000000:local-placeholder-token TELEGRAM_WEBHOOK_SECRET=local-placeholder \
ANTHROPIC_API_KEY=unused LINK_ORIGIN=https://localhost PORT=8787 \
READ_RPC_URL=https://api.devnet.solana.com node dist/server.js
Then open http://localhost:8787/docs. publish.devnet.test.ts can add a real devnet publication to the same database (HYPHAE_DEVNET_DATABASE_URL).
Business Source License 1.1, converting to the GPL v2.0 or later on 2028-10-12. This repository is public; the program, its verifiable build and the rubrics are also published at FCisco95/hyphae-program under the same licence.
| Telegram bot, AI scoring and public audit site | Live for MYCEL; epoch 2 audit records 33 contributions from 9 members and the mainnet settlement. |
| Read API v1 | Live, including epoch-2 settlement, wallet claims, signed C21 wallet record, /docs and /v1/openapi.json. |
| October 11 post-payout release | Reviewed claim recovery, wallet page, Actions and schedule notice live. Rules-test/hold checklists stay private; public allocation/payment receipts remain public. Release CI and live smoke evidence. |
| Soulbound Token-2022 points | Planned, not built; the program source has no points mint. |