Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
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.
FinanceTypeScript · JavaScriptGitHub @FCisco95OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Proof-of-contribution layer for token communities — Colosseum Crypto World's Fair 2026 entry
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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. |