{"id":50523115,"url":"https://github.com/ds1/pincerpay","last_synced_at":"2026-06-03T06:01:10.636Z","repository":{"id":342486760,"uuid":"1158802065","full_name":"ds1/pincerpay","owner":"ds1","description":"On-chain USDC payment gateway for AI agents. x402 protocol.","archived":false,"fork":false,"pushed_at":"2026-05-27T05:07:43.000Z","size":3360,"stargazers_count":1,"open_issues_count":76,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-27T05:08:32.308Z","etag":null,"topics":["agent","agent-sdk","agentic-ai","ai-agents","merchant","merchant-platform","open-source","opensource","payments","solana","stablecoin","typescript","usdc","x402","x402-agent","x402-payment"],"latest_commit_sha":null,"homepage":"https://pincerpay.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ds1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-15T23:35:05.000Z","updated_at":"2026-05-27T05:02:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ds1/pincerpay","commit_stats":null,"previous_names":["ds1/pincerpay"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/ds1/pincerpay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fpincerpay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fpincerpay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fpincerpay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fpincerpay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ds1","download_url":"https://codeload.github.com/ds1/pincerpay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds1%2Fpincerpay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33850627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-sdk","agentic-ai","ai-agents","merchant","merchant-platform","open-source","opensource","payments","solana","stablecoin","typescript","usdc","x402","x402-agent","x402-payment"],"created_at":"2026-06-03T06:01:10.077Z","updated_at":"2026-06-03T06:01:10.630Z","avatar_url":"https://github.com/ds1.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PincerPay\n\nThe payment gateway for the agentic economy. Accept payments from AI agents. Add a few lines of code. Settle instantly in USDC.\n\n## For merchants: sign up in 2 minutes, no browser\n\n```bash\nnpx @pincerpay/cli signup\n# email + password + 6-digit code from your inbox\n\nnpx @pincerpay/cli bootstrap-merchant --name \"Acme Co\" --chains \"solana,polygon\"\n# → generates non-custodial wallets, creates merchant, mints API key\n# → prints env vars ready to paste into `vercel env add`\n```\n\nThat's the full onboarding flow. Terminal-only. Phantom + MetaMask compatible wallets generated locally. PincerPay never sees your keys. See [docs/onboarding](https://pincerpay.com/docs/onboarding) and [docs/cli](https://pincerpay.com/docs/cli) for full reference.\n\n## Architecture\n\n```\nAgent → 402 Challenge → Sign USDC Transfer → PincerPay Facilitator → Blockchain → Merchant\n```\n\n![PincerPay Agent Playground showing the x402 payment flow in action](apps/dashboard/public/docs/playground-flow.png)\n\nPincerPay is a non-custodial x402 facilitator. When an AI agent hits a merchant API and gets HTTP 402, the agent signs a USDC transfer. PincerPay verifies the signature, broadcasts to the blockchain, and confirms settlement.\n\n## Monorepo Structure\n\n| Package | Description | Docs |\n|---|---|---|\n| `apps/facilitator` | x402 facilitator service (Hono + Node.js) | |\n| `apps/dashboard` | Merchant dashboard (Next.js 15) | |\n| [`packages/merchant`](packages/merchant/) | Merchant SDK with Express + Hono middleware | [README](packages/merchant/README.md) |\n| [`packages/agent`](packages/agent/) | Agent SDK with automatic x402 payment handling | [README](packages/agent/README.md) |\n| [`packages/core`](packages/core/) | Shared types, chain configs, constants | [README](packages/core/README.md) |\n| [`packages/db`](packages/db/) | Drizzle ORM schema + migrations | [README](packages/db/README.md) |\n| [`packages/program`](packages/program/) | Anchor program client for Solana | [README](packages/program/README.md) |\n| [`packages/solana`](packages/solana/) | Kora gasless txns + Squads smart accounts | [README](packages/solana/README.md) |\n| [`packages/onboarding`](packages/onboarding/) | Non-custodial wallet generation + merchant bootstrap | [README](packages/onboarding/README.md) |\n| [`packages/cli`](packages/cli/) | Terminal-only merchant onboarding (`npx @pincerpay/cli`) | [README](packages/cli/README.md) |\n| [`packages/mcp`](packages/mcp/) | MCP server for AI assistants (26 tools) | [README](packages/mcp/README.md) |\n| `examples/` | Example merchant and agent apps | |\n\n## Quick Start\n\n### Prerequisites\n\n- Node.js 22+\n- pnpm 10+\n- PostgreSQL (Supabase recommended)\n\n### Install\n\n```bash\npnpm install\n```\n\n### Build\n\n```bash\npnpm build\n```\n\n### Development\n\n```bash\n# Start all services\npnpm dev\n\n# Start individual services\npnpm --filter @pincerpay/facilitator dev\npnpm --filter @pincerpay/dashboard dev\n```\n\n### Database\n\n```bash\n# Generate migrations from schema\npnpm db:generate\n\n# Push schema to database\npnpm db:push\n```\n\n### Onboarding scripts\n\nProvision a merchant from the command line, with no dashboard click-through.\n\n```bash\n# Generate non-custodial wallets only (no DB)\npnpm create-wallets\n\n# End-to-end: generate wallets, create merchant, mint API key\nDATABASE_URL=postgresql://... pnpm bootstrap-merchant \\\n  --name \"My Merchant\" --auth-user-id \u003csupabase-uuid\u003e\n\n# Mint a key for an existing merchant\nDATABASE_URL=postgresql://... pnpm create-api-key list\nDATABASE_URL=postgresql://... pnpm create-api-key create --merchant \u003cid|name\u003e --label \"Production\"\n```\n\nThe same flows are exposed as MCP tools (`bootstrap-wallets`, `bootstrap-merchant`, `create-api-key`, `list-merchants`) in `@pincerpay/mcp`. See [Merchant Onboarding](https://pincerpay.com/docs/onboarding).\n\n## Merchant SDK\n\n```typescript\nimport express from \"express\";\nimport { pincerpay } from \"@pincerpay/merchant/express\";\n\nconst app = express();\n\napp.use(\n  pincerpay({\n    apiKey: process.env.PINCERPAY_API_KEY!,\n    merchantAddress: \"YOUR_SOLANA_ADDRESS\",\n    routes: {\n      \"GET /api/weather\": {\n        price: \"0.01\",\n        chain: \"solana\",\n        description: \"Weather data\",\n      },\n    },\n  })\n);\n```\n\nSee [`@pincerpay/merchant` README](packages/merchant/README.md) for Hono middleware, multi-chain config, and full API reference.\n\n## Agent SDK\n\n```typescript\nimport { PincerPayAgent } from \"@pincerpay/agent\";\n\nconst agent = await PincerPayAgent.create({\n  chains: [\"solana\"],\n  solanaPrivateKey: process.env.AGENT_SOLANA_KEY!,\n});\n\n// Automatic 402 handling\nconst response = await agent.fetch(\"https://api.example.com/weather\");\n```\n\nSee [`@pincerpay/agent` README](packages/agent/README.md) for spending policies, multi-chain setup, and Squads smart accounts.\n\n## Supported Chains\n\n| Chain | Network ID | Status |\n|---|---|---|\n| Base | eip155:8453 | Mainnet |\n| Base Sepolia | eip155:84532 | Testnet |\n| Polygon | eip155:137 | Mainnet |\n| Polygon Amoy | eip155:80002 | Testnet |\n| Solana | solana:mainnet | Supported |\n| Solana Devnet | solana:devnet | Testnet |\n\n## Deployment\n\n| Service | URL |\n|---|---|\n| Facilitator | `https://pincerpayfacilitator-production.up.railway.app` |\n| Dashboard | `https://pincerpay.com` |\n\nThe facilitator is deployed to Railway via Docker. The dashboard is deployed to Vercel. Solana is the primary chain (devnet). Base and Polygon are supported as optional secondary chains.\n\n## Tech Stack\n\n- **Runtime:** Node.js 22 (pnpm monorepo + Turborepo)\n- **Facilitator:** Hono + @x402/core + @x402/evm + @x402/svm + viem\n- **Dashboard:** Next.js 15 + Tailwind CSS + Supabase Auth\n- **Database:** PostgreSQL (Supabase) + Drizzle ORM\n- **CI:** GitHub Actions (typecheck → test → build)\n- **Protocols:** x402 (Coinbase)\n\n## Testing\n\n```bash\npnpm test\n```\n\n47 tests across 5 suites (core, agent, merchant, facilitator).\n\n## Examples\n\n| Example | Description |\n|---|---|\n| [`examples/express-merchant`](examples/express-merchant/) | Express merchant with PincerPay middleware |\n| [`examples/agent-weather`](examples/agent-weather/) | AI agent paying for weather API data |\n| [`pincerpay-agent-demo`](https://github.com/ds1/pincerpay-agent-demo) | Standalone agent demo repository |\n\n## Community\n\n- [Discord](https://discord.gg/sZkYQTqT23)\n- [@pincerpay on X](https://x.com/pincerpay)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds1%2Fpincerpay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fds1%2Fpincerpay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds1%2Fpincerpay/lists"}