[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GPCNWF3CADHPK5PCEC575F":3,"skill-same:01M6GPCNWF3CADHPK5PCEC575F":116},{"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":28,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6GPCNWF3CADHPK5PCEC575F","zapper-api",null,"Query DeFi portfolios, token holdings, NFTs, transactions, and prices via Zapper API. Supports 50+ chains. Use when user asks about wallet balances, DeFi positions, NFT collections, token prices, or transaction history.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",80,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"api","zapper api","zapper","transaction","when","balances","holdings","prices","about","via","collections","nfts","token","nft","https","positions","query","Wallet","use","user","python3","history","transactions","defi","2026-11-10 10:12:30",false,"---\r\nname: zapper-api\r\ndescription: Query DeFi portfolios, token holdings, NFTs, transactions, and prices via Zapper API. Supports 50+ chains. Use when user asks about wallet balances, DeFi positions, NFT collections, token prices, or transaction history.\r\nhomepage: https:\u002F\u002Fzapper.xyz\r\nmetadata: {\"openclaw\":{\"emoji\":\"?\",\"requires\":{\"bins\":[\"python3\"]},\"primaryEnv\":\"ZAPPER_API_KEY\"}}\r\n---\r\n\r\n# Zapper API\r\n\r\nQuery DeFi portfolios, NFTs, and transactions across 50+ chains using Zapper's GraphQL API.\r\n\r\n## Setup\r\n\r\n1. Get API key from [Zapper Dashboard](https:\u002F\u002Fzapper.xyz\u002Fdevelopers) (free tier available)\r\n2. Configure in `~\u002F.config\u002Fzapper\u002Faddresses.json`:\r\n   ```json\r\n   {\r\n     \"apiKey\": \"your-api-key\",\r\n     \"wallets\": [\r\n       {\"label\": \"Main\", \"address\": \"0x...\"},\r\n       {\"label\": \"DeFi\", \"address\": \"0x...\"}\r\n     ]\r\n   }\r\n   ```\r\n\r\nOr set environment variable: `export ZAPPER_API_KEY=\"your-api-key\"`\r\n\r\n## Commands\r\n\r\n| Command | Description | Example |\r\n|---------|-------------|---------|\r\n| `portfolio \u003Caddress>` | Token + DeFi totals | `zapper.py portfolio 0x123...` |\r\n| `tokens \u003Caddress>` | Detailed token holdings | `zapper.py tokens 0x123...` |\r\n| `apps \u003Caddress>` | DeFi positions (LPs, lending, staking) | `zapper.py apps 0x123...` |\r\n| `nfts \u003Caddress>` | NFT holdings by value | `zapper.py nfts 0x123...` |\r\n| `tx \u003Caddress>` | Recent transactions (30 days) | `zapper.py tx 0x123...` |\r\n| `price \u003Csymbol>` | Token price lookup | `zapper.py price ETH` |\r\n| `claimables \u003Caddress>` | Unclaimed rewards | `zapper.py claimables 0x123...` |\r\n| `config` | Show configuration | `zapper.py config` |\r\n\r\n## Options\r\n\r\n| Flag | Commands | Description |\r\n|------|----------|-------------|\r\n| `--24h` | portfolio, tokens | Show 24h price changes |\r\n| `--short` | portfolio | Output only total value |\r\n| `--per-wallet` | portfolio | Show each configured wallet separately |\r\n| `--json` | all | Output raw JSON |\r\n| `--limit N` | most | Max items to display |\r\n\r\n## Usage\r\n\r\n```bash\r\n# Portfolio summary\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS\r\n\r\n# With 24h price changes\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --24h\r\n\r\n# Just total value\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --short\r\n\r\n# Per-wallet breakdown\r\npython3 scripts\u002Fzapper.py portfolio --per-wallet\r\n\r\n# Token holdings with prices\r\npython3 scripts\u002Fzapper.py tokens 0xADDRESS --24h\r\n\r\n# DeFi positions\r\npython3 scripts\u002Fzapper.py apps 0xADDRESS\r\n\r\n# NFT holdings\r\npython3 scripts\u002Fzapper.py nfts 0xADDRESS\r\n\r\n# Recent transactions\r\npython3 scripts\u002Fzapper.py tx 0xADDRESS\r\n\r\n# Token price\r\npython3 scripts\u002Fzapper.py price ETH\r\n\r\n# Unclaimed rewards\r\npython3 scripts\u002Fzapper.py claimables 0xADDRESS\r\n\r\n# JSON output\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --json\r\n```\r\n\r\n## Wallet Labels\r\n\r\nUse configured wallet labels instead of addresses:\r\n\r\n```bash\r\npython3 scripts\u002Fzapper.py portfolio \"Main\"\r\npython3 scripts\u002Fzapper.py tokens \"DeFi\"\r\n```\r\n\r\n## Supported Tokens (price command)\r\n\r\nETH, WETH, USDC, USDT, DAI, WBTC, LINK, UNI, AAVE, MKR\r\n\r\n## Supported Chains\r\n\r\nEthereum, Base, Arbitrum, Optimism, Polygon, Solana, BNB Chain, Avalanche, zkSync, Linea, Scroll, Blast, and 40+ more.\r\n\r\n## Notes\r\n\r\n- Free tier API key available at [zapper.xyz\u002Fdevelopers](https:\u002F\u002Fzapper.xyz\u002Fdevelopers)\r\n- Rate limits apply - avoid rapid repeated requests\r\n- NFT valuations based on floor prices\r\n- Transaction history limited to 30 days\r\n\r\n## References\r\n\r\n- [API.md](references\u002FAPI.md) - GraphQL query examples\r\n- [Zapper Docs](https:\u002F\u002Fbuild.zapper.xyz\u002Fdocs\u002Fapi\u002F) - Official API documentation\r\n","# Zapper API\r\n\r\nQuery DeFi portfolios, NFTs, and transactions across 50+ chains using Zapper's GraphQL API.\r\n\r\n## Setup\r\n\r\n1. Get API key from [Zapper Dashboard](https:\u002F\u002Fzapper.xyz\u002Fdevelopers) (free tier available)\r\n2. Configure in `~\u002F.config\u002Fzapper\u002Faddresses.json`:\r\n   ```json\r\n   {\r\n     \"apiKey\": \"your-api-key\",\r\n     \"wallets\": [\r\n       {\"label\": \"Main\", \"address\": \"0x...\"},\r\n       {\"label\": \"DeFi\", \"address\": \"0x...\"}\r\n     ]\r\n   }\r\n   ```\r\n\r\nOr set environment variable: `export ZAPPER_API_KEY=\"your-api-key\"`\r\n\r\n## Commands\r\n\r\n| Command | Description | Example |\r\n|---------|-------------|---------|\r\n| `portfolio \u003Caddress>` | Token + DeFi totals | `zapper.py portfolio 0x123...` |\r\n| `tokens \u003Caddress>` | Detailed token holdings | `zapper.py tokens 0x123...` |\r\n| `apps \u003Caddress>` | DeFi positions (LPs, lending, staking) | `zapper.py apps 0x123...` |\r\n| `nfts \u003Caddress>` | NFT holdings by value | `zapper.py nfts 0x123...` |\r\n| `tx \u003Caddress>` | Recent transactions (30 days) | `zapper.py tx 0x123...` |\r\n| `price \u003Csymbol>` | Token price lookup | `zapper.py price ETH` |\r\n| `claimables \u003Caddress>` | Unclaimed rewards | `zapper.py claimables 0x123...` |\r\n| `config` | Show configuration | `zapper.py config` |\r\n\r\n## Options\r\n\r\n| Flag | Commands | Description |\r\n|------|----------|-------------|\r\n| `--24h` | portfolio, tokens | Show 24h price changes |\r\n| `--short` | portfolio | Output only total value |\r\n| `--per-wallet` | portfolio | Show each configured wallet separately |\r\n| `--json` | all | Output raw JSON |\r\n| `--limit N` | most | Max items to display |\r\n\r\n## Usage\r\n\r\n```bash\r\n# Portfolio summary\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS\r\n\r\n# With 24h price changes\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --24h\r\n\r\n# Just total value\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --short\r\n\r\n# Per-wallet breakdown\r\npython3 scripts\u002Fzapper.py portfolio --per-wallet\r\n\r\n# Token holdings with prices\r\npython3 scripts\u002Fzapper.py tokens 0xADDRESS --24h\r\n\r\n# DeFi positions\r\npython3 scripts\u002Fzapper.py apps 0xADDRESS\r\n\r\n# NFT holdings\r\npython3 scripts\u002Fzapper.py nfts 0xADDRESS\r\n\r\n# Recent transactions\r\npython3 scripts\u002Fzapper.py tx 0xADDRESS\r\n\r\n# Token price\r\npython3 scripts\u002Fzapper.py price ETH\r\n\r\n# Unclaimed rewards\r\npython3 scripts\u002Fzapper.py claimables 0xADDRESS\r\n\r\n# JSON output\r\npython3 scripts\u002Fzapper.py portfolio 0xADDRESS --json\r\n```\r\n\r\n## Wallet Labels\r\n\r\nUse configured wallet labels instead of addresses:\r\n\r\n```bash\r\npython3 scripts\u002Fzapper.py portfolio \"Main\"\r\npython3 scripts\u002Fzapper.py tokens \"DeFi\"\r\n```\r\n\r\n## Supported Tokens (price command)\r\n\r\nETH, WETH, USDC, USDT, DAI, WBTC, LINK, UNI, AAVE, MKR\r\n\r\n## Supported Chains\r\n\r\nEthereum, Base, Arbitrum, Optimism, Polygon, Solana, BNB Chain, Avalanche, zkSync, Linea, Scroll, Blast, and 40+ more.\r\n\r\n## Notes\r\n\r\n- Free tier API key available at [zapper.xyz\u002Fdevelopers](https:\u002F\u002Fzapper.xyz\u002Fdevelopers)\r\n- Rate limits apply - avoid rapid repeated requests\r\n- NFT valuations based on floor prices\r\n- Transaction history limited to 30 days\r\n\r\n## References\r\n\r\n- [API.md](references\u002FAPI.md) - GraphQL query examples\r\n- [Zapper Docs](https:\u002F\u002Fbuild.zapper.xyz\u002Fdocs\u002Fapi\u002F) - Official API documentation\r\n",{"name":5,"homepage":58,"metadata":59,"description":7},"https:\u002F\u002Fzapper.xyz",{"openclaw":60},{"emoji":61,"requires":62,"primaryEnv":64},"?",{"bins":63},[49],"ZAPPER_API_KEY","main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fanalytics\u002Fzapper-api",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-11 08:47:40",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill zapper-api",{"tool":80,"command":81},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill zapper-api",{"tool":83,"command":84},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill zapper-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002FSKILL.md",true,[88,94,98,104,108,112],{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"_meta.json","REFERENCE","参考文档",129,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002F_meta.json",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002FAPI.md",4829,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002Freferences\u002FAPI.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fzapper.py","SCRIPT","脚本",26218,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002Fscripts\u002Fzapper.py",{"path":105,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":106,"sourceHtmlUrl":107},"skill-card.md",2364,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002Fskill-card.md",{"path":109,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":110,"sourceHtmlUrl":111},"SOURCE.md",238,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002FSOURCE.md",{"path":113,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":114,"sourceHtmlUrl":115},"TRUST.auto.yaml",2186,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fanalytics\u002Fzapper-api\u002FTRUST.auto.yaml",[117,146,168,185,198,208],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":122,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":53},"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",[],[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":150,"licenseFileUrl":151,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":53},"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",[],[155,156,157,29,158,159,160,161,162,163,164,165,166,167],"mexc spot websocket","spot","websocket","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":150,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":53},"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",[],[176,156,177,178,179,46,180,165,164,163,181,182,183,159,184,158,29],"mexc spot rest","REST","admin","signing","requests","actions","secure","data","orders",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":150,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":53},"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",[],[193,194,157,195,196,166,164,197,162,161,159,158],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":199,"name":200,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":204,"publishedAt":53},"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",[],[205,206,207],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":212,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":53},"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",[],[216,217,218,219,220,221,222,47,223,224,225],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]