[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H1HTMYW228VRN4G6QJN56F":3,"skill-same:01M6H1HTMYW228VRN4G6QJN56F":105},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6H1HTMYW228VRN4G6QJN56F","x402-client",null,"Make paid API requests using the x402 HTTP payment protocol (USDC on Base Sepolia). Use when you need to access x402-protected services, pay for API calls with crypto, or perform web searches via an x402 search gateway. Handles wallet setup, payment signing, and request retry automatically.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"x402 client","x402","client","paid","http","when","for","signing","calls","pay","you","retry","with","usdc","crypto","Wallet","use","access","api","services","gateway","search","2026-11-10 10:12:30",false,"---\nname: x402-client\ndescription: Make paid API requests using the x402 HTTP payment protocol (USDC on Base Sepolia). Use when you need to access x402-protected services, pay for API calls with crypto, or perform web searches via an x402 search gateway. Handles wallet setup, payment signing, and request retry automatically.\n---\n\n# x402 Client\n\nMake HTTP requests to x402-protected APIs. The x402 protocol uses HTTP 402 responses to request payment — this skill handles signing USDC payments and retrying automatically.\n\n## Prerequisites\n\n- Node.js 18+ installed\n- A Base Sepolia wallet with ETH (gas) and USDC (payments)\n\n## First-Time Setup\n\n### 1. Install dependencies\n\n```bash\nbash \u003Cskill-dir>\u002Fscripts\u002Fsetup.sh\n```\n\nThis installs the x402 SDK to `~\u002F.x402-client\u002F`. Only needed once.\n\n### 2. Generate a wallet (if you don't have one)\n\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Fwallet-gen.mjs --out ~\u002F.x402-client\u002Fwallet.key\n```\n\n### 3. Fund the wallet\n\nGet testnet tokens from faucets:\n\n- **Base Sepolia ETH** (gas): https:\u002F\u002Fwww.alchemy.com\u002Ffaucets\u002Fbase-sepolia\n- **Base Sepolia USDC** (payments): https:\u002F\u002Ffaucet.circle.com\u002F → select Base Sepolia + USDC\n\nSend both to the wallet address printed by wallet-gen.\n\n### 4. Store the key\n\nSet the environment variable for future use:\n\n```bash\nexport X402_PRIVATE_KEY=$(cat ~\u002F.x402-client\u002Fwallet.key)\n```\n\nOr pass `--key-file ~\u002F.x402-client\u002Fwallet.key` to each request.\n\n## Making Paid Requests\n\nUse `x402-fetch.mjs` to make any x402-paid HTTP request:\n\n```bash\n# Search the web ($0.001 USDC per query)\nnode \u003Cskill-dir>\u002Fscripts\u002Fx402-fetch.mjs \\\n  \"https:\u002F\u002F\u003Cservice-url>\u002Fweb\u002Fsearch?q=latest+AI+news&count=5\" \\\n  --key-file ~\u002F.x402-client\u002Fwallet.key\n```\n\nThe script automatically:\n1. Makes the HTTP request\n2. If 402 received, parses payment requirements\n3. Signs a USDC payment with your wallet\n4. Retries with the payment header\n5. Outputs the response JSON to stdout\n\nAll scripts must be run from `~\u002F.x402-client\u002F` (where node_modules lives):\n\n```bash\ncd ~\u002F.x402-client && node \u003Cskill-dir>\u002Fscripts\u002Fx402-fetch.mjs \"\u003Curl>\" --key-file wallet.key\n```\n\n## Known Services\n\nSee [references\u002Fservices.md](references\u002Fservices.md) for a list of known x402 endpoints including a web search service.\n\n## Troubleshooting\n\n- **\"insufficient funds\"**: Wallet needs more USDC or ETH. Use faucets above.\n- **402 with no auto-payment**: Ensure setup.sh was run and you're executing from `~\u002F.x402-client\u002F`.\n- **Tunnel URL not working**: The service URL may have changed. Ask the service operator or check `\u002Fhealth`.\n","# x402 Client\n\nMake HTTP requests to x402-protected APIs. The x402 protocol uses HTTP 402 responses to request payment — this skill handles signing USDC payments and retrying automatically.\n\n## Prerequisites\n\n- Node.js 18+ installed\n- A Base Sepolia wallet with ETH (gas) and USDC (payments)\n\n## First-Time Setup\n\n### 1. Install dependencies\n\n```bash\nbash \u003Cskill-dir>\u002Fscripts\u002Fsetup.sh\n```\n\nThis installs the x402 SDK to `~\u002F.x402-client\u002F`. Only needed once.\n\n### 2. Generate a wallet (if you don't have one)\n\n```bash\nnode \u003Cskill-dir>\u002Fscripts\u002Fwallet-gen.mjs --out ~\u002F.x402-client\u002Fwallet.key\n```\n\n### 3. Fund the wallet\n\nGet testnet tokens from faucets:\n\n- **Base Sepolia ETH** (gas): https:\u002F\u002Fwww.alchemy.com\u002Ffaucets\u002Fbase-sepolia\n- **Base Sepolia USDC** (payments): https:\u002F\u002Ffaucet.circle.com\u002F → select Base Sepolia + USDC\n\nSend both to the wallet address printed by wallet-gen.\n\n### 4. Store the key\n\nSet the environment variable for future use:\n\n```bash\nexport X402_PRIVATE_KEY=$(cat ~\u002F.x402-client\u002Fwallet.key)\n```\n\nOr pass `--key-file ~\u002F.x402-client\u002Fwallet.key` to each request.\n\n## Making Paid Requests\n\nUse `x402-fetch.mjs` to make any x402-paid HTTP request:\n\n```bash\n# Search the web ($0.001 USDC per query)\nnode \u003Cskill-dir>\u002Fscripts\u002Fx402-fetch.mjs \\\n  \"https:\u002F\u002F\u003Cservice-url>\u002Fweb\u002Fsearch?q=latest+AI+news&count=5\" \\\n  --key-file ~\u002F.x402-client\u002Fwallet.key\n```\n\nThe script automatically:\n1. Makes the HTTP request\n2. If 402 received, parses payment requirements\n3. Signs a USDC payment with your wallet\n4. Retries with the payment header\n5. Outputs the response JSON to stdout\n\nAll scripts must be run from `~\u002F.x402-client\u002F` (where node_modules lives):\n\n```bash\ncd ~\u002F.x402-client && node \u003Cskill-dir>\u002Fscripts\u002Fx402-fetch.mjs \"\u003Curl>\" --key-file wallet.key\n```\n\n## Known Services\n\nSee [references\u002Fservices.md](references\u002Fservices.md) for a list of known x402 endpoints including a web search service.\n\n## Troubleshooting\n\n- **\"insufficient funds\"**: Wallet needs more USDC or ETH. Use faucets above.\n- **402 with no auto-payment**: Ensure setup.sh was run and you're executing from `~\u002F.x402-client\u002F`.\n- **Tunnel URL not working**: The service URL may have changed. Ask the service operator or check `\u002Fhealth`.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002Fx402-private-search",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-13 02:31:19",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill x402-client",{"tool":61,"command":62},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill x402-client",{"tool":64,"command":65},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill x402-client","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002FSKILL.md",true,[69,75,79,85,89,93,97,101],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"_meta.json","REFERENCE","参考文档",138,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002F_meta.json",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fservices.md",1036,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002Freferences\u002Fservices.md",{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"scripts\u002Fsetup.sh","SCRIPT","脚本",1059,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002Fscripts\u002Fsetup.sh",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Fwallet-gen.mjs",1098,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002Fscripts\u002Fwallet-gen.mjs",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fx402-fetch.mjs",3580,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002Fscripts\u002Fx402-fetch.mjs",{"path":94,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":95,"sourceHtmlUrl":96},"skill-card.md",2210,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002Fskill-card.md",{"path":98,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":99,"sourceHtmlUrl":100},"SOURCE.md",266,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002FSOURCE.md",{"path":102,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":103,"sourceHtmlUrl":104},"TRUST.auto.yaml",2305,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002Fx402-private-search\u002FTRUST.auto.yaml",[106,135,156,172,185,195],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":111,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":41},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":139,"licenseFileUrl":140,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":41},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[144,145,146,37,147,148,149,150,151,152,25,153,154,155],"mexc spot websocket","spot","websocket","workflows","public","listen","streams","depth","keys","api keys","maintenance","protobuf",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":139,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":41},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[164,145,165,166,26,34,167,153,25,152,168,169,170,148,171,147,37],"mexc spot rest","REST","admin","requests","actions","secure","data","orders",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":139,"licenseFileUrl":176,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":41},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[180,181,146,182,183,154,25,184,151,150,148,147],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":186,"name":187,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":41},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[192,193,194],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":110,"licenseFileUrl":199,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":41},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[203,204,205,206,207,208,209,35,210,211,212],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]