GenesisPay

Official registry AI and agents

Let an AI agent find and pay for x402 APIs and products in USDC on Base, within owner-set limits.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http genesispay 'https://genesispay.finance/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "genesispay": {
            "type": "http",
            "url": "https://genesispay.finance/mcp"
        }
    }
}
NPM package @genesis-tech/genesispay-mcp
Claude Code
claude mcp add genesispay -e 'GENESISPAY_AGENT_KEY=<your genesispay_agent_key>' -e 'GENESISPAY_BASE_URL=https://genesispay.finance' -- npx -y @genesis-tech/genesispay-mcp@1.10.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "genesispay": {
            "command": "npx",
            "args": [
                "-y",
                "@genesis-tech/genesispay-mcp@1.10.0"
            ],
            "env": {
                "GENESISPAY_AGENT_KEY": "<your genesispay_agent_key>",
                "GENESISPAY_BASE_URL": "https://genesispay.finance"
            }
        }
    }
}

Environment variables

  • GENESISPAY_AGENT_KEY required secret Agent API key (gp_ag_...), created on the GenesisPay dashboard under the agent account's Keys tab.
  • GENESISPAY_BASE_URL required Base URL of the GenesisPay deployment the agent key belongs to.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. genesispay-js
  2. Sell: gate an endpoint
  3. Buy: pay from an agent
  4. Give your AI agent the tools
  5. Development
  6. Releasing
  7. License

genesispay-js

JavaScript/TypeScript SDKs for GenesisPay — stablecoin payments over HTTP 402 (x402) that work for both humans and AI agents. USDC on Base; every amount is integer minor units, never floats.

PackageWhat it does
@genesis-tech/genesispay-sellerFramework-agnostic payment gate: wrap any Fetch-API handler (Next.js, Hono, Bun) and it becomes a paid x402 endpoint.
@genesis-tech/genesispay-agentAgent-side client: pay x402-gated URLs (GET, or POST with an exact JSON body) from a policy-guarded agent wallet, discover payable services and shops, handle human approvals.
@genesis-tech/genesispay-mcpMCP stdio server (npx @genesis-tech/genesispay-mcp) exposing genesispay_discover / genesispay_shops / genesispay_quote / genesispay_shipping_profile / genesispay_pay / genesispay_payment_status / genesispay_account and more (16 tools, plus an MCP App product card) to Claude and other MCP clients.
@genesis-tech/genesispay-protocolPure x402 V2 types, header codecs, validators, and EIP-3009 typed-data helpers. Zero I/O.

Sell: gate an endpoint

import { createPaymentGate, genesisPaySettlement } from "@genesis-tech/genesispay-seller";

const gate = createPaymentGate({
  amountUsdc: "0.10",
  payTo: "0xYourWallet",
  description: "Premium market data",
  network: "base-sepolia",
});

export const GET = gate.wrap(async () => Response.json({ data: "…" }), {
  verifySettlement: genesisPaySettlement({
    facilitatorBaseUrl: "https://your-genesispay-instance.example",
    apiKey: process.env.GENESISPAY_SELLER_KEY!, // gp_sk_...
  }),
});

Buy: pay from an agent

import { GenesisPayAgent } from "@genesis-tech/genesispay-agent";

const agent = new GenesisPayAgent(); // env: GENESISPAY_AGENT_KEY, GENESISPAY_BASE_URL

const [service] = await agent.discover("weather api");
// Persist the key with your order before the first call, then reuse it on retries.
const result = await agent.pay(service.resourceUrl, { idempotencyKey: "saved-order-42", maxAmountUsdc: "0.50" });

if (result.settled) if (result.response) console.log(result.json()); // Replay has no captured resource body.
else console.log("Needs human approval:", result.approvalUrl);

Spending caps, allowlists, and approvals are enforced server-side by GenesisPay — the agent key never holds a raw private key.

Give your AI agent the tools

claude mcp add genesispay \
  --env GENESISPAY_AGENT_KEY=gp_ag_your_key \
  --env GENESISPAY_BASE_URL=https://your-genesispay-instance.example \
  -- npx -y @genesis-tech/genesispay-mcp

See GenesisTechAT/genesispay-agent-skill for the full agent skill (discovery-then-pay pattern, approval handling) and config snippets for other MCP clients.

Development

npm ci
npm run build   # tsc -b, dependency order
npm test        # vitest, tests run from package sources

Node >= 20.9. Each package builds to dist/ with tsc; tests are colocated (src/*.test.ts).

This repository is a read-only publish mirror — development happens in the main GenesisPay repository and is synced here. Issues and PRs are welcome and are folded back upstream.

Releasing

  1. Bump versions in packages/*/package.json.
  2. Confirm npm Trusted Publishing authorizes .github/workflows/publish.yml for every package. The workflow uses GitHub OIDC (id-token: write); it does not read an NPM_TOKEN secret.
  3. Tag the reviewed snapshot and push that tag.
  4. The publish workflow builds, tests, verifies pack manifests, and publishes only package versions absent from npm.

License

MIT © GenesisTech

Frequently asked questions

What is GenesisPay?

Let an AI agent find and pay for x402 APIs and products in USDC on Base, within owner-set limits.

How do I install GenesisPay?

It runs as a remote server. In Claude Code: claude mcp add --transport http genesispay 'https://genesispay.finance/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does GenesisPay need an API key?

Yes. It expects GENESISPAY_AGENT_KEY, GENESISPAY_BASE_URL, which you set in its configuration.

Is GenesisPay open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains GenesisPay?

It is published by GenesisTechAT. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.