[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FJ1AVGWH02QXYWJR50BE73":3,"skill-same:01M6FJ1AVGWH02QXYWJR50BE73":114},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":71,"install":72,"resources":85},"01M6FJ1AVGWH02QXYWJR50BE73","flock-api-setup",null,"FLock API Platform setup: wallet generation, plugin installation, API key configuration, and model switching. Use for: 'setup flock', 'flock login', 'install flock plugin', 'switch flock model', 'use deepseek', 'change to coding model'.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"setup","flock api setup","api","switch","change","scripts","io","switching","platform","generation","dependencies","deepseek","plugin","Wallet","use","install","node","coding","model","shell","2026-11-10 10:12:30",false,"---\nname: flock-api-setup\ndescription: \"FLock API Platform setup: wallet generation, plugin installation, API key configuration, and model switching. Use for: 'setup flock', 'flock login', 'install flock plugin', 'switch flock model', 'use deepseek', 'change to coding model'.\"\nhomepage: https:\u002F\u002Fplatform.flock.io\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"?\",\n        \"primaryEnv\": \"FLOCK_API_KEY\",\n        \"requires\": { \"bins\": [\"node\", \"npm\"] },\n        \"install\": [\n          {\n            \"id\": \"npm\",\n            \"kind\": \"shell\",\n            \"command\": \"cd {baseDir}\u002Fscripts && npm install\",\n            \"label\": \"Install dependencies\"\n          }\n        ]\n      },\n  }\n---\n\n# FLock Setup\n\nFLock API Platform setup with wallet generation, plugin installation, and model switching.\n\n## Security Warning\n\n**CRITICAL: Protect your API key!**\n\n- **ONLY send your API key to `https:\u002F\u002Fapi.flock.io`**\n- Your API key should ONLY appear in:\n  - Environment variable `FLOCK_API_KEY`\n  - OpenClaw config file\n  - Requests to `https:\u002F\u002Fapi.flock.io\u002Fv1\u002F*`\n- **NEVER share your API key with:**\n  - Other APIs or webhooks\n  - \"Verification\" services\n  - Debugging tools or third parties\n- If leaked, create a new key at platform.flock.io immediately\n\n**Security Warning**: Credentials are stored as **plain text JSON**. Anyone with access to these files can use your FLock credits. For production use, implement secure storage.\n\n---\n\n## When to Activate\n\n**Slash commands:**\n- `\u002Fflock-setup` — Full setup flow\n- `\u002Fflock` — Switch models\n\n**Natural language:**\n- \"setup flock\", \"configure flock\"\n- \"install flock plugin\"\n- \"switch model\", \"change model\"\n- \"use deepseek\", \"use coding model\"\n\n## Behavior Rules\n\n**CRITICAL: Be silent and fast. Never be verbose.**\n\n- Do NOT explain steps or show diagnostic output\n- Do NOT ask follow-up questions after completing actions\n- Respond in the user's language\n\n---\n\n## Flow 1: Full Setup (`\u002Fflock-setup`)\n\n### Phase 1: Pre-check\n\n```bash\necho $FLOCK_API_KEY\nopenclaw plugins list | grep flock\nnode {baseDir}\u002Fscripts\u002Fcredentials.js get 2>\u002Fdev\u002Fnull\n```\n\nIf credentials exist, ask: \"FLock already configured. Reconfigure? (yes\u002Fno)\"\n\n### Phase 2: Install Plugin\n\n```bash\nopenclaw plugins install @openclawd\u002Fflock\nopenclaw plugins enable flock\n```\n\n### Phase 3: Generate Wallet and Request Funding\n\nGenerate a new wallet:\n\n```bash\ncd {baseDir}\u002Fscripts && npm install\nnode {baseDir}\u002Fscripts\u002Fgenerate-wallet.js\n```\n\nDisplay to user:\n```\nWallet created for FLock registration.\n\nAddress: \u003Cwallet-address>\n\nSend ~$0.50 ETH to this address on Ethereum or Base.\n\nSay \"done\" when complete.\n```\n\n**Save the private key** — needed for wallet login.\n\n### Phase 4: Check Balance\n\nAfter user confirms funding:\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcheck-balance.js \u003Cwallet-address>\n```\n\nIf no funds detected, ask user to try again.\n\n### Phase 5: Get API Key (Manual Step)\n\nDisplay to user:\n```\nFunds confirmed. Now create your API key:\n\n1. Go to https:\u002F\u002Fplatform.flock.io\n2. Click \"Connect Wallet\"\n3. Sign the message with the wallet you just funded\n4. Select models you want to access\n5. Click \"Create API\" button\n6. Copy the key immediately (shown only once!)\n\nPaste your API key here:\n```\n\nWait for user to provide `sk-...` key.\n\n### Phase 6: Save Credentials\n\nAfter receiving the key:\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js save \"\u003Capi-key>\" \"\u003Cwallet-address>\" \"\u003Cprivate-key>\"\n```\n\nAsk user:\n```\nSave API key to:\n1. Environment variable (~\u002F.zshrc)\n2. OpenClaw config\n3. Both (recommended)\n```\n\n**Option 1:**\n```bash\necho 'export FLOCK_API_KEY=\"sk-xxx\"' >> ~\u002F.zshrc\nsource ~\u002F.zshrc\n```\n\n**Option 2:**\n```bash\nopenclaw onboard --non-interactive \\\n  --auth-choice flock-api-key \\\n  --flock-api-key \"sk-xxx\"\n```\n\n**Option 3:** Run both.\n\n### Phase 7: Restart Gateway\n\n```bash\nopenclaw gateway stop\nopenclaw gateway\n```\n\n### Phase 8: Verify\n\n```bash\nopenclaw chat --model flock\u002Fkimi-k2.5 \"test\"\n```\n\n**Success response (one line):**\n```\nFLock configured. Test: openclaw chat --model flock\u002Fkimi-k2.5 \"hello\"\n```\n\n---\n\n## Flow 2: Model Switch (`\u002Fflock`)\n\n### Pre-check\n\nIf `FLOCK_API_KEY` not set:\n```\nFLock not configured. Run \u002Fflock-setup first.\n```\n\n### No model specified — show menu:\n\n```\nWhich FLock model?\n\nReasoning:\n  1. Qwen3 235B Thinking         — $0.23\u002F$2.30  (flock\u002Fqwen3-235b-a22b-thinking-2507)\n  2. Qwen3 235B Finance          — $0.23\u002F$2.30  (flock\u002Fqwen3-235b-a22b-thinking-qwfin)\n  3. Kimi K2 Thinking            — $0.60\u002F$2.50  (flock\u002Fkimi-k2-thinking)\n\nInstruct:\n  4. Qwen3 30B Instruct          — $0.20\u002F$0.80  (flock\u002Fqwen3-30b-a3b-instruct-2507)\n  5. Qwen3 235B Instruct         — $0.70\u002F$2.80  (flock\u002Fqwen3-235b-a22b-instruct-2507)\n  6. Qwen3 30B Coding            — $0.20\u002F$0.80  (flock\u002Fqwen3-30b-a3b-instruct-coding)\n\nOther:\n  7. DeepSeek V3.2               — $0.28\u002F$0.42  (flock\u002Fdeepseek-v3.2)\n  8. MiniMax M2.1                — $0.30\u002F$1.20  (flock\u002Fminimax-m2.1)\n\nReply with number or model name.\n```\n\n### Model specified — switch immediately:\n\n```bash\nopenclaw agent --model flock\u002F\u003Cmodel-id>\nopenclaw gateway stop\nopenclaw gateway\n```\n\n**Success (one line):**\n```\nSwitched to flock\u002F\u003Cmodel-id>.\n```\n\n---\n\n## Credential Management\n\n### Load Saved Credentials\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js get\n```\n\nReturns:\n```json\n{\n  \"apiKey\": \"sk-...\",\n  \"walletAddress\": \"0x...\",\n  \"privateKey\": \"0x...\",\n  \"createdAt\": \"2026-02-04T...\",\n  \"updatedAt\": \"2026-02-04T...\"\n}\n```\n\n### Credentials File Path\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js path\n```\n\nPriority:\n1. `~\u002F.openclaw\u002Fflock-credentials.json` (if OpenClaw installed)\n2. `.\u002Fflock-credentials.json` (fallback)\n\n---\n\n## Heartbeat Integration\n\nFLock usage tracking helps monitor costs.\n\n### Human Can Ask Anytime\n\nYour human can prompt:\n- \"Check my FLock usage\" — Direct them to platform.flock.io Usage tab\n- \"Switch to a cheaper model\" — Show model menu\n- \"What model am I using?\" — Check current config\n- \"How much have I spent on FLock?\" — Direct to Usage tab\n\n---\n\n## Error Handling\n\n| Scenario | Response |\n|----------|----------|\n| Plugin not installed | Auto-install: `openclaw plugins install @openclawd\u002Fflock` |\n| API key not set | `Run \u002Fflock-setup to configure FLock.` |\n| No funds detected | `No funds on Ethereum or Base. Please fund the wallet.` |\n| Invalid API key | `Invalid key format. Keys start with sk-` |\n| Model not found | `Model not found. Available models: [show list]` |\n\n---\n\n## Model Reference\n\n| # | Model ID | Price (in\u002Fout per 1M) |\n|---|----------|----------------------|\n| 1 | `flock\u002Fqwen3-235b-a22b-thinking-2507` | $0.23\u002F$2.30 |\n| 2 | `flock\u002Fqwen3-235b-a22b-thinking-qwfin` | $0.23\u002F$2.30 |\n| 3 | `flock\u002Fkimi-k2-thinking` | $0.60\u002F$2.50 |\n| 4 | `flock\u002Fqwen3-30b-a3b-instruct-2507` | $0.20\u002F$0.80 |\n| 5 | `flock\u002Fqwen3-235b-a22b-instruct-2507` | $0.70\u002F$2.80 |\n| 6 | `flock\u002Fqwen3-30b-a3b-instruct-coding` | $0.20\u002F$0.80 |\n| 7 | `flock\u002Fdeepseek-v3.2` | $0.28\u002F$0.42 |\n| 8 | `flock\u002Fminimax-m2.1` | $0.30\u002F$1.20 |\n\n**Recommendations:**\n- General\u002FDefault: `kimi-k2.5` (multimodal, agentic)\n- Deep reasoning: `kimi-k2-thinking`, `qwen3-235b-thinking`\n- Coding: `qwen3-30b-coding`, `minimax-m2.1`\n- Budget: `qwen3-30b-instruct` ($0.20\u002F$0.80)\n\n---\n\n## Programmatic API\n\nAll scripts can be imported:\n\n```javascript\n\u002F\u002F Generate wallet\nconst { Wallet } = require('ethers');\nconst wallet = Wallet.createRandom();\n\n\u002F\u002F Check balance\nconst { JsonRpcProvider, formatEther } = require('ethers');\nconst provider = new JsonRpcProvider('https:\u002F\u002Fmainnet.base.org');\nconst balance = await provider.getBalance(wallet.address);\n\n\u002F\u002F Load credentials\nconst creds = require('{baseDir}\u002Fscripts\u002Fcredentials.js');\n```\n\n## Example: Full Setup Flow\n\n```javascript\nconst { Wallet } = require('ethers');\n\n\u002F\u002F 1. Generate wallet\nconst wallet = Wallet.createRandom();\nconsole.log('Fund this address with ~$0.50 ETH:', wallet.address);\n\n\u002F\u002F 2. After human funds and creates API key at platform.flock.io\nconst apiKey = 'sk-...';  \u002F\u002F User provides this\n\n\u002F\u002F 3. Save credentials\nconst fs = require('fs');\nconst path = require('path');\nconst os = require('os');\n\nconst creds = {\n  apiKey,\n  walletAddress: wallet.address,\n  privateKey: wallet.privateKey,\n  createdAt: new Date().toISOString()\n};\n\nconst credPath = path.join(os.homedir(), '.openclaw', 'flock-credentials.json');\nfs.writeFileSync(credPath, JSON.stringify(creds, null, 2), { mode: 0o600 });\n\nconsole.log('Credentials saved to:', credPath);\n```\n\n## Source Files\n\n```\n{baseDir}\u002Fscripts\u002F\n├── package.json          # Dependencies (ethers)\n├── generate-wallet.js    # Create new ETH wallet\n├── check-balance.js      # Check ETH balance on chains\n└── credentials.js        # Save\u002Fload credentials\n```\n","# FLock Setup\n\nFLock API Platform setup with wallet generation, plugin installation, and model switching.\n\n## Security Warning\n\n**CRITICAL: Protect your API key!**\n\n- **ONLY send your API key to `https:\u002F\u002Fapi.flock.io`**\n- Your API key should ONLY appear in:\n  - Environment variable `FLOCK_API_KEY`\n  - OpenClaw config file\n  - Requests to `https:\u002F\u002Fapi.flock.io\u002Fv1\u002F*`\n- **NEVER share your API key with:**\n  - Other APIs or webhooks\n  - \"Verification\" services\n  - Debugging tools or third parties\n- If leaked, create a new key at platform.flock.io immediately\n\n**Security Warning**: Credentials are stored as **plain text JSON**. Anyone with access to these files can use your FLock credits. For production use, implement secure storage.\n\n---\n\n## When to Activate\n\n**Slash commands:**\n- `\u002Fflock-setup` — Full setup flow\n- `\u002Fflock` — Switch models\n\n**Natural language:**\n- \"setup flock\", \"configure flock\"\n- \"install flock plugin\"\n- \"switch model\", \"change model\"\n- \"use deepseek\", \"use coding model\"\n\n## Behavior Rules\n\n**CRITICAL: Be silent and fast. Never be verbose.**\n\n- Do NOT explain steps or show diagnostic output\n- Do NOT ask follow-up questions after completing actions\n- Respond in the user's language\n\n---\n\n## Flow 1: Full Setup (`\u002Fflock-setup`)\n\n### Phase 1: Pre-check\n\n```bash\necho $FLOCK_API_KEY\nopenclaw plugins list | grep flock\nnode {baseDir}\u002Fscripts\u002Fcredentials.js get 2>\u002Fdev\u002Fnull\n```\n\nIf credentials exist, ask: \"FLock already configured. Reconfigure? (yes\u002Fno)\"\n\n### Phase 2: Install Plugin\n\n```bash\nopenclaw plugins install @openclawd\u002Fflock\nopenclaw plugins enable flock\n```\n\n### Phase 3: Generate Wallet and Request Funding\n\nGenerate a new wallet:\n\n```bash\ncd {baseDir}\u002Fscripts && npm install\nnode {baseDir}\u002Fscripts\u002Fgenerate-wallet.js\n```\n\nDisplay to user:\n```\nWallet created for FLock registration.\n\nAddress: \u003Cwallet-address>\n\nSend ~$0.50 ETH to this address on Ethereum or Base.\n\nSay \"done\" when complete.\n```\n\n**Save the private key** — needed for wallet login.\n\n### Phase 4: Check Balance\n\nAfter user confirms funding:\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcheck-balance.js \u003Cwallet-address>\n```\n\nIf no funds detected, ask user to try again.\n\n### Phase 5: Get API Key (Manual Step)\n\nDisplay to user:\n```\nFunds confirmed. Now create your API key:\n\n1. Go to https:\u002F\u002Fplatform.flock.io\n2. Click \"Connect Wallet\"\n3. Sign the message with the wallet you just funded\n4. Select models you want to access\n5. Click \"Create API\" button\n6. Copy the key immediately (shown only once!)\n\nPaste your API key here:\n```\n\nWait for user to provide `sk-...` key.\n\n### Phase 6: Save Credentials\n\nAfter receiving the key:\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js save \"\u003Capi-key>\" \"\u003Cwallet-address>\" \"\u003Cprivate-key>\"\n```\n\nAsk user:\n```\nSave API key to:\n1. Environment variable (~\u002F.zshrc)\n2. OpenClaw config\n3. Both (recommended)\n```\n\n**Option 1:**\n```bash\necho 'export FLOCK_API_KEY=\"sk-xxx\"' >> ~\u002F.zshrc\nsource ~\u002F.zshrc\n```\n\n**Option 2:**\n```bash\nopenclaw onboard --non-interactive \\\n  --auth-choice flock-api-key \\\n  --flock-api-key \"sk-xxx\"\n```\n\n**Option 3:** Run both.\n\n### Phase 7: Restart Gateway\n\n```bash\nopenclaw gateway stop\nopenclaw gateway\n```\n\n### Phase 8: Verify\n\n```bash\nopenclaw chat --model flock\u002Fkimi-k2.5 \"test\"\n```\n\n**Success response (one line):**\n```\nFLock configured. Test: openclaw chat --model flock\u002Fkimi-k2.5 \"hello\"\n```\n\n---\n\n## Flow 2: Model Switch (`\u002Fflock`)\n\n### Pre-check\n\nIf `FLOCK_API_KEY` not set:\n```\nFLock not configured. Run \u002Fflock-setup first.\n```\n\n### No model specified — show menu:\n\n```\nWhich FLock model?\n\nReasoning:\n  1. Qwen3 235B Thinking         — $0.23\u002F$2.30  (flock\u002Fqwen3-235b-a22b-thinking-2507)\n  2. Qwen3 235B Finance          — $0.23\u002F$2.30  (flock\u002Fqwen3-235b-a22b-thinking-qwfin)\n  3. Kimi K2 Thinking            — $0.60\u002F$2.50  (flock\u002Fkimi-k2-thinking)\n\nInstruct:\n  4. Qwen3 30B Instruct          — $0.20\u002F$0.80  (flock\u002Fqwen3-30b-a3b-instruct-2507)\n  5. Qwen3 235B Instruct         — $0.70\u002F$2.80  (flock\u002Fqwen3-235b-a22b-instruct-2507)\n  6. Qwen3 30B Coding            — $0.20\u002F$0.80  (flock\u002Fqwen3-30b-a3b-instruct-coding)\n\nOther:\n  7. DeepSeek V3.2               — $0.28\u002F$0.42  (flock\u002Fdeepseek-v3.2)\n  8. MiniMax M2.1                — $0.30\u002F$1.20  (flock\u002Fminimax-m2.1)\n\nReply with number or model name.\n```\n\n### Model specified — switch immediately:\n\n```bash\nopenclaw agent --model flock\u002F\u003Cmodel-id>\nopenclaw gateway stop\nopenclaw gateway\n```\n\n**Success (one line):**\n```\nSwitched to flock\u002F\u003Cmodel-id>.\n```\n\n---\n\n## Credential Management\n\n### Load Saved Credentials\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js get\n```\n\nReturns:\n```json\n{\n  \"apiKey\": \"sk-...\",\n  \"walletAddress\": \"0x...\",\n  \"privateKey\": \"0x...\",\n  \"createdAt\": \"2026-02-04T...\",\n  \"updatedAt\": \"2026-02-04T...\"\n}\n```\n\n### Credentials File Path\n\n```bash\nnode {baseDir}\u002Fscripts\u002Fcredentials.js path\n```\n\nPriority:\n1. `~\u002F.openclaw\u002Fflock-credentials.json` (if OpenClaw installed)\n2. `.\u002Fflock-credentials.json` (fallback)\n\n---\n\n## Heartbeat Integration\n\nFLock usage tracking helps monitor costs.\n\n### Human Can Ask Anytime\n\nYour human can prompt:\n- \"Check my FLock usage\" — Direct them to platform.flock.io Usage tab\n- \"Switch to a cheaper model\" — Show model menu\n- \"What model am I using?\" — Check current config\n- \"How much have I spent on FLock?\" — Direct to Usage tab\n\n---\n\n## Error Handling\n\n| Scenario | Response |\n|----------|----------|\n| Plugin not installed | Auto-install: `openclaw plugins install @openclawd\u002Fflock` |\n| API key not set | `Run \u002Fflock-setup to configure FLock.` |\n| No funds detected | `No funds on Ethereum or Base. Please fund the wallet.` |\n| Invalid API key | `Invalid key format. Keys start with sk-` |\n| Model not found | `Model not found. Available models: [show list]` |\n\n---\n\n## Model Reference\n\n| # | Model ID | Price (in\u002Fout per 1M) |\n|---|----------|----------------------|\n| 1 | `flock\u002Fqwen3-235b-a22b-thinking-2507` | $0.23\u002F$2.30 |\n| 2 | `flock\u002Fqwen3-235b-a22b-thinking-qwfin` | $0.23\u002F$2.30 |\n| 3 | `flock\u002Fkimi-k2-thinking` | $0.60\u002F$2.50 |\n| 4 | `flock\u002Fqwen3-30b-a3b-instruct-2507` | $0.20\u002F$0.80 |\n| 5 | `flock\u002Fqwen3-235b-a22b-instruct-2507` | $0.70\u002F$2.80 |\n| 6 | `flock\u002Fqwen3-30b-a3b-instruct-coding` | $0.20\u002F$0.80 |\n| 7 | `flock\u002Fdeepseek-v3.2` | $0.28\u002F$0.42 |\n| 8 | `flock\u002Fminimax-m2.1` | $0.30\u002F$1.20 |\n\n**Recommendations:**\n- General\u002FDefault: `kimi-k2.5` (multimodal, agentic)\n- Deep reasoning: `kimi-k2-thinking`, `qwen3-235b-thinking`\n- Coding: `qwen3-30b-coding`, `minimax-m2.1`\n- Budget: `qwen3-30b-instruct` ($0.20\u002F$0.80)\n\n---\n\n## Programmatic API\n\nAll scripts can be imported:\n\n```javascript\n\u002F\u002F Generate wallet\nconst { Wallet } = require('ethers');\nconst wallet = Wallet.createRandom();\n\n\u002F\u002F Check balance\nconst { JsonRpcProvider, formatEther } = require('ethers');\nconst provider = new JsonRpcProvider('https:\u002F\u002Fmainnet.base.org');\nconst balance = await provider.getBalance(wallet.address);\n\n\u002F\u002F Load credentials\nconst creds = require('{baseDir}\u002Fscripts\u002Fcredentials.js');\n```\n\n## Example: Full Setup Flow\n\n```javascript\nconst { Wallet } = require('ethers');\n\n\u002F\u002F 1. Generate wallet\nconst wallet = Wallet.createRandom();\nconsole.log('Fund this address with ~$0.50 ETH:', wallet.address);\n\n\u002F\u002F 2. After human funds and creates API key at platform.flock.io\nconst apiKey = 'sk-...';  \u002F\u002F User provides this\n\n\u002F\u002F 3. Save credentials\nconst fs = require('fs');\nconst path = require('path');\nconst os = require('os');\n\nconst creds = {\n  apiKey,\n  walletAddress: wallet.address,\n  privateKey: wallet.privateKey,\n  createdAt: new Date().toISOString()\n};\n\nconst credPath = path.join(os.homedir(), '.openclaw', 'flock-credentials.json');\nfs.writeFileSync(credPath, JSON.stringify(creds, null, 2), { mode: 0o600 });\n\nconsole.log('Credentials saved to:', credPath);\n```\n\n## Source Files\n\n```\n{baseDir}\u002Fscripts\u002F\n├── package.json          # Dependencies (ethers)\n├── generate-wallet.js    # Create new ETH wallet\n├── check-balance.js      # Check ETH balance on chains\n└── credentials.js        # Save\u002Fload credentials\n```\n",{"name":5,"homepage":53,"metadata":54,"description":7},"https:\u002F\u002Fplatform.flock.io",{"openclaw":55},{"emoji":56,"install":57,"requires":62,"primaryEnv":64},"?",[58],{"id":59,"kind":47,"label":60,"command":61},"npm","Install dependencies","cd {baseDir}\u002Fscripts && npm install",{"bins":63},[44,59],"FLOCK_API_KEY","main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fcreatepjf\u002Fflock-in-v1",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add kbarbel640-del\u002Fskills --skill flock-api-setup",{"tool":78,"command":79},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill flock-api-setup",{"tool":81,"command":82},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill flock-api-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002FSKILL.md",true,[86,92,96,102,106,110],{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"_meta.json","REFERENCE","参考文档",286,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002F_meta.json",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"README.md",7960,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002FREADME.md",{"path":97,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fcheck-balance.js","SCRIPT","脚本",1383,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002Fscripts\u002Fcheck-balance.js",{"path":103,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":104,"sourceHtmlUrl":105},"scripts\u002Fcredentials.js",2705,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002Fscripts\u002Fcredentials.js",{"path":107,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Fgenerate-wallet.js",295,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002Fscripts\u002Fgenerate-wallet.js",{"path":111,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":112,"sourceHtmlUrl":113},"scripts\u002Fpackage.json",311,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcreatepjf\u002Fflock-in-v1\u002Fscripts\u002Fpackage.json",[115,143,169,190,196,216],{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":124,"publishedAt":48},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[121],{"categoryNo":122,"categoryName":123,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者",[125,126,30,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142],"crowd prompting","prompting","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":152,"publishedAt":48},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[149],{"categoryNo":150,"categoryName":151,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[153,30,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,131,42],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":178,"publishedAt":48},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[175],{"categoryNo":176,"categoryName":177,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[179,180,181,182,183,184,185,127,186,167,42,187,30,188,189],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":191,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":48},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[194],{"categoryNo":176,"categoryName":177,"taxonomyType":20,"taxonomyTypeDesc":21},[182,181,180,179,189,184,185,127,183,167,42,186,187,30,188],{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":48},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[203,204,205,206,207,208,209,210,211,212,213,214,215],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":226,"publishedAt":48},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[222,223],{"categoryNo":150,"categoryName":151,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":224,"categoryName":225,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000037","律师与法务",[227,228,229,230,127,231,232,65,233,187,234,235,236,237,238,140,239,240,241],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]