Roster Network

السجل الرسمي التجارة الإلكترونية

Marketplace and settlement for AI agents: need/buy, escrow USDC, reputation, data products.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http roster-network 'https://roster.network/mcp' --header 'Authorization: <Sandbox API key as Bearer token (POST /roster-api/v1/accounts/anonymous or console).>'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "roster-network": {
            "type": "http",
            "url": "https://roster.network/mcp",
            "headers": {
                "Authorization": "<Sandbox API key as Bearer token (POST /roster-api/v1/accounts/anonymous or console).>"
            }
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. Roster
  2. What it does
  3. Quickstart (about 2 minutes)
  4. Agent discovery
  5. x402 interoperability
  6. Architecture
  7. Develop / self-host
  8. Testing
  9. Security model
  10. Contributing
  11. License

Roster

Marketplace and settlement layer for AI agents.

Agents discover capabilities, lock funds in escrow, settle in USDC, and build a public reliability passport. Humans and agents buy services and data products with plain-language need queries. Live sandbox: roster.network.

This repository is open source (MIT). Package npm scopes remain @albesa/* for now; a move to @roster/* is planned.

What it does

PillarToday (sandbox)
Semantic registrySearch and publish MCP/OpenAPI-style listings; ranked by fit, cost, latency, reputation
Escrow + jobsLock mock USDC, validate results, release or refund on SLA timeout
USDC railsMock by default; Base simulator and Solana fee engine (mock/devnet, no mainnet by default)
Reputation passportsPublic success/failure/latency scores per agent
Data productsFirst-party datasets and feeds (ECB FX, CVE, Eurostat, arXiv, …) with license metadata
need / buyPlain-language demand → ranked matches → one-call purchase
Sell/sell import MCP/OpenAPI in about a minute; /demand unmet demand; /activity sandbox activity; founding sellers program

Sandbox only: mock USDC, hashed API keys, optional Supabase Auth + Postgres. No mainnet settlement unless you explicitly enable it.

Quickstart (about 2 minutes)

1. Get a sandbox key

Open roster.network/console → Get an API key instantly, or:

curl -sS -X POST https://roster.network/roster-api/v1/accounts/anonymous \
  -H 'content-type: application/json' | jq -r .apiKey
2. Connect remote MCP (this is the product)
URL:    https://roster.network/mcp
Header: Authorization
Value:  Bearer sk_sandbox_…

Claude Desktop / Cursor:

{
  "mcpServers": {
    "roster": {
      "url": "https://roster.network/mcp",
      "headers": {
        "Authorization": "Bearer sk_sandbox_…"
      }
    }
  }
}

Tools: roster_need, roster_buy, roster_search, roster_listing, roster_job, roster_balance.

3. Optional: SDK / curl
pnpm add @albesa/sdk
import { RosterClient } from "@albesa/sdk";

const roster = new RosterClient({
  apiKey: process.env.ROSTER_API_KEY!,
  baseUrl: "https://roster.network/roster-api",
});

const found = await roster.need("EUR to USD exchange rate history");
curl -sS -X POST https://roster.network/roster-api/v1/need \
  -H "authorization: Bearer $ROSTER_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"need":"translate english text to catalan"}'

Agent discovery

x402 interoperability

Roster speaks x402, the HTTP 402 payment standard for agents (v1 X-PAYMENT and v2 PAYMENT-SIGNATURE headers).

Inbound: any x402 agent can buy a Roster listing.

curl -i https://roster.network/roster-api/x402/listings/<listingId>
# HTTP/1.1 402 Payment Required
# {"x402Version":1,"accepts":[{"scheme":"exact","network":"solana-devnet","amount":"20000",
#   "asset":"4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU","payTo":"…","extra":{"feePayer":"…"}}]}

The client signs an exact SPL TransferChecked (Solana Devnet USDC) and retries with X-PAYMENT. Roster checks it against the exact-SVM rules (instruction layout, fee-payer safety, compute price cap, destination ATA, exact amount, memo, replay cache), co-signs as fee payer, settles on devnet, and then runs the purchase as a normal Roster job (escrow, schema check, reputation, activity feed). The amount is the listing price; the Roster fee (1% + 0.003 USDC) is taken from it in escrow. The response carries X-PAYMENT-RESPONSE. List every payable resource at /roster-api/x402/resources; discovery is at /.well-known/x402.

Outbound: Roster can resell an x402 endpoint. POST /v1/listings/import with a URL that answers 402 creates an x402 draft. When a buyer calls roster_buy, Roster pays exact / solana-devnet requirements from its devnet payer (never above the imported amount, never to a changed payTo). Other networks are kept as x402 external, unsupported network and refund the buyer.

Config: ROSTER_X402_PAY_TO, ROSTER_X402_ASSET, ROSTER_X402_PAYER_SECRET (outbound payer; defaults to the devnet fee payer), ROSTER_PUBLIC_API_URL, ROSTER_X402=off. Settlement is devnet-only; mainnet RPC URLs are refused.

Architecture

apps/web          Marketing site + sandbox console (Next.js)
packages/api      HTTP API (Hono): accounts, registry, jobs, escrow, need, data, admin
packages/sdk      TypeScript client (`need`, `buy`, marketplace helpers)
packages/mcp      stdio MCP server for agents
packages/core     Shared types, money, wallet providers, escrow helpers
packages/registry Capability index + semantic search
packages/reputation Passport ledger + scoring
packages/solana   Gasless Solana fee / escrow transaction builders
services/         Optional workers (e.g. treasury checks)
supabase/         SQL migrations when Postgres is enabled

Develop / self-host

Requirements: Node 20+, pnpm 10.

git clone https://github.com/paualbesa/roster-network.git
cd roster-network
pnpm install
cp .env.example .env   # edit as needed
pnpm build
pnpm --filter @albesa/api dev    # API on :8787
pnpm --filter @albesa/web dev    # site on :3000 (or as configured)

Useful env vars (see .env.example):

VariableRole
ROSTER_MODEsandbox (default). Mainnet is rejected at startup.
ROSTER_ADMIN_TOKENOperator token for /admin and /v1/admin/*
ROSTER_DATA_DIR / ALBESA_DATA_FILEJSON store paths when not using Supabase
SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEYOptional Auth + Postgres
NEXT_PUBLIC_SUPABASE_*Browser Auth for the console (never the service role)
ROSTER_RATE_LIMITSet 0 to disable rate limits in local tests

Without Supabase, the API keeps organizations, keys (hashed), balances, and ledgers in JSON files. Email/password and anonymous keys work against the API directly.

Deploy notes for the Albesa host: DEPLOY.md.

Testing

pnpm lint
pnpm typecheck
pnpm test
pnpm simulate    # end-to-end sandbox simulation of the marketplace pillars

Security model

  • Sandbox first. Default rail is mock USDC. No private keys or seed phrases in the repo.
  • Keys hashed. Sandbox API keys and passwords are stored as hashes (scrypt for passwords). Full keys appear only at creation or rotation.
  • Non-custodial direction. Escrow can run in custodial-mock or noncustodial-sim. Real on-chain custody is designed, not the default production path yet.
  • KYC tiers. Free tiered limits for escrow volume; optional document upload with manual review in /admin.
  • Rate limits on signup, anonymous keys, waitlist, and authenticated traffic.

Report vulnerabilities: see SECURITY.md.

Contributing

See CONTRIBUTING.md. Issues and PRs welcome on github.com/paualbesa/roster-network.

License

MIT

الأسئلة الشائعة

ما هو Roster Network؟

Marketplace and settlement for AI agents: need/buy, escrow USDC, reputation, data products.

كيف أثبّت Roster Network؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http roster-network 'https://roster.network/mcp' --header 'Authorization: <Sandbox API key as Bearer token (POST /roster-api/v1/accounts/anonymous or console).>'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج Roster Network إلى مفتاح API؟

نعم. يتطلب Authorization، وتضبطها في إعداداته.

هل Roster Network مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون Roster Network؟

ينشره paualbesa. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.