[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X8AXZWMZJ9DS1AT81WHKVS":3,"skill-same:01M6X8AXZWMZJ9DS1AT81WHKVS":79},{"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":31,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6X8AXZWMZJ9DS1AT81WHKVS","Bankr Dev - Sign & Submit API",null,"This skill should be used when building apps that need to sign messages, sign typed data (EIP-712), sign transactions, or submit raw transactions via the Bankr API. Covers the synchronous \u002Fagent\u002Fsign and \u002Fagent\u002Fsubmit endpoints with TypeScript patterns.","enuno\u002Fcrewless-capital","enuno","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6727752?v=4","01M6J09HF6Y74150F7PEMC446X","Elvis Nuno","01M6X86WGZG9RH09ACTSTJ2383",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002F.claude\u002Fskills\u002Fbankr-dev-sign-submit-api\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"dev","Bankr Dev   Sign & Submit API","api","submit","sign","bankr","when","typescript","with","via","apps","patterns","eip-712","endpoints","typescript patterns","transactions","data","messages","2026-11-10 10:12:30",false,"---\nname: Bankr Dev - Sign & Submit API\ndescription: This skill should be used when building apps that need to sign messages, sign typed data (EIP-712), sign transactions, or submit raw transactions via the Bankr API. Covers the synchronous \u002Fagent\u002Fsign and \u002Fagent\u002Fsubmit endpoints with TypeScript patterns.\nversion: 1.0.0\n---\n\n# Sign & Submit API\n\nSynchronous endpoints for signing and submitting transactions directly — no job polling required.\n\n## Endpoints\n\n| Endpoint | Purpose | Returns |\n|----------|---------|---------|\n| `POST \u002Fagent\u002Fsign` | Sign messages, typed data, or transactions | Signature |\n| `POST \u002Fagent\u002Fsubmit` | Submit raw transactions to chain | Transaction hash |\n\n## POST \u002Fagent\u002Fsign\n\n### Signature Types\n\n| Type | Use Case |\n|------|----------|\n| `personal_sign` | Plain text messages (auth, verification) |\n| `eth_signTypedData_v4` | EIP-712 typed data (permits, orders) |\n| `eth_signTransaction` | Sign transactions for later broadcast |\n\n### Usage\n\n```typescript\n\u002F\u002F personal_sign\nconst signMessage = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"personal_sign\",\n    message: \"Sign in to MyApp\\nNonce: abc123\",\n  }),\n});\n\u002F\u002F → { success: true, signature: \"0x...\", signer: \"0x...\", signatureType: \"personal_sign\" }\n\n\u002F\u002F eth_signTypedData_v4 (EIP-2612 permit)\nconst signPermit = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"eth_signTypedData_v4\",\n    typedData: {\n      domain: { name: \"USD Coin\", version: \"2\", chainId: 8453, verifyingContract: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n      types: {\n        Permit: [\n          { name: \"owner\", type: \"address\" },\n          { name: \"spender\", type: \"address\" },\n          { name: \"value\", type: \"uint256\" },\n          { name: \"nonce\", type: \"uint256\" },\n          { name: \"deadline\", type: \"uint256\" },\n        ],\n      },\n      primaryType: \"Permit\",\n      message: { owner: \"0x...\", spender: \"0x...\", value: \"1000000\", nonce: \"0\", deadline: \"1735689600\" },\n    },\n  }),\n});\n\n\u002F\u002F eth_signTransaction\nconst signTx = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"eth_signTransaction\",\n    transaction: { to: \"0x...\", chainId: 8453, value: \"0\", data: \"0xa9059cbb...\" },\n  }),\n});\n```\n\n### Error Responses\n\n| Status | Error | Cause |\n|--------|-------|-------|\n| 400 | Missing required field | Missing message, typedData, or transaction |\n| 401 | Authentication required | Missing or invalid API key |\n| 403 | Read-only API key | Key lacks write permissions |\n\n## POST \u002Fagent\u002Fsubmit\n\n### Transaction Fields\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `to` | string | Yes | Destination address |\n| `chainId` | number | Yes | Chain ID (8453=Base, 1=Ethereum, 137=Polygon) |\n| `value` | string | No | Value in wei |\n| `data` | string | No | Calldata (hex) |\n| `gas` | string | No | Gas limit |\n| `maxFeePerGas` | string | No | EIP-1559 max fee |\n| `maxPriorityFeePerGas` | string | No | EIP-1559 priority fee |\n\n### Options\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `description` | string | — | Human-readable description for logging |\n| `waitForConfirmation` | boolean | true | Wait for on-chain confirmation |\n\n### Usage\n\n```typescript\n\u002F\u002F Submit a transaction and wait for confirmation\nconst result = await fetch(`${API_URL}\u002Fagent\u002Fsubmit`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    transaction: { to: \"0x...\", chainId: 8453, value: \"1000000000000000000\" },\n    description: \"Send 1 ETH\",\n    waitForConfirmation: true,\n  }),\n});\n\u002F\u002F → { success: true, transactionHash: \"0x...\", status: \"success\", blockNumber: \"123\", gasUsed: \"21000\" }\n\n\u002F\u002F Fire-and-forget (don't wait for confirmation)\nconst pending = await fetch(`${API_URL}\u002Fagent\u002Fsubmit`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    transaction: { to: \"0x...\", chainId: 8453, value: \"100000000000000000\" },\n    waitForConfirmation: false,\n  }),\n});\n\u002F\u002F → { success: true, transactionHash: \"0x...\", status: \"pending\" }\n```\n\n### Multi-Step Workflow\n\n```typescript\n\u002F\u002F Approve + Swap sequence\nasync function approveAndSwap(approveTx: object, swapTx: object) {\n  \u002F\u002F 1. Approve token spending\n  const approval = await submitTransaction(approveTx);\n  if (approval.status !== \"success\") throw new Error(\"Approval failed\");\n\n  \u002F\u002F 2. Execute swap\n  const swap = await submitTransaction(swapTx);\n  if (swap.status !== \"success\") throw new Error(\"Swap failed\");\n\n  return swap;\n}\n```\n\n### Transaction Status Values\n\n| Status | Description |\n|--------|-------------|\n| `success` | Confirmed and succeeded |\n| `reverted` | Confirmed but reverted |\n| `pending` | Submitted, not yet confirmed |\n\n## Comparison with \u002Fagent\u002Fprompt\n\n| Feature | \u002Fagent\u002Fprompt | \u002Fagent\u002Fsign | \u002Fagent\u002Fsubmit |\n|---------|---------------|-------------|---------------|\n| Input | Natural language | Structured data | Transaction object |\n| Response | Async (job ID) | Sync (signature) | Sync (tx hash) |\n| Executes on-chain | Via AI agent | No | Yes |\n| Best for | General queries | Auth, permits | Raw transactions |\n\n## Security Notes\n\n- `\u002Fagent\u002Fsubmit` executes immediately — **no confirmation prompt**\n- Read-only API keys get 403 on both endpoints\n- Always validate transaction parameters before submission\n- Use `waitForConfirmation: true` for critical transactions\n\n## Related Skills\n\n- `bankr-api-basics` - API fundamentals\n- `bankr-client-patterns` - Client setup\n- `bankr-safety` - Security best practices\n- `bankr-arbitrary-transaction` - Constructing raw transaction JSON\n","# Sign & Submit API\n\nSynchronous endpoints for signing and submitting transactions directly — no job polling required.\n\n## Endpoints\n\n| Endpoint | Purpose | Returns |\n|----------|---------|---------|\n| `POST \u002Fagent\u002Fsign` | Sign messages, typed data, or transactions | Signature |\n| `POST \u002Fagent\u002Fsubmit` | Submit raw transactions to chain | Transaction hash |\n\n## POST \u002Fagent\u002Fsign\n\n### Signature Types\n\n| Type | Use Case |\n|------|----------|\n| `personal_sign` | Plain text messages (auth, verification) |\n| `eth_signTypedData_v4` | EIP-712 typed data (permits, orders) |\n| `eth_signTransaction` | Sign transactions for later broadcast |\n\n### Usage\n\n```typescript\n\u002F\u002F personal_sign\nconst signMessage = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"personal_sign\",\n    message: \"Sign in to MyApp\\nNonce: abc123\",\n  }),\n});\n\u002F\u002F → { success: true, signature: \"0x...\", signer: \"0x...\", signatureType: \"personal_sign\" }\n\n\u002F\u002F eth_signTypedData_v4 (EIP-2612 permit)\nconst signPermit = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"eth_signTypedData_v4\",\n    typedData: {\n      domain: { name: \"USD Coin\", version: \"2\", chainId: 8453, verifyingContract: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" },\n      types: {\n        Permit: [\n          { name: \"owner\", type: \"address\" },\n          { name: \"spender\", type: \"address\" },\n          { name: \"value\", type: \"uint256\" },\n          { name: \"nonce\", type: \"uint256\" },\n          { name: \"deadline\", type: \"uint256\" },\n        ],\n      },\n      primaryType: \"Permit\",\n      message: { owner: \"0x...\", spender: \"0x...\", value: \"1000000\", nonce: \"0\", deadline: \"1735689600\" },\n    },\n  }),\n});\n\n\u002F\u002F eth_signTransaction\nconst signTx = await fetch(`${API_URL}\u002Fagent\u002Fsign`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    signatureType: \"eth_signTransaction\",\n    transaction: { to: \"0x...\", chainId: 8453, value: \"0\", data: \"0xa9059cbb...\" },\n  }),\n});\n```\n\n### Error Responses\n\n| Status | Error | Cause |\n|--------|-------|-------|\n| 400 | Missing required field | Missing message, typedData, or transaction |\n| 401 | Authentication required | Missing or invalid API key |\n| 403 | Read-only API key | Key lacks write permissions |\n\n## POST \u002Fagent\u002Fsubmit\n\n### Transaction Fields\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `to` | string | Yes | Destination address |\n| `chainId` | number | Yes | Chain ID (8453=Base, 1=Ethereum, 137=Polygon) |\n| `value` | string | No | Value in wei |\n| `data` | string | No | Calldata (hex) |\n| `gas` | string | No | Gas limit |\n| `maxFeePerGas` | string | No | EIP-1559 max fee |\n| `maxPriorityFeePerGas` | string | No | EIP-1559 priority fee |\n\n### Options\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `description` | string | — | Human-readable description for logging |\n| `waitForConfirmation` | boolean | true | Wait for on-chain confirmation |\n\n### Usage\n\n```typescript\n\u002F\u002F Submit a transaction and wait for confirmation\nconst result = await fetch(`${API_URL}\u002Fagent\u002Fsubmit`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    transaction: { to: \"0x...\", chainId: 8453, value: \"1000000000000000000\" },\n    description: \"Send 1 ETH\",\n    waitForConfirmation: true,\n  }),\n});\n\u002F\u002F → { success: true, transactionHash: \"0x...\", status: \"success\", blockNumber: \"123\", gasUsed: \"21000\" }\n\n\u002F\u002F Fire-and-forget (don't wait for confirmation)\nconst pending = await fetch(`${API_URL}\u002Fagent\u002Fsubmit`, {\n  method: \"POST\",\n  headers: { \"x-api-key\": API_KEY, \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({\n    transaction: { to: \"0x...\", chainId: 8453, value: \"100000000000000000\" },\n    waitForConfirmation: false,\n  }),\n});\n\u002F\u002F → { success: true, transactionHash: \"0x...\", status: \"pending\" }\n```\n\n### Multi-Step Workflow\n\n```typescript\n\u002F\u002F Approve + Swap sequence\nasync function approveAndSwap(approveTx: object, swapTx: object) {\n  \u002F\u002F 1. Approve token spending\n  const approval = await submitTransaction(approveTx);\n  if (approval.status !== \"success\") throw new Error(\"Approval failed\");\n\n  \u002F\u002F 2. Execute swap\n  const swap = await submitTransaction(swapTx);\n  if (swap.status !== \"success\") throw new Error(\"Swap failed\");\n\n  return swap;\n}\n```\n\n### Transaction Status Values\n\n| Status | Description |\n|--------|-------------|\n| `success` | Confirmed and succeeded |\n| `reverted` | Confirmed but reverted |\n| `pending` | Submitted, not yet confirmed |\n\n## Comparison with \u002Fagent\u002Fprompt\n\n| Feature | \u002Fagent\u002Fprompt | \u002Fagent\u002Fsign | \u002Fagent\u002Fsubmit |\n|---------|---------------|-------------|---------------|\n| Input | Natural language | Structured data | Transaction object |\n| Response | Async (job ID) | Sync (signature) | Sync (tx hash) |\n| Executes on-chain | Via AI agent | No | Yes |\n| Best for | General queries | Auth, permits | Raw transactions |\n\n## Security Notes\n\n- `\u002Fagent\u002Fsubmit` executes immediately — **no confirmation prompt**\n- Read-only API keys get 403 on both endpoints\n- Always validate transaction parameters before submission\n- Use `waitForConfirmation: true` for critical transactions\n\n## Related Skills\n\n- `bankr-api-basics` - API fundamentals\n- `bankr-client-patterns` - Client setup\n- `bankr-safety` - Security best practices\n- `bankr-arbitrary-transaction` - Constructing raw transaction JSON\n",{"name":5,"version":55,"description":7},"1.0.0","main","bfe4e4653cba696a8dc20f70c6006651b997fdef","migrate-hyperliquid-firm\u002F.claude\u002Fskills\u002Fbankr-dev-sign-submit-api",0,"https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital","https:\u002F\u002Fgithub.com\u002Fenuno","https:\u002F\u002Fenuno.github.io\u002FDynamicCareerCanvas","Digital Nomad, Blockchain Evangel, and Digital Solutions Architect. \r\nCreator of TerraHash Stack.\r\nCEO of Ryno Crypto Mining Services.","2026-07-02 10:49:15",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add enuno\u002Fcrewless-capital --skill \"Bankr Dev - Sign & Submit API\"",{"tool":71,"command":72},"bunx","bunx skills add enuno\u002Fcrewless-capital --skill \"Bankr Dev - Sign & Submit API\"",{"tool":74,"command":75},"pnpm","pnpm dlx skills add enuno\u002Fcrewless-capital --skill \"Bankr Dev - Sign & Submit API\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002F.claude\u002Fskills\u002Fbankr-dev-sign-submit-api\u002FSKILL.md",true,[],[80,105,132,155,180,201],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":50},"01M6X94YFR1XNANZ321FS661NG","supermemory","Supermemory is a state-of-the-art memory and context infrastructure for AI agents. Use this skill when building applications that need persistent memory, user personalization, long-term context retention, or semantic search across knowledge bases. It provides Memory API for learned user context, User Profiles for static\u002Fdynamic facts, and RAG for semantic search. Perfect for chatbots, assistants, and knowledge-intensive applications.","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsupermemory\u002FSKILL.md",[86],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[82,88,89,90,91,92,93,94,34,95,96,97,98,99,100,101,102,103,104,38],"ai agents","memory","rag","semantic search","infrastructure","search","applications","knowledge","context","Art","personalization","across","learned","retention","for","persistent memory","static",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":50},"01M6X94S3K97CSK7VFF5H85ED2","wolverine-strategy","WOLVERINE v2.0 — HYPE alpha hunter. Entry-only scanner, DSL-exit-only architecture. v1.1 lost -22.7% because the scanner's thesis exit chopped 25\u002F27 trades before DSL could manage them. v2.0 removes thesis exit entirely. Scanner decides entries (score 8+, 4H\u002F1H aligned, SM consensus). DSL manages all exits (wide Phase 1 for HYPE volatility, trailing tiers starting at +15% ROE). Leverage lowered to 7x. Max 4 entries\u002Fday. 3-hour cooldown between entries. DSL exit managed by plugin runtime via runtime.yaml.","MIT","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsenpi-skills\u002Fwolverine\u002FSKILL.md",[],[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,102,129,130,131],"strategy","wolverine strategy","architecture","alpha","Volatility","consensus","only","trading","scanner","manage","max","hyperliquid","runtime","leverage","hunter","at","managed","dsl","phase",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":50},"01M6X94HN3CHBM37GM2C84KT26","wolf-strategy","WOLF v6.3 — Fully autonomous multi-strategy trading for Hyperliquid perps via Senpi MCP. Manages multiple strategies simultaneously, each with independent wallets, budgets, slots, and DSL configs. 5+N cron architecture: 5 shared wolf crons (Emerging Movers 3min, SM Flip 5min, Watchdog 5min, Risk Guardian 5min, Health Check 10min) plus one DSL v5.2 cron per strategy (native Hyperliquid SL sync via dsl-dynamic-stop-loss skill v5.3.1). Same asset can be traded in different strategies simultaneously. Enter early on first jumps, not at confirmed peaks. Dynamic risk-based leverage per strategy. Requires Senpi MCP connection, python3, mcporter CLI, OpenClaw cron system, and dsl-dynamic-stop-loss skill (provides dsl-cli.py + dsl-v5.py).","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsenpi-skills\u002Fwolf-strategy\u002FSKILL.md",[138],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[113,140,141,142,115,143,144,145,146,147,148,149,150,126,151,152,128,153,154,102],"wolf strategy","MCP","openclaw","health","system","python3","check","health check","stop","strategies","shared","connection","wallets","stop-loss","hyperliquid perps",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":50},"01M6X949FBGWWGY3YZ8N3WB3CP","wolf-howl","HOWL v2 — Hunt, Optimize, Win, Learn. Nightly self-improvement loop for the WOLF autonomous trading strategy. Runs once per day (via cron) to review all trades from the last 24 hours, compute win rates, analyze signal quality correlation, evaluate DSL tier performance, identify missed opportunities, and produce concrete improvement suggestions for the wolf-strategy skill. v2 adds fee drag ratio (FDR) analysis, holding period bucketing, LONG vs SHORT regime detection, rotation cost tracking, cumulative drift detection, and gross vs net profit factor separation. Use when setting up daily trade review automation, analyzing trading performance, or improving an autonomous trading strategy through data-driven feedback loops. Requires Senpi MCP connection, mcporter CLI, and OpenClaw cron system.","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsenpi-skills\u002Fwolf-howl\u002FSKILL.md",[161],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[163,141,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,130,179,38],"wolf howl","review","performance","learn","analysis","loop","analyze","short","autonomous","up","optimize","drift","self","factor","loops","profit","fdr",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":50},"01M6X9437CQ55N5AYHCPF71JWG","whale-index","Auto-mirror top Discovery traders on Hyperliquid. Scans top 50 traders, scores on PnL rank (35%), win rate (25%), consistency (20%), hold time (10%), drawdown (10%). Creates 2-5 mirror strategies with overlap checks. Daily rebalance with 2-day watch period before swaps. Use when setting up trader mirroring, copy trading, or portfolio auto-rebalancing based on Discovery leaderboard performance.","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsenpi-skills\u002Fwhale-index\u002FSKILL.md",[],[187,188,189,165,190,191,192,193,194,172,195,196,149,40,197,198,199,102,200,38],"index","whale","whale index","auth","monitoring","discovery","use","auto","daily","time","consistency","top","mirror","pnl",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":50},"01M6X93YTRGNPYNHZRTW9XNH1E","vixen-strategy","VIXEN v1.0 — Dual-mode emerging movers scanner. Built from FOX v1.6 live trading data (+34.5% ROI). Two entry modes: STALKER (steady accumulation, score 6+, catches the SM buildup BEFORE the explosion) and STRIKER (violent FIRST_JUMP, score 9+, with raw volume confirmation to filter blow-off tops). 2-hour per-asset cooldown after Phase 1 exits. DSL High Water Mode mandatory.","https:\u002F\u002Fgithub.com\u002Fenuno\u002Fcrewless-capital\u002Fblob\u002Fmain\u002Fmigrate-hyperliquid-firm\u002Fskills\u002Fsenpi-skills\u002Fvixen\u002FSKILL.md",[],[113,208,209,48,210,211,121,212,213,214,40,215,216,217,218,219,220,221,130,131],"vixen strategy","roi","first","confirmation","volume","filter","asset","explosion","mode","high","v1","modes","emerging movers","entry"]