{"id":"5166da02-0652-4d50-bb21-11f994a2cba1","entityType":"agent","slug":"clawhub-shekel-xyz-shekel-hyperliquid","name":"Shekel Hyperliquid Trading","canonicalUrl":"https://www.xpersona.co/agent/clawhub-shekel-xyz-shekel-hyperliquid","canonicalPath":"/agent/clawhub-shekel-xyz-shekel-hyperliquid","generatedAt":"2026-10-11T07:41:01.920Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":null},"description":"AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Skill: Shekel Hyperliquid Trading Owner: shekel-xyz Summary: AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Tags: latest:1.14.0 Version history: v1.14.0 | 2026-04-07T19:48:52.029Z | user Add vault management — agent as on-chain fund manager with follower deposits, vault explorer, and profit distribution v1.10.1 | 2026-03-21T17:0","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s173rpvg9178bw28m0ehdydd0s84d19t:shekel-hyperliquid","sourceUrl":"https://clawhub.ai/shekel-xyz/shekel-hyperliquid","homepage":"https://clawhub.ai/shekel-xyz/skills/shekel-hyperliquid","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/shekel-xyz/shekel-hyperliquid","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/shekel-xyz/skills/shekel-hyperliquid","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":47,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Skill: Shekel Hyperliqu"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":null},"stars":null,"forks":null,"downloads":1169,"packageName":null,"latestVersion":"1.14.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:46:33.210Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T03:46:33.211Z","lastCrawledAt":"2026-10-11T03:46:33.210Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T03:46:33.211Z","lastVerifiedAt":null,"highlights":[{"version":"1.14.0","createdAt":"2026-04-07T19:48:52.029Z","changelog":"Add vault management — agent as on-chain fund manager with follower deposits, vault explorer, and profit distribution","fileCount":3,"zipByteSize":12228},{"version":"1.10.1","createdAt":"2026-03-21T17:02:58.989Z","changelog":"Add HIP-3 stock/commodity trading, margin mode control, single-ticker agent runs, and expanded data source docs","fileCount":2,"zipByteSize":9389},{"version":"1.6.0","createdAt":"2026-03-18T21:57:08.159Z","changelog":"Add LLM provider selection (Venice AI + Rei Intelligence), updated models endpoint","fileCount":2,"zipByteSize":8411},{"version":"1.5.2","createdAt":"2026-03-18T20:05:09.834Z","changelog":"Full skill rewrite with detailed onboarding, dashboard UI, risk circuit breakers, data source config, and troubleshooting guide","fileCount":2,"zipByteSize":8068},{"version":"1.5.1","createdAt":"2026-03-18T19:59:12.563Z","changelog":"Initial registry release","fileCount":2,"zipByteSize":1837}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s173rpvg9178bw28m0ehdydd0s84d19t:shekel-hyperliquid","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T07:41:01.917Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shekel-xyz-shekel-hyperliquid/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":null},"readme":"Skill: Shekel Hyperliquid Trading\n\nOwner: shekel-xyz\n\nSummary: AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution.\n\nTags: latest:1.14.0\n\nVersion history:\n\nv1.14.0 | 2026-04-07T19:48:52.029Z | user\n\nAdd vault management — agent as on-chain fund manager with follower deposits, vault explorer, and profit distribution\n\nv1.10.1 | 2026-03-21T17:02:58.989Z | user\n\nAdd HIP-3 stock/commodity trading, margin mode control, single-ticker agent runs, and expanded data source docs\n\nv1.6.0 | 2026-03-18T21:57:08.159Z | user\n\nAdd LLM provider selection (Venice AI + Rei Intelligence), updated models endpoint\n\nv1.5.2 | 2026-03-18T20:05:09.834Z | user\n\nFull skill rewrite with detailed onboarding, dashboard UI, risk circuit breakers, data source config, and troubleshooting guide\n\nv1.5.1 | 2026-03-18T19:59:12.563Z | user\n\nInitial registry release\n\nArchive index:\n\nArchive v1.14.0: 3 files, 12228 bytes\n\nFiles: skill-card.md (2444b), SKILL.md (27082b), _meta.json (138b)\n\nFile v1.14.0:SKILL.md\n\n---\nname: shekel-hyperliquid\nversion: 1.14.0\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nauthor: shekel\nruntime: node>=20\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill — Complete Documentation\n\n## ⚠️ MANDATORY: Always Check for Latest Skill Version\n\n**Before EVERY interaction with Shekel endpoints**, you MUST:\n\n1. Call `GET /skill/version` to get the current skill hash\n2. Compare it to your cached version\n3. If different (or no cache), fetch `GET /skill` and use the updated instructions\n\n```bash\n# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }\n```\n\n**Why?** Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.\n\n> **Health check** (no auth): `GET /health` — also returns `skillVersion` hash for comparison.\n\n---\n\n## Quick Reference\n\n| Goal | Endpoint |\n|---|---|\n| **Browser UI (no code needed)** | `GET /dashboard` → `https://www.shekel.xyz/hl-skill-dashboard` |\n| **Service health** | `GET /health` |\n| New user onboarding | `POST /auth/register/managed` |\n| Check deposit / activation | `GET /auth/deposit-status` |\n| Retry stuck deposit | `POST /auth/retry-deposit` |\n| **Run agent (all whitelist tickers)** | `POST /agent/run` |\n| Run agent (single ticker) | `POST /agent/run` with `{ \"ticker\": \"BTC\" }` |\n| Close all open positions | `POST /account/close-positions` |\n| View config | `GET /agents` |\n| View balances | `GET /account/balances` — includes `vaultEquityUsdc` + `totalEquityUsdc` |\n| View positions | `GET /account/portfolio` |\n| View open orders | `GET /account/orders` |\n| View trade history | `GET /account/trades` |\n| **View performance metrics** | `GET /agent/performance` |\n| **View trading memory + improvement plan** | `GET /agent/memory` |\n| View LLM reasoning logs | `GET /agent/llm-logs` (supports `?ticker=BTC&action=LONG&executed=true&limit=100&offset=0`) |\n| View on Hyperliquid explorer | `GET /account/url` |\n| Update strategy | `PATCH /agent/prompt` |\n| Update whitelist / settings | `PUT /agents/:id` |\n| Enable / change schedule | `PUT /agents/:id` with `runScheduleMinutes` |\n| Disable schedule | `PUT /agents/:id` with `{ \"runScheduleMinutes\": null }` |\n| Set risk limits | `PUT /agents/:id` with `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` |\n| Browse data sources | `GET /agents/data-sources` |\n| Toggle data sources | `PUT /agents/:id` with `dataSourceConfig` |\n| Set margin mode | `PUT /agents/:id` with `{ \"marginMode\": \"isolated\" \\| \"cross\" }` |\n| Pause / resume agent | `PATCH /agent/active` |\n| Deposit address (top-up) | `GET /account/deposit-address` |\n| Bridge funds (manual, usually not needed) | `POST /account/bridge` |\n| Withdraw to Arbitrum | `POST /account/withdraw` |\n| Rotate API key | `POST /auth/rotate-key` |\n| Export trading wallet key | `POST /auth/export-agent-key` |\n| Delete account | `DELETE /auth/account` |\n| Available models | `GET /agents/models` — returns `{ venice: [...], rei: [...] }` |\n| Available markets | `GET /markets/tickers` |\n| **Create vault (agent as fund manager)** | `POST /vault/create` |\n| View my vault | `GET /vault/my` |\n| Vault page (public, no auth) | `GET /vault/page?vaultAddress=0x...` |\n| Vault details by address | `GET /vault/details?vaultAddress=0x...` |\n| My leading vaults | `GET /vault/leading` |\n| My vault deposits (all vaults) | `GET /vault/deposits` |\n| **Discover top vaults** | `GET /vault/explore?sortBy=tvl&order=desc` (no auth, sortBy: apr/tvl) |\n| Recent vaults (last 2 hrs) | `GET /vault/summaries` (no auth) |\n| Deposit into any vault | `POST /vault/deposit` with `{ \"vaultAddress\": \"0x...\", \"amountUsdc\": 10 }` |\n| Deposit into own vault | `POST /vault/deposit` with `{ \"amountUsdc\": 10 }` |\n| Withdraw from any vault | `POST /vault/withdraw` with `{ \"vaultAddress\": \"0x...\", \"amountUsdc\": 10 }` |\n| Update vault settings | `PUT /vault/settings` |\n| Distribute vault profits | `POST /vault/distribute` |\n| Link agent to existing vault | `PUT /agents/:id` with `{ \"vaultAddress\": \"0x...\" }` |\n\n---\n\n## Dashboard (Browser UI)\n\nUsers who prefer a visual interface can manage their agent at **https://www.shekel.xyz/hl-skill-dashboard** — no code required.\n\n### What the dashboard provides\n- Account overview: balances, open positions, trade history\n- Agent configuration: strategy, whitelist, risk limits, schedule\n- LLM reasoning logs: see what the agent was thinking on each run\n- One-click actions: run agent, close positions, pause/resume\n\n### How to connect\n1. Direct the user to `https://www.shekel.xyz/hl-skill-dashboard`\n2. They enter their `apiKey` (`sk_...`) on the login screen\n3. The dashboard authenticates using the same `Authorization: Bearer <apiKey>` header as the REST API — no separate credentials needed\n\n### If the user has no account yet\nOffer two paths:\n- **Via dashboard**: Visit the URL above and use the \"Create Account\" flow\n- **Via AI**: Run through the onboarding steps below (Steps 1–5) and hand them their `apiKey` when done\n\n> Call `GET /dashboard` to get the latest URL and access instructions programmatically.\n\n---\n\n## Returning Users\n\n> This is the common case — check here first.\n\n**Check your memory first.** If you saved credentials during onboarding (see Step 2a), load them from `MEMORY.md` — do not ask the user for their API key if you already have it. Only ask if memory is empty or the key returns a `401`.\n\nIf you must ask the user, only ask for their `apiKey` — that is the only credential needed for everything.\n\n```\nGET /agents                 → returns agentName, config, strategy\nGET /account/balances       → show current funds\nGET /auth/deposit-status    → confirm account is active\n```\n\nThen based on what you find:\n- `status !== \"active\"` → follow Steps 3–5 of onboarding below\n- `isActive === false` on agent → ask if they want to resume: `PATCH /agent/active { \"active\": true }`\n- Want to change strategy → `PATCH /agent/prompt`\n- Want to top up → `GET /account/deposit-address` (send USDC, it auto-bridges in ~30-60s)\n- Want to see trades → `GET /account/url` for Hyperliquid explorer link\n\n---\n\n## Onboarding (New User)\n\n### Quick Start (recommended)\n\n**Offer this first** — most users just want to get going. Don't overwhelm with 15 questions.\n\n> \"I can set up your trading agent with sensible defaults. Just answer 4 questions:\n> 1. **Which coins?** (default: BTC, ETH, SOL)\n> 2. **Risk level?** conservative / moderate / aggressive\n> 3. **How much USDC are you depositing?** (minimum 5 USDC)\n> 4. **How often should the agent trade?** (default: every 4 hours)\n>\n> That's it — I'll use a momentum strategy with appropriate position sizes. You can customize everything later.\"\n\n**Quick start defaults by risk level:**\n\n| Risk | `positionSizeMax` | `maxTradeSize` | `importantNotes` |\n|---|---|---|---|\n| Conservative | 10% | 10% of deposit | \"Max 3x leverage. Always use stop losses within 3% of entry. Avoid trading during high volatility news events. Never risk more than 5% of account on any single trade.\" |\n| Moderate | 20% | 20% of deposit | \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\" |\n| Aggressive | 35% | 40% of deposit | \"Max 10x leverage allowed. Use tight stop losses. Accept higher drawdowns for higher returns. Trade momentum aggressively.\" |\n\n**Quick start registration payload example (moderate risk, $500 deposit):**\n\n```json\n{\n  \"agentName\": \"My Trading Agent\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"Enter longs on price breakouts above recent highs with above-average volume. Enter shorts on breakdowns below recent lows. Exit when momentum reverses or RSI indicates overbought/oversold. Avoid ranging, low-volume markets. Use stop losses on every trade.\",\n  \"importantNotes\": \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 300,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**After registration:** Set up the run schedule with `PUT /agents/:id` using `{ \"runScheduleMinutes\": 240 }` (4 hours).\n\nIf the user wants to fully customize, use the full flow below.\n\n---\n\n### LLM Provider Selection\n\nAgents can use one of two LLM providers. The default is **Venice AI** (no user API key needed — platform-provided).\n\n| Provider | `provider` value | `model` options | Key required? |\n|---|---|---|---|\n| Venice AI | `\"venice\"` | `grok-41-fast`, `qwen3-235b`, others | No (platform key) |\n| Rei Intelligence | `\"rei\"` | `rei-coder-pro` (shown as **GPT-5.4**), `rei-coder-lite`, `rei-qwen3-coder` | Yes — user supplies `llmApiKey` |\n\nTo use Rei, include `provider` and `llmApiKey` in registration or agent update:\n\n```json\n{\n  \"provider\": \"rei\",\n  \"model\": \"rei-coder-pro\",\n  \"llmApiKey\": \"user_rei_api_key_here\",\n  ...\n}\n```\n\nThe Rei API key is encrypted at rest. Use `GET /agents/models` to see all available models per provider.\n\n---\n\n### Full Onboarding (5 steps)\n\n**Checklist — do not skip steps:**\n1. Discover markets → validate whitelist\n2. Register → **save API key to memory + confirm user has it (do not continue until done)**\n3. Deposit USDC\n4. Poll until `status === \"active\"`\n5. Set run schedule → start trading\n\n---\n\n#### Step 1 — Discover Markets\n\n```\nGET /markets/tickers   (no auth required)\n```\n\nShow the user the available coins. Validate any tickers they name against this list before registration — the server also validates, but catching it early saves a round trip.\n\nThe response has two sections:\n- `tickers` — main-dex crypto perps (BTC, ETH, SOL, …)\n- `hip3` — HIP-3 builder-dex perps: stocks, commodities, indices (TSLA, NVDA, CL/oil, …)\n\nHIP-3 tickers use the format `\"dex:ASSET\"` (e.g. `\"xyz:TSLA\"`, `\"xyz:CL\"`). Use this full prefixed form in the whitelist — **not** the bare asset name.\n\n---\n\n#### Step 2 — Register\n\n```\nPOST /auth/register/managed\n```\n\n```json\n{\n  \"agentName\": \"My Trading Bot\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"...\",\n  \"importantNotes\": \"...\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 200,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"],\n  \"marginMode\": \"isolated\"\n}\n```\n\nTo trade HIP-3 assets (stocks, commodities), use the prefixed format:\n```json\n{\n  \"whitelist\": [\"BTC\", \"xyz:TSLA\", \"xyz:NVDA\", \"xyz:CL\"]\n}\n```\n\n**Before submitting:** show the user a summary and ask them to confirm.\n\n**Response:**\n```json\n{\n  \"apiKey\": \"sk_...\",\n  \"mainWalletAddress\": \"0x...\",\n  \"depositInstructions\": { \"depositAddress\": \"0x...\", \"network\": \"Arbitrum\" }\n}\n```\n\n> ### ⛔ STOP — SAVE THE API KEY NOW\n>\n> **The `apiKey` is shown once and can never be retrieved. If lost without rotating, access to the account and funds may be permanently lost.**\n>\n> Follow the steps below — do not continue until all three are done.\n\n---\n\n#### Step 2a — Secure Key Storage (do not skip)\n\nDo all three of the following before continuing:\n\n**1. Tell the user to save it themselves**\n\nSay this out loud to the user:\n\n> *\"Your API key is `sk_...`. This is shown only once — copy it now into a password manager (1Password, Bitwarden, Apple Keychain) or a secure encrypted note. Do not store it in plain text, a Google Doc, or a chat message. Confirm when done.\"*\n\nWait for confirmation before proceeding.\n\n**2. Save to your own OpenClaw Memory**\n\nWrite the following block to your `MEMORY.md` (or a dedicated `shekel-credentials.md` if your platform supports it):\n\n```markdown\n## Shekel Hyperliquid — Credentials\n- apiKey: sk_...           ← encrypted at rest by OpenClaw\n- agentName: <name>\n- registeredAt: <ISO timestamp>\n- depositAddress: <0x...>  (Arbitrum/Base)\n```\n\n> This allows you to recall the API key in future sessions without asking the user again. OpenClaw memory is encrypted at rest — it is safe to store the key here.\n\n**3. Verify you can recall it**\n\nAfter writing to memory, immediately read it back and confirm the key matches what the server returned. This proves the memory write succeeded before you move on.\n\n> If lost later: `POST /auth/rotate-key` — generates a new key. You must be authenticated (have a working session) to rotate. If the key is truly lost and no session exists, the account cannot be recovered without re-registering.\n\n---\n\n#### Step 3 — Deposit USDC\n\nSend to `depositAddress`. Both networks are fully automated:\n\n| Network | Token | Time |\n|---|---|---|\n| **Arbitrum** *(recommended)* | USDC | ~60–90 seconds |\n| Base | USDC | **~30 seconds** (Across Protocol bridge) |\n\n> **Base deposits are fast now!** Across Protocol bridges in ~2 seconds, then funds are bridged to Hyperliquid. Total time: ~30 seconds.\n\nMinimum: **5 USDC**\n\n---\n\n#### Step 4 — Wait for Activation\n\n```\nGET /auth/deposit-status   (auth required)\n```\n\nPoll every 15 seconds. Use `message` to keep the user informed.\n\n```json\n{ \"status\": \"active\", \"depositConfirmed\": true, \"message\": \"Account is active and ready to trade.\" }\n```\n\nStatus values:\n- `awaiting_deposit` — no USDC detected yet\n- `funded_awaiting_bridge` — USDC found on Arbitrum, bridging to Hyperliquid (~60-90s)\n- `pending_bridge` — USDC being bridged from Base via Across Protocol (~30 seconds). No action needed.\n- `bridge_error` — bridge failed; call `POST /auth/retry-deposit` immediately\n- `active` — ready to trade\n\n**Timeout:** if still `awaiting_deposit` after 5 minutes, ask the user to confirm they sent to the correct address on Arbitrum or Base (not Ethereum mainnet).\n\n**On `bridge_error`:** call `POST /auth/retry-deposit` — do not wait, the error won't self-resolve.\n\n---\n\n#### Step 5 — Set Up Automated Trading\n\n> **Do not skip this step.** Without a schedule the account sits funded but idle.\n\nAsk the user:\n\n> \"Your account is active! How often should the agent analyze and trade?\n> - Every 30 minutes (high-frequency)\n> - Every 1 hour (active)\n> - **Every 4 hours** (recommended default)\n> - Every 8 hours (conservative)\n> - Once a day (240 or 1440 minutes)\n> Or tell me any interval (minimum 30 minutes).\"\n\nOnce they choose, **enable the built-in schedule** via `PUT /agents/:id`:\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"runScheduleMinutes\": 240}'\n```\n\nThe server will run the agent automatically every N minutes — no external cron needed.\nThe first run fires in N minutes. The `GET /agents` response includes `nextRunAt` so you can show the user when to expect the first execution.\n\nThen **run it once immediately** so the user sees it working:\n\n```\nPOST /agent/run\n```\n\n**Scheduling notes:**\n- Minimum interval: 30 minutes\n- To change interval: `PUT /agents/:id { \"runScheduleMinutes\": 60 }` — resets `nextRunAt` to `now() + new interval`; saving other settings without changing the interval preserves the existing timer\n- To disable: `PUT /agents/:id { \"runScheduleMinutes\": null }`\n- To pause without clearing schedule: `PATCH /agent/active { \"active\": false }` — schedule resumes when reactivated\n- `429` means a manual run collided with a scheduled run — wait a few minutes\n\n---\n\n## Risk Circuit Breakers\n\nOptional safety limits that automatically block or pause trading when thresholds are breached. Set via `PUT /agents/:id`.\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"maxOpenPositions\": 3,\n    \"maxDailyLossPct\": 5,\n    \"maxDrawdownPct\": 20\n  }'\n```\n\n| Field | Behavior |\n|---|---|\n| `maxOpenPositions` | Blocks new LONG/SHORT entries when open position count ≥ limit. CLOSE still allowed. |\n| `maxDailyLossPct` | Blocks new LONG/SHORT entries for the rest of the UTC calendar day when realised PnL drops below -(N% of account value). Resets at UTC midnight. |\n| `maxDrawdownPct` | **Auto-pauses the agent** (`isActive=false`) when account value has fallen ≥ N% from its peak. Requires `PATCH /agent/active { \"active\": true }` to re-enable after the user reviews. |\n\nSet any to `null` to disable. Circuit breaker trips appear in `GET /agent/llm-logs` as `executionError` on the blocked recommendation — the LLM's reasoning is still logged even when a trade is blocked.\n\n---\n\n## Data Source Configuration\n\nUse `dataSourceConfig` in `PUT /agents/:id` to turn individual data sources on or off. Every key is `true` by default — you only need to set the ones you want to change. Unknown keys are rejected with a `400` error.\n\n**Valid keys (set to `false` to disable, `true` or omit to enable):**\n\n| Key | Display Name | Provider | What it gives the LLM |\n|---|---|---|---|\n| `tokenData` | Token Data | DappLooker | Per-ticker perp market data — funding rate, open interest, volume, price action |\n| `sentiment` | Macro News | — | Real-time crypto macro news and sentiment |\n| `fearGreed` | Fear & Greed Index | CoinMarketCap | Fear & Greed index (0–100) |\n| `globalMetrics` | Global Market Metrics | CoinMarketCap | Total market cap, BTC dominance, 24h volume |\n| `technicalAnalysis` | Technical Analysis | DappLooker/Taapi | RSI, MACD, moving averages per ticker |\n| `athenaTokenStats` | Smart Money Movements | 0xAthena | On-chain smart money token flow data per coin |\n| `athenaLatest` | 0xAthena Signals | 0xAthena | Latest aggregated smart money signals |\n\n**Example — disable Athena and sentiment:**\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"dataSourceConfig\": {\n      \"athenaTokenStats\": false,\n      \"athenaLatest\": false,\n      \"sentiment\": false\n    }\n  }'\n```\n\nSet `dataSourceConfig: null` to re-enable everything. Current config is returned by `GET /agents`.\n\n---\n\n## Margin Mode\n\nEach agent has a `marginMode` setting (`\"isolated\"` or `\"cross\"`). Default is `\"isolated\"`.\n\n| Mode | Behaviour |\n|---|---|\n| `isolated` | Each position has its own margin. Safer — one liquidation can't cascade. **Required** for assets where `onlyIsolated: true` in `/markets/tickers`. |\n| `cross` | All positions share account margin. More capital-efficient, higher liquidation risk. |\n\nSet or change at any time via `PUT /agents/:id`:\n```bash\ncurl -X PUT .../agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"marginMode\": \"isolated\" }'\n```\n\n**Smart override:** If a Hyperliquid asset is `onlyIsolated: true`, the agent runner forces isolated margin for that trade even when the agent is set to `\"cross\"`. Check `/markets/tickers` for `onlyIsolated` and `marginMode` fields per ticker.\n\n---\n\n## Running the Agent\n\n`POST /agent/run` analyzes coins and executes recommendations automatically. It has two modes:\n\n**Full whitelist run** (no body required — runs all whitelisted tickers):\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\"\n```\n\n**Single-ticker run** (specify a ticker — runs even if not in the whitelist):\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"ticker\": \"BTC\" }'\n```\n\n**Optional body fields for single-ticker runs** (all auto-fetched if omitted):\n\n| Field | Type | Description |\n|---|---|---|\n| `ticker` | string | Run on this ticker only, bypassing the whitelist |\n| `tokenData` | any | Override server-fetched token data |\n| `sentiment` | any | Override server-fetched sentiment |\n| `marketData` | any | Additional market context |\n| `customData` | any | Any extra data to inject into the LLM prompt |\n| `skillGuidance` | any | External signals for the LLM |\n| `tradingMemoryContext` | any | Override the agent's trading memory |\n\nBoth modes return the same `{ results: [] }` shape and are subject to the 5-minute run lock.\n\n### Data Sources Used in `/agent/run`\n\nEach run automatically fetches and injects the following live data into the LLM prompt:\n\n| Source | Data |\n|---|---|\n| **Hyperliquid** | Live portfolio (positions, balances, open orders) — includes HIP-3 builder-dex positions and orders (e.g. `xyz:TSLA`) merged transparently alongside main-dex crypto perp positions; open orders include limit, stop-loss, and take-profit orders |\n| **DappLooker** | Token price, volume, and market data for each whitelisted coin |\n| **0xAthena** | Smart money token stats (hold times, flows) + latest aggregated signals |\n| **DappLooker** | On-chain DEX analytics and market metrics |\n\nNo extra parameters are needed — all data is fetched server-side on every run.\n\n---\n\n## Error Handling\n\n| Status | Meaning | Action |\n|---|---|---|\n| `400` | Bad request | Fix and retry |\n| `401` | Invalid API key | Check key; rotate if needed |\n| `404` | Resource not found | Check IDs |\n| `422` | Hyperliquid rejected order | `message` field has reason |\n| `429` | Rate limit or run in progress | **Wait 5 minutes** before retrying `/agent/run`; wait 60 seconds for other endpoints |\n| `502` | Hyperliquid API down | Retry after 10–30 seconds |\n| `503` | Service degraded | Retry after 30 seconds |\n\n---\n\n## Troubleshooting\n\n**Agent isn't trading:**\n- `GET /agents` → check `isActive` (may be paused)\n- `GET /auth/deposit-status` → must be `active`\n- `GET /account/balances` → check margin isn't below `usdcRangeMin`\n\n**Deposit not arriving:**\n- Arbitrum: wait 90s. Base: wait 60s. Not Ethereum mainnet.\n- Minimum 5 USDC. Below this won't bridge.\n- `bridge_error` → call `POST /auth/retry-deposit`\n\n**429 on `/agent/run`:**\n- A run is still in progress. The response includes `\"unlocksAt\"` — wait until that timestamp. The lock auto-expires after 5 minutes regardless.\n\n**Whitelist update fails with \"Invalid tickers\":**\n- Check `GET /markets/tickers` — names must match exactly\n- Main-dex coins are uppercase: `\"BTC\"`, `\"ETH\"`\n- HIP-3 coins use `\"dex:ASSET\"` format: `\"xyz:TSLA\"`, `\"xyz:CL\"` (lowercase dex prefix, uppercase asset)\n\n---\n\n## ⚠️ Inactivity Archival Policy\n\n**Agents with no trades for 14+ days are automatically archived.**\n\n- The archival check runs daily\n- Archived agents cannot execute trades or access the API\n- Agent data (trade history, LLM logs) is preserved\n- **Funds are safe** — the encrypted wallet key is stored for recovery\n\n**Exceptions (not archived):**\n- Agents with balance > $100 USDC\n- Agents with open positions\n\n**If your agent is archived:**\n- You'll receive a `410 Gone` error when hitting any authenticated endpoint\n- Contact support via Telegram to restore: [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n- Provide your wallet address or agent name for recovery\n\n---\n\n## Vault Management (Agent as Fund Manager)\n\nShekel agents can create and manage a **Hyperliquid vault** — turning the AI agent into a publicly investable on-chain fund. Followers deposit USDC into the vault and share P&L proportionally, while the agent (as vault leader) earns **10% of profits**.\n\n### Key Concepts\n\n| Concept | Details |\n|---|---|\n| **Model** | Agent trades, followers deposit and share P&L proportionally |\n| **Leader profit share** | 10% of profits (fixed, cannot be changed) |\n| **Creation cost** | 100 USDC fee + 100 USDC minimum initial deposit |\n| **Leader equity** | Must maintain ≥5% of vault equity at all times |\n| **Lockup** | 24 hours after each deposit (resets on new deposits) |\n| **Key type requirement** | Write operations require a managed account or self_custody private_key account |\n\n### Vault Mode Trading\n\nOnce a vault is created, you can link the agent to it so it **trades on behalf of the vault**:\n\n```bash\n# Option A: Create a vault (automatic linkage)\ncurl -X POST .../vault/create \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -d '{\"name\":\"My AI Fund\",\"description\":\"BTC/ETH momentum strategy\",\"initialUsd\":200}'\n# Returns the vault address and automatically links the agent\n\n# Option B: Link agent to an existing vault\ncurl -X PUT .../agents/<id> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -d '{\"vaultAddress\":\"0x...\"}'\n\n# Unlink agent from vault (reverts to personal wallet trading)\ncurl -X PUT .../agents/<id> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -d '{\"vaultAddress\":null}'\n```\n\nWhen vault mode is active (`agents.vaultAddress` is set):\n- Portfolio is fetched from the vault's address (not the leader's personal wallet)\n- All trades execute on behalf of the vault\n- The agent runner enforces the ≥5% leader equity rule before trading\n- Trade history records the `vaultAddress` for auditability\n\n### Vault Write Operations\n\n```bash\n# Deposit more USDC into the vault (leader adding to own position)\nPOST /vault/deposit   { \"amountUsdc\": 500 }\n\n# Withdraw USDC from the vault (subject to 24h lockup)\nPOST /vault/withdraw  { \"amountUsdc\": 100 }\n\n# Control follower deposits and withdrawal behavior\nPUT /vault/settings   { \"allowDeposits\": true, \"alwaysCloseOnWithdraw\": false }\n\n# Distribute profits to followers (0 = close vault)\nPOST /vault/distribute  { \"amountUsdc\": 1000 }\n```\n\n> **Note:** Closing a vault (`amountUsdc: 0` in `/vault/distribute`) requires all positions to be closed first. The stored `vaultAddress` is cleared automatically on close.\n\n### Vault Explorer\n\nDiscover top-performing vaults without needing to know addresses in advance:\n\n```bash\n# Top vaults by TVL (default)\nGET /vault/explore\n\n# Top vaults by APR, deposits-open only\nGET /vault/explore?sortBy=apr&order=desc&allowDepositsOnly=true\n\n# Minimum $10k TVL, paginated\nGET /vault/explore?minTvl=10000&limit=10&offset=0\n```\n\nQuery params: `sortBy` (apr|tvl, default tvl), `order` (asc|desc, default desc), `minTvl` (USDC, default 0), `limit` (max 100, default 20), `offset` (default 0).\n\nThe explorer includes well-known vaults (e.g. HLP) plus any vaults discovered recently from Hyperliquid's live feed. Results are cached for 2 minutes. Use the returned `vaultAddress` to call `GET /vault/page?vaultAddress=0x...` for the full vault detail page (no auth required) or `POST /vault/deposit` to invest.\n\n---\n\n## Support\n\nIf you encounter an issue that can't be resolved through the troubleshooting steps above, contact the Shekel team directly:\n\n**Telegram support channel:** [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n\nInclude your `agentId` (from `GET /agents`) and a brief description of the issue when reaching out.\n\nFile v1.14.0:_meta.json\n\n{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.14.0\",\n  \"publishedAt\": 1775591332029\n}\n\nFile v1.14.0:skill-card.md\n\n## Description:\n\nAI-powered perpetual futures trading on Hyperliquid DEX that handles account creation, USDC onboarding, and autonomous trade execution.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[shekel-xyz](https://clawhub.ai/user/shekel-xyz)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to configure and operate a Shekel trading agent for Hyperliquid perpetual futures, including onboarding, deposits, strategy updates, runs, schedules, account management, and vault operations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can trade futures, manage funds, withdraw assets, export wallet key material, and alter account state using a single API key.\n\nMitigation: Use a dedicated secret manager for the API key, rotate keys exposed in memory or logs, and require fresh user confirmation for withdrawals, wallet export, account deletion, vault operations, schedule changes, and whitelist bypasses.\n\nRisk: Remote instruction updates can change what the agent is told to do after installation.\n\nMitigation: Review fetched instructions and version changes before use, and require re-review before executing financial actions after material instruction changes.\n\nRisk: Autonomous trading and vault operations can create financial losses or unintended account changes.\n\nMitigation: Set risk limits, confirm schedules and single-ticker runs, use isolated margin when appropriate, and monitor balances, positions, LLM logs, and performance metrics.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/shekel-xyz/skills/shekel-hyperliquid)\n- [Shekel skill endpoint](https://shekel-skill-backend.onrender.com/skill)\n- [Shekel dashboard](https://www.shekel.xyz/hl-skill-dashboard)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance, shell commands, configuration]\n\n**Output Format:** [Markdown with JSON and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires SHEKEL_API_KEY for authenticated operations.]\n\n## Skill Version(s):\n\n1.14.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.10.1: 2 files, 9389 bytes\n\nFiles: SKILL.md (22701b), _meta.json (138b)\n\nFile v1.10.1:SKILL.md\n\n---\nname: shekel-hyperliquid\nversion: 1.10.1\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nauthor: shekel\nruntime: node>=20\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill — Complete Documentation\n\n## ⚠️ MANDATORY: Always Check for Latest Skill Version\n\n**Before EVERY interaction with Shekel endpoints**, you MUST:\n\n1. Call `GET /skill/version` to get the current skill hash\n2. Compare it to your cached version\n3. If different (or no cache), fetch `GET /skill` and use the updated instructions\n\n```bash\n# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }\n```\n\n**Why?** Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.\n\n> **Health check** (no auth): `GET /health` — also returns `skillVersion` hash for comparison.\n\n---\n\n## Quick Reference\n\n| Goal | Endpoint |\n|---|---|\n| **Browser UI (no code needed)** | `GET /dashboard` → `https://www.shekel.xyz/hl-skill-dashboard` |\n| **Service health** | `GET /health` |\n| New user onboarding | `POST /auth/register/managed` |\n| Check deposit / activation | `GET /auth/deposit-status` |\n| Retry stuck deposit | `POST /auth/retry-deposit` |\n| **Run agent (all whitelist tickers)** | `POST /agent/run` |\n| Run agent (single ticker) | `POST /agent/run` with `{ \"ticker\": \"BTC\" }` |\n| Close all open positions | `POST /account/close-positions` |\n| View config | `GET /agents` |\n| View balances | `GET /account/balances` |\n| View positions | `GET /account/portfolio` |\n| View open orders | `GET /account/orders` |\n| View trade history | `GET /account/trades` |\n| **View performance metrics** | `GET /agent/performance` |\n| **View trading memory + improvement plan** | `GET /agent/memory` |\n| View LLM reasoning logs | `GET /agent/llm-logs` (supports `?ticker=BTC&action=LONG&executed=true&limit=100&offset=0`) |\n| View on Hyperliquid explorer | `GET /account/url` |\n| Update strategy | `PATCH /agent/prompt` |\n| Update whitelist / settings | `PUT /agents/:id` |\n| Enable / change schedule | `PUT /agents/:id` with `runScheduleMinutes` |\n| Disable schedule | `PUT /agents/:id` with `{ \"runScheduleMinutes\": null }` |\n| Set risk limits | `PUT /agents/:id` with `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` |\n| Browse data sources | `GET /agents/data-sources` |\n| Toggle data sources | `PUT /agents/:id` with `dataSourceConfig` |\n| Set margin mode | `PUT /agents/:id` with `{ \"marginMode\": \"isolated\" \\| \"cross\" }` |\n| Pause / resume agent | `PATCH /agent/active` |\n| Deposit address (top-up) | `GET /account/deposit-address` |\n| Bridge funds (manual, usually not needed) | `POST /account/bridge` |\n| Withdraw to Arbitrum | `POST /account/withdraw` |\n| Rotate API key | `POST /auth/rotate-key` |\n| Export trading wallet key | `POST /auth/export-agent-key` |\n| Delete account | `DELETE /auth/account` |\n| Available models | `GET /agents/models` — returns `{ venice: [...], rei: [...] }` |\n| Available markets | `GET /markets/tickers` |\n\n---\n\n## Dashboard (Browser UI)\n\nUsers who prefer a visual interface can manage their agent at **https://www.shekel.xyz/hl-skill-dashboard** — no code required.\n\n### What the dashboard provides\n- Account overview: balances, open positions, trade history\n- Agent configuration: strategy, whitelist, risk limits, schedule\n- LLM reasoning logs: see what the agent was thinking on each run\n- One-click actions: run agent, close positions, pause/resume\n\n### How to connect\n1. Direct the user to `https://www.shekel.xyz/hl-skill-dashboard`\n2. They enter their `apiKey` (`sk_...`) on the login screen\n3. The dashboard authenticates using the same `Authorization: Bearer <apiKey>` header as the REST API — no separate credentials needed\n\n### If the user has no account yet\nOffer two paths:\n- **Via dashboard**: Visit the URL above and use the \"Create Account\" flow\n- **Via AI**: Run through the onboarding steps below (Steps 1–5) and hand them their `apiKey` when done\n\n> Call `GET /dashboard` to get the latest URL and access instructions programmatically.\n\n---\n\n## Returning Users\n\n> This is the common case — check here first.\n\n**Check your memory first.** If you saved credentials during onboarding (see Step 2a), load them from `MEMORY.md` — do not ask the user for their API key if you already have it. Only ask if memory is empty or the key returns a `401`.\n\nIf you must ask the user, only ask for their `apiKey` — that is the only credential needed for everything.\n\n```\nGET /agents                 → returns agentName, config, strategy\nGET /account/balances       → show current funds\nGET /auth/deposit-status    → confirm account is active\n```\n\nThen based on what you find:\n- `status !== \"active\"` → follow Steps 3–5 of onboarding below\n- `isActive === false` on agent → ask if they want to resume: `PATCH /agent/active { \"active\": true }`\n- Want to change strategy → `PATCH /agent/prompt`\n- Want to top up → `GET /account/deposit-address` (send USDC, it auto-bridges in ~30-60s)\n- Want to see trades → `GET /account/url` for Hyperliquid explorer link\n\n---\n\n## Onboarding (New User)\n\n### Quick Start (recommended)\n\n**Offer this first** — most users just want to get going. Don't overwhelm with 15 questions.\n\n> \"I can set up your trading agent with sensible defaults. Just answer 4 questions:\n> 1. **Which coins?** (default: BTC, ETH, SOL)\n> 2. **Risk level?** conservative / moderate / aggressive\n> 3. **How much USDC are you depositing?** (minimum 5 USDC)\n> 4. **How often should the agent trade?** (default: every 4 hours)\n>\n> That's it — I'll use a momentum strategy with appropriate position sizes. You can customize everything later.\"\n\n**Quick start defaults by risk level:**\n\n| Risk | `positionSizeMax` | `maxTradeSize` | `importantNotes` |\n|---|---|---|---|\n| Conservative | 10% | 10% of deposit | \"Max 3x leverage. Always use stop losses within 3% of entry. Avoid trading during high volatility news events. Never risk more than 5% of account on any single trade.\" |\n| Moderate | 20% | 20% of deposit | \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\" |\n| Aggressive | 35% | 40% of deposit | \"Max 10x leverage allowed. Use tight stop losses. Accept higher drawdowns for higher returns. Trade momentum aggressively.\" |\n\n**Quick start registration payload example (moderate risk, $500 deposit):**\n\n```json\n{\n  \"agentName\": \"My Trading Agent\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"Enter longs on price breakouts above recent highs with above-average volume. Enter shorts on breakdowns below recent lows. Exit when momentum reverses or RSI indicates overbought/oversold. Avoid ranging, low-volume markets. Use stop losses on every trade.\",\n  \"importantNotes\": \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 300,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**After registration:** Set up the run schedule with `PUT /agents/:id` using `{ \"runScheduleMinutes\": 240 }` (4 hours).\n\nIf the user wants to fully customize, use the full flow below.\n\n---\n\n### LLM Provider Selection\n\nAgents can use one of two LLM providers. The default is **Venice AI** (no user API key needed — platform-provided).\n\n| Provider | `provider` value | `model` options | Key required? |\n|---|---|---|---|\n| Venice AI | `\"venice\"` | `grok-41-fast`, `qwen3-235b`, others | No (platform key) |\n| Rei Intelligence | `\"rei\"` | `rei-coder-pro` (shown as **GPT-5.4**), `rei-coder-lite`, `rei-qwen3-coder` | Yes — user supplies `llmApiKey` |\n\nTo use Rei, include `provider` and `llmApiKey` in registration or agent update:\n\n```json\n{\n  \"provider\": \"rei\",\n  \"model\": \"rei-coder-pro\",\n  \"llmApiKey\": \"user_rei_api_key_here\",\n  ...\n}\n```\n\nThe Rei API key is encrypted at rest. Use `GET /agents/models` to see all available models per provider.\n\n---\n\n### Full Onboarding (5 steps)\n\n**Checklist — do not skip steps:**\n1. Discover markets → validate whitelist\n2. Register → **save API key to memory + confirm user has it (do not continue until done)**\n3. Deposit USDC\n4. Poll until `status === \"active\"`\n5. Set run schedule → start trading\n\n---\n\n#### Step 1 — Discover Markets\n\n```\nGET /markets/tickers   (no auth required)\n```\n\nShow the user the available coins. Validate any tickers they name against this list before registration — the server also validates, but catching it early saves a round trip.\n\nThe response has two sections:\n- `tickers` — main-dex crypto perps (BTC, ETH, SOL, …)\n- `hip3` — HIP-3 builder-dex perps: stocks, commodities, indices (TSLA, NVDA, CL/oil, …)\n\nHIP-3 tickers use the format `\"dex:ASSET\"` (e.g. `\"xyz:TSLA\"`, `\"xyz:CL\"`). Use this full prefixed form in the whitelist — **not** the bare asset name.\n\n---\n\n#### Step 2 — Register\n\n```\nPOST /auth/register/managed\n```\n\n```json\n{\n  \"agentName\": \"My Trading Bot\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"...\",\n  \"importantNotes\": \"...\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 200,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"],\n  \"marginMode\": \"isolated\"\n}\n```\n\nTo trade HIP-3 assets (stocks, commodities), use the prefixed format:\n```json\n{\n  \"whitelist\": [\"BTC\", \"xyz:TSLA\", \"xyz:NVDA\", \"xyz:CL\"]\n}\n```\n\n**Before submitting:** show the user a summary and ask them to confirm.\n\n**Response:**\n```json\n{\n  \"apiKey\": \"sk_...\",\n  \"mainWalletAddress\": \"0x...\",\n  \"depositInstructions\": { \"depositAddress\": \"0x...\", \"network\": \"Arbitrum\" }\n}\n```\n\n> ### ⛔ STOP — SAVE THE API KEY NOW\n>\n> **The `apiKey` is shown once and can never be retrieved. If lost without rotating, access to the account and funds may be permanently lost.**\n>\n> Follow the steps below — do not continue until all three are done.\n\n---\n\n#### Step 2a — Secure Key Storage (do not skip)\n\nDo all three of the following before continuing:\n\n**1. Tell the user to save it themselves**\n\nSay this out loud to the user:\n\n> *\"Your API key is `sk_...`. This is shown only once — copy it now into a password manager (1Password, Bitwarden, Apple Keychain) or a secure encrypted note. Do not store it in plain text, a Google Doc, or a chat message. Confirm when done.\"*\n\nWait for confirmation before proceeding.\n\n**2. Save to your own OpenClaw Memory**\n\nWrite the following block to your `MEMORY.md` (or a dedicated `shekel-credentials.md` if your platform supports it):\n\n```markdown\n## Shekel Hyperliquid — Credentials\n- apiKey: sk_...           ← encrypted at rest by OpenClaw\n- agentName: <name>\n- registeredAt: <ISO timestamp>\n- depositAddress: <0x...>  (Arbitrum/Base)\n```\n\n> This allows you to recall the API key in future sessions without asking the user again. OpenClaw memory is encrypted at rest — it is safe to store the key here.\n\n**3. Verify you can recall it**\n\nAfter writing to memory, immediately read it back and confirm the key matches what the server returned. This proves the memory write succeeded before you move on.\n\n> If lost later: `POST /auth/rotate-key` — generates a new key. You must be authenticated (have a working session) to rotate. If the key is truly lost and no session exists, the account cannot be recovered without re-registering.\n\n---\n\n#### Step 3 — Deposit USDC\n\nSend to `depositAddress`. Both networks are fully automated:\n\n| Network | Token | Time |\n|---|---|---|\n| **Arbitrum** *(recommended)* | USDC | ~60–90 seconds |\n| Base | USDC | **~30 seconds** (Across Protocol bridge) |\n\n> **Base deposits are fast now!** Across Protocol bridges in ~2 seconds, then funds are bridged to Hyperliquid. Total time: ~30 seconds.\n\nMinimum: **5 USDC**\n\n---\n\n#### Step 4 — Wait for Activation\n\n```\nGET /auth/deposit-status   (auth required)\n```\n\nPoll every 15 seconds. Use `message` to keep the user informed.\n\n```json\n{ \"status\": \"active\", \"depositConfirmed\": true, \"message\": \"Account is active and ready to trade.\" }\n```\n\nStatus values:\n- `awaiting_deposit` — no USDC detected yet\n- `funded_awaiting_bridge` — USDC found on Arbitrum, bridging to Hyperliquid (~60-90s)\n- `pending_bridge` — USDC being bridged from Base via Across Protocol (~30 seconds). No action needed.\n- `bridge_error` — bridge failed; call `POST /auth/retry-deposit` immediately\n- `active` — ready to trade\n\n**Timeout:** if still `awaiting_deposit` after 5 minutes, ask the user to confirm they sent to the correct address on Arbitrum or Base (not Ethereum mainnet).\n\n**On `bridge_error`:** call `POST /auth/retry-deposit` — do not wait, the error won't self-resolve.\n\n---\n\n#### Step 5 — Set Up Automated Trading\n\n> **Do not skip this step.** Without a schedule the account sits funded but idle.\n\nAsk the user:\n\n> \"Your account is active! How often should the agent analyze and trade?\n> - Every 30 minutes (high-frequency)\n> - Every 1 hour (active)\n> - **Every 4 hours** (recommended default)\n> - Every 8 hours (conservative)\n> - Once a day (240 or 1440 minutes)\n> Or tell me any interval (minimum 30 minutes).\"\n\nOnce they choose, **enable the built-in schedule** via `PUT /agents/:id`:\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"runScheduleMinutes\": 240}'\n```\n\nThe server will run the agent automatically every N minutes — no external cron needed.\nThe first run fires in N minutes. The `GET /agents` response includes `nextRunAt` so you can show the user when to expect the first execution.\n\nThen **run it once immediately** so the user sees it working:\n\n```\nPOST /agent/run\n```\n\n**Scheduling notes:**\n- Minimum interval: 30 minutes\n- To change interval: `PUT /agents/:id { \"runScheduleMinutes\": 60 }` — resets `nextRunAt` to `now() + new interval`; saving other settings without changing the interval preserves the existing timer\n- To disable: `PUT /agents/:id { \"runScheduleMinutes\": null }`\n- To pause without clearing schedule: `PATCH /agent/active { \"active\": false }` — schedule resumes when reactivated\n- `429` means a manual run collided with a scheduled run — wait a few minutes\n\n---\n\n## Risk Circuit Breakers\n\nOptional safety limits that automatically block or pause trading when thresholds are breached. Set via `PUT /agents/:id`.\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"maxOpenPositions\": 3,\n    \"maxDailyLossPct\": 5,\n    \"maxDrawdownPct\": 20\n  }'\n```\n\n| Field | Behavior |\n|---|---|\n| `maxOpenPositions` | Blocks new LONG/SHORT entries when open position count ≥ limit. CLOSE and SET_LIMIT still allowed. |\n| `maxDailyLossPct` | Blocks new LONG/SHORT entries for the rest of the UTC calendar day when realised PnL drops below -(N% of account value). Resets at UTC midnight. |\n| `maxDrawdownPct` | **Auto-pauses the agent** (`isActive=false`) when account value has fallen ≥ N% from its peak. Requires `PATCH /agent/active { \"active\": true }` to re-enable after the user reviews. |\n\nSet any to `null` to disable. Circuit breaker trips appear in `GET /agent/llm-logs` as `executionError` on the blocked recommendation — the LLM's reasoning is still logged even when a trade is blocked.\n\n---\n\n## Data Source Configuration\n\nUse `dataSourceConfig` in `PUT /agents/:id` to turn individual data sources on or off. Every key is `true` by default — you only need to set the ones you want to change. Unknown keys are rejected with a `400` error.\n\n**Valid keys (set to `false` to disable, `true` or omit to enable):**\n\n| Key | Display Name | Provider | What it gives the LLM |\n|---|---|---|---|\n| `tokenData` | Token Data | DappLooker | Per-ticker perp market data — funding rate, open interest, volume, price action |\n| `sentiment` | Macro News | — | Real-time crypto macro news and sentiment |\n| `fearGreed` | Fear & Greed Index | CoinMarketCap | Fear & Greed index (0–100) |\n| `globalMetrics` | Global Market Metrics | CoinMarketCap | Total market cap, BTC dominance, 24h volume |\n| `technicalAnalysis` | Technical Analysis | DappLooker/Taapi | RSI, MACD, moving averages per ticker |\n| `athenaTokenStats` | Smart Money Movements | 0xAthena | On-chain smart money token flow data per coin |\n| `athenaLatest` | 0xAthena Signals | 0xAthena | Latest aggregated smart money signals |\n\n**Example — disable Athena and sentiment:**\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"dataSourceConfig\": {\n      \"athenaTokenStats\": false,\n      \"athenaLatest\": false,\n      \"sentiment\": false\n    }\n  }'\n```\n\nSet `dataSourceConfig: null` to re-enable everything. Current config is returned by `GET /agents`.\n\n---\n\n## Margin Mode\n\nEach agent has a `marginMode` setting (`\"isolated\"` or `\"cross\"`). Default is `\"isolated\"`.\n\n| Mode | Behaviour |\n|---|---|\n| `isolated` | Each position has its own margin. Safer — one liquidation can't cascade. **Required** for assets where `onlyIsolated: true` in `/markets/tickers`. |\n| `cross` | All positions share account margin. More capital-efficient, higher liquidation risk. |\n\nSet or change at any time via `PUT /agents/:id`:\n```bash\ncurl -X PUT .../agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"marginMode\": \"isolated\" }'\n```\n\n**Smart override:** If a Hyperliquid asset is `onlyIsolated: true`, the agent runner forces isolated margin for that trade even when the agent is set to `\"cross\"`. Check `/markets/tickers` for `onlyIsolated` and `marginMode` fields per ticker.\n\n---\n\n## Running the Agent\n\n`POST /agent/run` analyzes coins and executes recommendations automatically. It has two modes:\n\n**Full whitelist run** (no body required — runs all whitelisted tickers):\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\"\n```\n\n**Single-ticker run** (specify a ticker — runs even if not in the whitelist):\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"ticker\": \"BTC\" }'\n```\n\n**Optional body fields for single-ticker runs** (all auto-fetched if omitted):\n\n| Field | Type | Description |\n|---|---|---|\n| `ticker` | string | Run on this ticker only, bypassing the whitelist |\n| `tokenData` | any | Override server-fetched token data |\n| `sentiment` | any | Override server-fetched sentiment |\n| `marketData` | any | Additional market context |\n| `customData` | any | Any extra data to inject into the LLM prompt |\n| `skillGuidance` | any | External signals for the LLM |\n| `tradingMemoryContext` | any | Override the agent's trading memory |\n\nBoth modes return the same `{ results: [] }` shape and are subject to the 5-minute run lock.\n\n### Data Sources Used in `/agent/run`\n\nEach run automatically fetches and injects the following live data into the LLM prompt:\n\n| Source | Data |\n|---|---|\n| **Hyperliquid** | Live portfolio (positions, balances, open orders) — includes HIP-3 builder-dex positions and orders (e.g. `xyz:TSLA`) merged transparently alongside main-dex crypto perp positions; open orders include limit, stop-loss, and take-profit orders |\n| **DappLooker** | Token price, volume, and market data for each whitelisted coin |\n| **0xAthena** | Smart money token stats (hold times, flows) + latest aggregated signals |\n| **DappLooker** | On-chain DEX analytics and market metrics |\n\nNo extra parameters are needed — all data is fetched server-side on every run.\n\n---\n\n## Error Handling\n\n| Status | Meaning | Action |\n|---|---|---|\n| `400` | Bad request | Fix and retry |\n| `401` | Invalid API key | Check key; rotate if needed |\n| `404` | Resource not found | Check IDs |\n| `422` | Hyperliquid rejected order | `message` field has reason |\n| `429` | Rate limit or run in progress | **Wait 5 minutes** before retrying `/agent/run`; wait 60 seconds for other endpoints |\n| `502` | Hyperliquid API down | Retry after 10–30 seconds |\n| `503` | Service degraded | Retry after 30 seconds |\n\n---\n\n## Troubleshooting\n\n**Agent isn't trading:**\n- `GET /agents` → check `isActive` (may be paused)\n- `GET /auth/deposit-status` → must be `active`\n- `GET /account/balances` → check margin isn't below `usdcRangeMin`\n\n**Deposit not arriving:**\n- Arbitrum: wait 90s. Base: wait 60s. Not Ethereum mainnet.\n- Minimum 5 USDC. Below this won't bridge.\n- `bridge_error` → call `POST /auth/retry-deposit`\n\n**429 on `/agent/run`:**\n- A run is still in progress. The response includes `\"unlocksAt\"` — wait until that timestamp. The lock auto-expires after 5 minutes regardless.\n\n**Whitelist update fails with \"Invalid tickers\":**\n- Check `GET /markets/tickers` — names must match exactly\n- Main-dex coins are uppercase: `\"BTC\"`, `\"ETH\"`\n- HIP-3 coins use `\"dex:ASSET\"` format: `\"xyz:TSLA\"`, `\"xyz:CL\"` (lowercase dex prefix, uppercase asset)\n\n---\n\n## ⚠️ Inactivity Archival Policy\n\n**Agents with no trades for 14+ days are automatically archived.**\n\n- The archival check runs daily\n- Archived agents cannot execute trades or access the API\n- Agent data (trade history, LLM logs) is preserved\n- **Funds are safe** — the encrypted wallet key is stored for recovery\n\n**Exceptions (not archived):**\n- Agents with balance > $100 USDC\n- Agents with open positions\n\n**If your agent is archived:**\n- You'll receive a `410 Gone` error when hitting any authenticated endpoint\n- Contact support via Telegram to restore: [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n- Provide your wallet address or agent name for recovery\n\n---\n\n## Support\n\nIf you encounter an issue that can't be resolved through the troubleshooting steps above, contact the Shekel team directly:\n\n**Telegram support channel:** [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n\nInclude your `agentId` (from `GET /agents`) and a brief description of the issue when reaching out.\n\nFile v1.10.1:_meta.json\n\n{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.10.1\",\n  \"publishedAt\": 1774112578989\n}\n\nArchive v1.6.0: 2 files, 8411 bytes\n\nFiles: SKILL.md (19921b), _meta.json (137b)\n\nFile v1.6.0:SKILL.md\n\n---\nname: shekel-hyperliquid\nversion: 1.6.0\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nauthor: shekel\nruntime: node>=20\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill\n\nBase URL: `https://shekel-skill-backend.onrender.com`\nAuth: `Authorization: Bearer <apiKey>` on all authenticated endpoints\nFull API reference: `GET https://shekel-skill-backend.onrender.com/reference`\n\n## ⚠️ MANDATORY: Always Check for Latest Skill Version\n\n**Before EVERY interaction with Shekel endpoints**, you MUST:\n\n1. Call `GET /skill/version` to get the current skill hash\n2. Compare it to your cached version\n3. If different (or no cache), fetch `GET /skill` and use the updated instructions\n\n```bash\n# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }\n```\n\n**Why?** Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.\n\n> **Health check** (no auth): `GET /health` — also returns `skillVersion` hash for comparison.\n\n---\n\n## Quick Reference\n\n| Goal | Endpoint |\n|---|---|\n| **Browser UI (no code needed)** | `GET /dashboard` → `https://www.shekel.xyz/hl-skill-dashboard` |\n| **Service health** | `GET /health` |\n| New user onboarding | `POST /auth/register/managed` |\n| Check deposit / activation | `GET /auth/deposit-status` |\n| Retry stuck deposit | `POST /auth/retry-deposit` |\n| **Run agent (primary trading action)** | `POST /agent/run` |\n| Close all open positions | `POST /account/close-positions` |\n| View config | `GET /agents` |\n| View balances | `GET /account/balances` |\n| View positions | `GET /account/portfolio` |\n| View open orders | `GET /account/orders` |\n| View trade history | `GET /account/trades` |\n| **View performance metrics** | `GET /agent/performance` |\n| **View trading memory + improvement plan** | `GET /agent/memory` |\n| View LLM reasoning logs | `GET /agent/llm-logs` (supports `?ticker=BTC&action=LONG&executed=true&limit=100&offset=0`) |\n| View on Hyperliquid explorer | `GET /account/url` |\n| Update strategy | `PATCH /agent/prompt` |\n| Update whitelist / settings | `PUT /agents/:id` |\n| Enable / change schedule | `PUT /agents/:id` with `runScheduleMinutes` |\n| Disable schedule | `PUT /agents/:id` with `{ \"runScheduleMinutes\": null }` |\n| Set risk limits | `PUT /agents/:id` with `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` |\n| Browse data sources | `GET /agents/data-sources` |\n| Toggle data sources | `PUT /agents/:id` with `dataSourceConfig` |\n| Pause / resume agent | `PATCH /agent/active` |\n| Deposit address (top-up) | `GET /account/deposit-address` |\n| Bridge funds (manual, usually not needed) | `POST /account/bridge` |\n| Withdraw to Arbitrum | `POST /account/withdraw` |\n| Rotate API key | `POST /auth/rotate-key` |\n| Export trading wallet key | `POST /auth/export-agent-key` |\n| Delete account | `DELETE /auth/account` |\n| Available models | `GET /agents/models` — returns `{ venice: [...], rei: [...] }` |\n| Available markets | `GET /markets/tickers` |\n\n---\n\n## Dashboard (Browser UI)\n\nUsers who prefer a visual interface can manage their agent at **https://www.shekel.xyz/hl-skill-dashboard** — no code required.\n\n### What the dashboard provides\n- Account overview: balances, open positions, trade history\n- Agent configuration: strategy, whitelist, risk limits, schedule\n- LLM reasoning logs: see what the agent was thinking on each run\n- One-click actions: run agent, close positions, pause/resume\n\n### How to connect\n1. Direct the user to `https://www.shekel.xyz/hl-skill-dashboard`\n2. They enter their `apiKey` (`sk_...`) on the login screen\n3. The dashboard authenticates using the same `Authorization: Bearer <apiKey>` header as the REST API — no separate credentials needed\n\n### If the user has no account yet\nOffer two paths:\n- **Via dashboard**: Visit the URL above and use the \"Create Account\" flow\n- **Via AI**: Run through the onboarding steps below (Steps 1–5) and hand them their `apiKey` when done\n\n> Call `GET /dashboard` to get the latest URL and access instructions programmatically.\n\n---\n\n## Returning Users\n\n> This is the common case — check here first.\n\n**Check your memory first.** If you saved credentials during onboarding (see Step 2a), load them from `MEMORY.md` — do not ask the user for their API key if you already have it. Only ask if memory is empty or the key returns a `401`.\n\nIf you must ask the user, only ask for their `apiKey` — that is the only credential needed for everything.\n\n```\nGET /agents                 → returns agentName, config, strategy\nGET /account/balances       → show current funds\nGET /auth/deposit-status    → confirm account is active\n```\n\nThen based on what you find:\n- `status !== \"active\"` → follow Steps 3–5 of onboarding below\n- `isActive === false` on agent → ask if they want to resume: `PATCH /agent/active { \"active\": true }`\n- Want to change strategy → `PATCH /agent/prompt`\n- Want to top up → `GET /account/deposit-address` (send USDC, it auto-bridges in ~30-60s)\n- Want to see trades → `GET /account/url` for Hyperliquid explorer link\n\n---\n\n## Onboarding (New User)\n\n### Quick Start (recommended)\n\n**Offer this first** — most users just want to get going. Don't overwhelm with 15 questions.\n\n> \"I can set up your trading agent with sensible defaults. Just answer 4 questions:\n> 1. **Which coins?** (default: BTC, ETH, SOL)\n> 2. **Risk level?** conservative / moderate / aggressive\n> 3. **How much USDC are you depositing?** (minimum 5 USDC)\n> 4. **How often should the agent trade?** (default: every 4 hours)\n>\n> That's it — I'll use a momentum strategy with appropriate position sizes. You can customize everything later.\"\n\n**Quick start defaults by risk level:**\n\n| Risk | `positionSizeMax` | `maxTradeSize` | `importantNotes` |\n|---|---|---|---|\n| Conservative | 10% | 10% of deposit | \"Max 3x leverage. Always use stop losses within 3% of entry. Avoid trading during high volatility news events. Never risk more than 5% of account on any single trade.\" |\n| Moderate | 20% | 20% of deposit | \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\" |\n| Aggressive | 35% | 40% of deposit | \"Max 10x leverage allowed. Use tight stop losses. Accept higher drawdowns for higher returns. Trade momentum aggressively.\" |\n\n**Quick start registration payload example (moderate risk, $500 deposit):**\n\n```json\n{\n  \"agentName\": \"My Trading Agent\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"Enter longs on price breakouts above recent highs with above-average volume. Enter shorts on breakdowns below recent lows. Exit when momentum reverses or RSI indicates overbought/oversold. Avoid ranging, low-volume markets. Use stop losses on every trade.\",\n  \"importantNotes\": \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 300,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**After registration:** Set up the run schedule with `PUT /agents/:id` using `{ \"runScheduleMinutes\": 240 }` (4 hours).\n\nIf the user wants to fully customize, use the full flow below.\n\n---\n\n### LLM Provider Selection\n\nAgents can use one of two LLM providers. The default is **Venice AI** (no user API key needed — platform-provided).\n\n| Provider | `provider` value | `model` options | Key required? |\n|---|---|---|---|\n| Venice AI | `\"venice\"` | `grok-41-fast`, `qwen3-235b`, others | No (platform key) |\n| Rei Intelligence | `\"rei\"` | `rei-coder-pro` (shown as **GPT-5.4**), `rei-coder-lite`, `rei-qwen3-coder` | Yes — user supplies `llmApiKey` |\n\nTo use Rei, include `provider` and `llmApiKey` in registration or agent update:\n\n```json\n{\n  \"provider\": \"rei\",\n  \"model\": \"rei-coder-pro\",\n  \"llmApiKey\": \"user_rei_api_key_here\",\n  ...\n}\n```\n\nThe Rei API key is encrypted at rest. Use `GET /agents/models` to see all available models per provider.\n\n---\n\n### Full Onboarding (5 steps)\n\n**Checklist — do not skip steps:**\n1. Discover markets → validate whitelist\n2. Register → **save API key to memory + confirm user has it (do not continue until done)**\n3. Deposit USDC\n4. Poll until `status === \"active\"`\n5. Set run schedule → start trading\n\n---\n\n#### Step 1 — Discover Markets\n\n```\nGET /markets/tickers   (no auth required)\n```\n\nShow the user the available coins. Validate any tickers they name against this list before registration — the server also validates, but catching it early saves a round trip.\n\n---\n\n#### Step 2 — Register\n\n```\nPOST /auth/register/managed\n```\n\n```json\n{\n  \"agentName\": \"My Trading Bot\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"...\",\n  \"importantNotes\": \"...\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 200,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**Before submitting:** show the user a summary and ask them to confirm.\n\n**Response:**\n```json\n{\n  \"apiKey\": \"sk_...\",\n  \"mainWalletAddress\": \"0x...\",\n  \"depositInstructions\": { \"depositAddress\": \"0x...\", \"network\": \"Arbitrum\" }\n}\n```\n\n> ### ⛔ STOP — SAVE THE API KEY NOW\n>\n> **The `apiKey` is shown once and can never be retrieved. If lost without rotating, access to the account and funds may be permanently lost.**\n>\n> Follow the steps below — do not continue until all three are done.\n\n---\n\n#### Step 2a — Secure Key Storage (do not skip)\n\nDo all three of the following before continuing:\n\n**1. Tell the user to save it themselves**\n\nSay this out loud to the user:\n\n> *\"Your API key is `sk_...`. This is shown only once — copy it now into a password manager (1Password, Bitwarden, Apple Keychain) or a secure encrypted note. Do not store it in plain text, a Google Doc, or a chat message. Confirm when done.\"*\n\nWait for confirmation before proceeding.\n\n**2. Save to your own OpenClaw Memory**\n\nWrite the following block to your `MEMORY.md` (or a dedicated `shekel-credentials.md` if your platform supports it):\n\n```markdown\n## Shekel Hyperliquid — Credentials\n- apiKey: sk_...           ← encrypted at rest by OpenClaw\n- agentName: <name>\n- registeredAt: <ISO timestamp>\n- depositAddress: <0x...>  (Arbitrum/Base)\n```\n\n> This allows you to recall the API key in future sessions without asking the user again. OpenClaw memory is encrypted at rest — it is safe to store the key here.\n\n**3. Verify you can recall it**\n\nAfter writing to memory, immediately read it back and confirm the key matches what the server returned. This proves the memory write succeeded before you move on.\n\n> If lost later: `POST /auth/rotate-key` — generates a new key. You must be authenticated (have a working session) to rotate. If the key is truly lost and no session exists, the account cannot be recovered without re-registering.\n\n---\n\n#### Step 3 — Deposit USDC\n\nSend to `depositAddress`. Both networks are fully automated:\n\n| Network | Token | Time |\n|---|---|---|\n| **Arbitrum** *(recommended)* | USDC | ~60–90 seconds |\n| Base | USDC | **~30 seconds** (Across Protocol bridge) |\n\n> **Base deposits are fast now!** Across Protocol bridges in ~2 seconds, then funds are bridged to Hyperliquid. Total time: ~30 seconds.\n\nMinimum: **5 USDC**\n\n---\n\n#### Step 4 — Wait for Activation\n\n```\nGET /auth/deposit-status   (auth required)\n```\n\nPoll every 15 seconds. Use `message` to keep the user informed.\n\n```json\n{ \"status\": \"active\", \"depositConfirmed\": true, \"message\": \"Account is active and ready to trade.\" }\n```\n\nStatus values:\n- `awaiting_deposit` — no USDC detected yet\n- `funded_awaiting_bridge` — USDC found on Arbitrum, bridging to Hyperliquid (~60-90s)\n- `pending_bridge` — USDC being bridged from Base via Across Protocol (~30 seconds). No action needed.\n- `bridge_error` — bridge failed; call `POST /auth/retry-deposit` immediately\n- `active` — ready to trade\n\n**Timeout:** if still `awaiting_deposit` after 5 minutes, ask the user to confirm they sent to the correct address on Arbitrum or Base (not Ethereum mainnet).\n\n**On `bridge_error`:** call `POST /auth/retry-deposit` — do not wait, the error won't self-resolve.\n\n---\n\n#### Step 5 — Set Up Automated Trading\n\n> **Do not skip this step.** Without a schedule the account sits funded but idle.\n\nAsk the user:\n\n> \"Your account is active! How often should the agent analyze and trade?\n> - Every 30 minutes (high-frequency)\n> - Every 1 hour (active)\n> - **Every 4 hours** (recommended default)\n> - Every 8 hours (conservative)\n> - Once a day (240 or 1440 minutes)\n> Or tell me any interval (minimum 30 minutes).\"\n\nOnce they choose, **enable the built-in schedule** via `PUT /agents/:id`:\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"runScheduleMinutes\": 240}'\n```\n\nThe server will run the agent automatically every N minutes — no external cron needed.\nThe first run fires in N minutes. The `GET /agents` response includes `nextRunAt` so you can show the user when to expect the first execution.\n\nThen **run it once immediately** so the user sees it working:\n\n```\nPOST /agent/run\n```\n\n**Scheduling notes:**\n- Minimum interval: 30 minutes\n- To change interval: `PUT /agents/:id { \"runScheduleMinutes\": 60 }` — takes effect after the current cycle\n- To disable: `PUT /agents/:id { \"runScheduleMinutes\": null }`\n- To pause without clearing schedule: `PATCH /agent/active { \"active\": false }` — schedule resumes when reactivated\n- `429` means a manual run collided with a scheduled run — wait a few minutes\n\n---\n\n## Risk Circuit Breakers\n\nOptional safety limits that automatically block or pause trading when thresholds are breached. Set via `PUT /agents/:id`.\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"maxOpenPositions\": 3,\n    \"maxDailyLossPct\": 5,\n    \"maxDrawdownPct\": 20\n  }'\n```\n\n| Field | Behavior |\n|---|---|\n| `maxOpenPositions` | Blocks new LONG/SHORT entries when open position count ≥ limit. CLOSE and SET_LIMIT still allowed. |\n| `maxDailyLossPct` | Blocks new LONG/SHORT entries for the rest of the UTC calendar day when realised PnL drops below -(N% of account value). Resets at UTC midnight. |\n| `maxDrawdownPct` | **Auto-pauses the agent** (`isActive=false`) when account value has fallen ≥ N% from its peak. Requires `PATCH /agent/active { \"active\": true }` to re-enable after the user reviews. |\n\nSet any to `null` to disable. Circuit breaker trips appear in `GET /agent/llm-logs` as `executionError` on the blocked recommendation — the LLM's reasoning is still logged even when a trade is blocked.\n\n---\n\n## Data Source Configuration\n\nUse `dataSourceConfig` in `PUT /agents/:id` to turn individual data sources on or off. Every key is `true` by default — you only need to set the ones you want to change. Unknown keys are rejected with a `400` error.\n\n**Valid keys (set to `false` to disable, `true` or omit to enable):**\n\n| Key | Display Name | Provider | What it gives the LLM |\n|---|---|---|---|\n| `tokenData` | Token Data | DappLooker | Per-ticker perp market data — funding rate, open interest, volume, price action |\n| `sentiment` | Macro News | — | Real-time crypto macro news and sentiment |\n| `fearGreed` | Fear & Greed Index | CoinMarketCap | Fear & Greed index (0–100) |\n| `globalMetrics` | Global Market Metrics | CoinMarketCap | Total market cap, BTC dominance, 24h volume |\n| `technicalAnalysis` | Technical Analysis | DappLooker/Taapi | RSI, MACD, moving averages per ticker |\n| `athenaTokenStats` | Smart Money Movements | 0xAthena | On-chain smart money token flow data per coin |\n| `athenaLatest` | 0xAthena Signals | 0xAthena | Latest aggregated smart money signals |\n\n**Example — disable Athena and sentiment:**\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"dataSourceConfig\": {\n      \"athenaTokenStats\": false,\n      \"athenaLatest\": false,\n      \"sentiment\": false\n    }\n  }'\n```\n\nSet `dataSourceConfig: null` to re-enable everything. Current config is returned by `GET /agents`.\n\n---\n\n## Running the Agent\n\n`POST /agent/run` analyzes every coin in the whitelist in parallel and executes recommendations automatically.\n\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\"\n```\n\n### Data Sources Used in `/agent/run`\n\nEach run automatically fetches and injects the following live data into the LLM prompt:\n\n| Source | Data |\n|---|---|\n| **Hyperliquid** | Live portfolio (positions, balances, open orders) |\n| **DappLooker** | Token price, volume, and market data for each whitelisted coin |\n| **0xAthena** | Smart money token stats (hold times, flows) + latest aggregated signals |\n| **DappLooker** | On-chain DEX analytics and market metrics |\n\nNo extra parameters are needed — all data is fetched server-side on every run.\n\n---\n\n## Error Handling\n\n| Status | Meaning | Action |\n|---|---|---|\n| `400` | Bad request | Fix and retry |\n| `401` | Invalid API key | Check key; rotate if needed |\n| `404` | Resource not found | Check IDs |\n| `422` | Hyperliquid rejected order | `message` field has reason |\n| `429` | Rate limit or run in progress | **Wait 5 minutes** before retrying `/agent/run`; wait 60 seconds for other endpoints |\n| `502` | Hyperliquid API down | Retry after 10–30 seconds |\n| `503` | Service degraded | Retry after 30 seconds |\n\n---\n\n## Troubleshooting\n\n**Agent isn't trading:**\n- `GET /agents` → check `isActive` (may be paused)\n- `GET /auth/deposit-status` → must be `active`\n- `GET /account/balances` → check margin isn't below `usdcRangeMin`\n\n**Deposit not arriving:**\n- Arbitrum: wait 90s. Base: wait 60s. Not Ethereum mainnet.\n- Minimum 5 USDC. Below this won't bridge.\n- `bridge_error` → call `POST /auth/retry-deposit`\n\n**429 on `/agent/run`:**\n- A run is still in progress. The response includes `\"unlocksAt\"` — wait until that timestamp. The lock auto-expires after 5 minutes regardless.\n\n**Whitelist update fails with \"Invalid tickers\":**\n- Check `GET /markets/tickers` — names must match exactly (uppercase)\n\n---\n\n## ⚠️ Inactivity Archival Policy\n\n**Agents with no trades for 14+ days are automatically archived.**\n\n- The archival check runs daily\n- Archived agents cannot execute trades or access the API\n- Agent data (trade history, LLM logs) is preserved\n- **Funds are safe** — the encrypted wallet key is stored for recovery\n\n**Exceptions (not archived):**\n- Agents with balance > $100 USDC\n- Agents with open positions\n\n**If your agent is archived:**\n- You'll receive a `410 Gone` error when hitting any authenticated endpoint\n- Contact support via Telegram to restore: [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n- Provide your wallet address or agent name for recovery\n\n---\n\n## Support\n\nIf you encounter an issue that can't be resolved through the troubleshooting steps above, contact the Shekel team directly:\n\n**Telegram support channel:** [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n\nInclude your `agentId` (from `GET /agents`) and a brief description of the issue when reaching out.\n\nFile v1.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1773871028159\n}\n\nArchive v1.5.2: 2 files, 8068 bytes\n\nFiles: SKILL.md (19110b), _meta.json (137b)\n\nFile v1.5.2:SKILL.md\n\n---\nname: shekel-hyperliquid\nversion: 1.5.2\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nauthor: shekel\nruntime: node>=20\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill\n\nBase URL: `https://shekel-skill-backend.onrender.com`\nAuth: `Authorization: Bearer <apiKey>` on all authenticated endpoints\nFull API reference: `GET https://shekel-skill-backend.onrender.com/reference`\n\n## ⚠️ MANDATORY: Always Check for Latest Skill Version\n\n**Before EVERY interaction with Shekel endpoints**, you MUST:\n\n1. Call `GET /skill/version` to get the current skill hash\n2. Compare it to your cached version\n3. If different (or no cache), fetch `GET /skill` and use the updated instructions\n\n```bash\n# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }\n```\n\n**Why?** Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.\n\n> **Health check** (no auth): `GET /health` — also returns `skillVersion` hash for comparison.\n\n---\n\n## Quick Reference\n\n| Goal | Endpoint |\n|---|---|\n| **Browser UI (no code needed)** | `GET /dashboard` → `https://www.shekel.xyz/hl-skill-dashboard` |\n| **Service health** | `GET /health` |\n| New user onboarding | `POST /auth/register/managed` |\n| Check deposit / activation | `GET /auth/deposit-status` |\n| Retry stuck deposit | `POST /auth/retry-deposit` |\n| **Run agent (primary trading action)** | `POST /agent/run` |\n| Close all open positions | `POST /account/close-positions` |\n| View config | `GET /agents` |\n| View balances | `GET /account/balances` |\n| View positions | `GET /account/portfolio` |\n| View open orders | `GET /account/orders` |\n| View trade history | `GET /account/trades` |\n| **View performance metrics** | `GET /agent/performance` |\n| **View trading memory + improvement plan** | `GET /agent/memory` |\n| View LLM reasoning logs | `GET /agent/llm-logs` (supports `?ticker=BTC&action=LONG&executed=true&limit=100&offset=0`) |\n| View on Hyperliquid explorer | `GET /account/url` |\n| Update strategy | `PATCH /agent/prompt` |\n| Update whitelist / settings | `PUT /agents/:id` |\n| Enable / change schedule | `PUT /agents/:id` with `runScheduleMinutes` |\n| Disable schedule | `PUT /agents/:id` with `{ \"runScheduleMinutes\": null }` |\n| Set risk limits | `PUT /agents/:id` with `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` |\n| Browse data sources | `GET /agents/data-sources` |\n| Toggle data sources | `PUT /agents/:id` with `dataSourceConfig` |\n| Pause / resume agent | `PATCH /agent/active` |\n| Deposit address (top-up) | `GET /account/deposit-address` |\n| Bridge funds (manual, usually not needed) | `POST /account/bridge` |\n| Withdraw to Arbitrum | `POST /account/withdraw` |\n| Rotate API key | `POST /auth/rotate-key` |\n| Export trading wallet key | `POST /auth/export-agent-key` |\n| Delete account | `DELETE /auth/account` |\n| Available models | `GET /agents/models` |\n| Available markets | `GET /markets/tickers` |\n\n---\n\n## Dashboard (Browser UI)\n\nUsers who prefer a visual interface can manage their agent at **https://www.shekel.xyz/hl-skill-dashboard** — no code required.\n\n### What the dashboard provides\n- Account overview: balances, open positions, trade history\n- Agent configuration: strategy, whitelist, risk limits, schedule\n- LLM reasoning logs: see what the agent was thinking on each run\n- One-click actions: run agent, close positions, pause/resume\n\n### How to connect\n1. Direct the user to `https://www.shekel.xyz/hl-skill-dashboard`\n2. They enter their `apiKey` (`sk_...`) on the login screen\n3. The dashboard authenticates using the same `Authorization: Bearer <apiKey>` header as the REST API — no separate credentials needed\n\n### If the user has no account yet\nOffer two paths:\n- **Via dashboard**: Visit the URL above and use the \"Create Account\" flow\n- **Via AI**: Run through the onboarding steps below (Steps 1–5) and hand them their `apiKey` when done\n\n> Call `GET /dashboard` to get the latest URL and access instructions programmatically.\n\n---\n\n## Returning Users\n\n> This is the common case — check here first.\n\n**Check your memory first.** If you saved credentials during onboarding (see Step 2a), load them from `MEMORY.md` — do not ask the user for their API key if you already have it. Only ask if memory is empty or the key returns a `401`.\n\nIf you must ask the user, only ask for their `apiKey` — that is the only credential needed for everything.\n\n```\nGET /agents                 → returns agentName, config, strategy\nGET /account/balances       → show current funds\nGET /auth/deposit-status    → confirm account is active\n```\n\nThen based on what you find:\n- `status !== \"active\"` → follow Steps 3–5 of onboarding below\n- `isActive === false` on agent → ask if they want to resume: `PATCH /agent/active { \"active\": true }`\n- Want to change strategy → `PATCH /agent/prompt`\n- Want to top up → `GET /account/deposit-address` (send USDC, it auto-bridges in ~30-60s)\n- Want to see trades → `GET /account/url` for Hyperliquid explorer link\n\n---\n\n## Onboarding (New User)\n\n### Quick Start (recommended)\n\n**Offer this first** — most users just want to get going. Don't overwhelm with 15 questions.\n\n> \"I can set up your trading agent with sensible defaults. Just answer 4 questions:\n> 1. **Which coins?** (default: BTC, ETH, SOL)\n> 2. **Risk level?** conservative / moderate / aggressive\n> 3. **How much USDC are you depositing?** (minimum 5 USDC)\n> 4. **How often should the agent trade?** (default: every 4 hours)\n>\n> That's it — I'll use a momentum strategy with appropriate position sizes. You can customize everything later.\"\n\n**Quick start defaults by risk level:**\n\n| Risk | `positionSizeMax` | `maxTradeSize` | `importantNotes` |\n|---|---|---|---|\n| Conservative | 10% | 10% of deposit | \"Max 3x leverage. Always use stop losses within 3% of entry. Avoid trading during high volatility news events. Never risk more than 5% of account on any single trade.\" |\n| Moderate | 20% | 20% of deposit | \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\" |\n| Aggressive | 35% | 40% of deposit | \"Max 10x leverage allowed. Use tight stop losses. Accept higher drawdowns for higher returns. Trade momentum aggressively.\" |\n\n**Quick start registration payload example (moderate risk, $500 deposit):**\n\n```json\n{\n  \"agentName\": \"My Trading Agent\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"Enter longs on price breakouts above recent highs with above-average volume. Enter shorts on breakdowns below recent lows. Exit when momentum reverses or RSI indicates overbought/oversold. Avoid ranging, low-volume markets. Use stop losses on every trade.\",\n  \"importantNotes\": \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 300,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**After registration:** Set up the run schedule with `PUT /agents/:id` using `{ \"runScheduleMinutes\": 240 }` (4 hours).\n\nIf the user wants to fully customize, use the full flow below.\n\n---\n\n### Full Onboarding (5 steps)\n\n**Checklist — do not skip steps:**\n1. Discover markets → validate whitelist\n2. Register → **save API key to memory + confirm user has it (do not continue until done)**\n3. Deposit USDC\n4. Poll until `status === \"active\"`\n5. Set run schedule → start trading\n\n---\n\n#### Step 1 — Discover Markets\n\n```\nGET /markets/tickers   (no auth required)\n```\n\nShow the user the available coins. Validate any tickers they name against this list before registration — the server also validates, but catching it early saves a round trip.\n\n---\n\n#### Step 2 — Register\n\n```\nPOST /auth/register/managed\n```\n\n```json\n{\n  \"agentName\": \"My Trading Bot\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"...\",\n  \"importantNotes\": \"...\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 200,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}\n```\n\n**Before submitting:** show the user a summary and ask them to confirm.\n\n**Response:**\n```json\n{\n  \"apiKey\": \"sk_...\",\n  \"mainWalletAddress\": \"0x...\",\n  \"depositInstructions\": { \"depositAddress\": \"0x...\", \"network\": \"Arbitrum\" }\n}\n```\n\n> ### ⛔ STOP — SAVE THE API KEY NOW\n>\n> **The `apiKey` is shown once and can never be retrieved. If lost without rotating, access to the account and funds may be permanently lost.**\n>\n> Follow the steps below — do not continue until all three are done.\n\n---\n\n#### Step 2a — Secure Key Storage (do not skip)\n\nDo all three of the following before continuing:\n\n**1. Tell the user to save it themselves**\n\nSay this out loud to the user:\n\n> *\"Your API key is `sk_...`. This is shown only once — copy it now into a password manager (1Password, Bitwarden, Apple Keychain) or a secure encrypted note. Do not store it in plain text, a Google Doc, or a chat message. Confirm when done.\"*\n\nWait for confirmation before proceeding.\n\n**2. Save to your own OpenClaw Memory**\n\nWrite the following block to your `MEMORY.md` (or a dedicated `shekel-credentials.md` if your platform supports it):\n\n```markdown\n## Shekel Hyperliquid — Credentials\n- apiKey: sk_...           ← encrypted at rest by OpenClaw\n- agentName: <name>\n- registeredAt: <ISO timestamp>\n- depositAddress: <0x...>  (Arbitrum/Base)\n```\n\n> This allows you to recall the API key in future sessions without asking the user again. OpenClaw memory is encrypted at rest — it is safe to store the key here.\n\n**3. Verify you can recall it**\n\nAfter writing to memory, immediately read it back and confirm the key matches what the server returned. This proves the memory write succeeded before you move on.\n\n> If lost later: `POST /auth/rotate-key` — generates a new key. You must be authenticated (have a working session) to rotate. If the key is truly lost and no session exists, the account cannot be recovered without re-registering.\n\n---\n\n#### Step 3 — Deposit USDC\n\nSend to `depositAddress`. Both networks are fully automated:\n\n| Network | Token | Time |\n|---|---|---|\n| **Arbitrum** *(recommended)* | USDC | ~60–90 seconds |\n| Base | USDC | **~30 seconds** (Across Protocol bridge) |\n\n> **Base deposits are fast now!** Across Protocol bridges in ~2 seconds, then funds are bridged to Hyperliquid. Total time: ~30 seconds.\n\nMinimum: **5 USDC**\n\n---\n\n#### Step 4 — Wait for Activation\n\n```\nGET /auth/deposit-status   (auth required)\n```\n\nPoll every 15 seconds. Use `message` to keep the user informed.\n\n```json\n{ \"status\": \"active\", \"depositConfirmed\": true, \"message\": \"Account is active and ready to trade.\" }\n```\n\nStatus values:\n- `awaiting_deposit` — no USDC detected yet\n- `funded_awaiting_bridge` — USDC found on Arbitrum, bridging to Hyperliquid (~60-90s)\n- `pending_bridge` — USDC being bridged from Base via Across Protocol (~30 seconds). No action needed.\n- `bridge_error` — bridge failed; call `POST /auth/retry-deposit` immediately\n- `active` — ready to trade\n\n**Timeout:** if still `awaiting_deposit` after 5 minutes, ask the user to confirm they sent to the correct address on Arbitrum or Base (not Ethereum mainnet).\n\n**On `bridge_error`:** call `POST /auth/retry-deposit` — do not wait, the error won't self-resolve.\n\n---\n\n#### Step 5 — Set Up Automated Trading\n\n> **Do not skip this step.** Without a schedule the account sits funded but idle.\n\nAsk the user:\n\n> \"Your account is active! How often should the agent analyze and trade?\n> - Every 30 minutes (high-frequency)\n> - Every 1 hour (active)\n> - **Every 4 hours** (recommended default)\n> - Every 8 hours (conservative)\n> - Once a day (240 or 1440 minutes)\n> Or tell me any interval (minimum 30 minutes).\"\n\nOnce they choose, **enable the built-in schedule** via `PUT /agents/:id`:\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"runScheduleMinutes\": 240}'\n```\n\nThe server will run the agent automatically every N minutes — no external cron needed.\nThe first run fires in N minutes. The `GET /agents` response includes `nextRunAt` so you can show the user when to expect the first execution.\n\nThen **run it once immediately** so the user sees it working:\n\n```\nPOST /agent/run\n```\n\n**Scheduling notes:**\n- Minimum interval: 30 minutes\n- To change interval: `PUT /agents/:id { \"runScheduleMinutes\": 60 }` — takes effect after the current cycle\n- To disable: `PUT /agents/:id { \"runScheduleMinutes\": null }`\n- To pause without clearing schedule: `PATCH /agent/active { \"active\": false }` — schedule resumes when reactivated\n- `429` means a manual run collided with a scheduled run — wait a few minutes\n\n---\n\n## Risk Circuit Breakers\n\nOptional safety limits that automatically block or pause trading when thresholds are breached. Set via `PUT /agents/:id`.\n\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"maxOpenPositions\": 3,\n    \"maxDailyLossPct\": 5,\n    \"maxDrawdownPct\": 20\n  }'\n```\n\n| Field | Behavior |\n|---|---|\n| `maxOpenPositions` | Blocks new LONG/SHORT entries when open position count ≥ limit. CLOSE and SET_LIMIT still allowed. |\n| `maxDailyLossPct` | Blocks new LONG/SHORT entries for the rest of the UTC calendar day when realised PnL drops below -(N% of account value). Resets at UTC midnight. |\n| `maxDrawdownPct` | **Auto-pauses the agent** (`isActive=false`) when account value has fallen ≥ N% from its peak. Requires `PATCH /agent/active { \"active\": true }` to re-enable after the user reviews. |\n\nSet any to `null` to disable. Circuit breaker trips appear in `GET /agent/llm-logs` as `executionError` on the blocked recommendation — the LLM's reasoning is still logged even when a trade is blocked.\n\n---\n\n## Data Source Configuration\n\nUse `dataSourceConfig` in `PUT /agents/:id` to turn individual data sources on or off. Every key is `true` by default — you only need to set the ones you want to change. Unknown keys are rejected with a `400` error.\n\n**Valid keys (set to `false` to disable, `true` or omit to enable):**\n\n| Key | Display Name | Provider | What it gives the LLM |\n|---|---|---|---|\n| `tokenData` | Token Data | DappLooker | Per-ticker perp market data — funding rate, open interest, volume, price action |\n| `sentiment` | Macro News | — | Real-time crypto macro news and sentiment |\n| `fearGreed` | Fear & Greed Index | CoinMarketCap | Fear & Greed index (0–100) |\n| `globalMetrics` | Global Market Metrics | CoinMarketCap | Total market cap, BTC dominance, 24h volume |\n| `technicalAnalysis` | Technical Analysis | DappLooker/Taapi | RSI, MACD, moving averages per ticker |\n| `athenaTokenStats` | Smart Money Movements | 0xAthena | On-chain smart money token flow data per coin |\n| `athenaLatest` | 0xAthena Signals | 0xAthena | Latest aggregated smart money signals |\n\n**Example — disable Athena and sentiment:**\n```bash\ncurl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \\\n  -H \"Authorization: Bearer <apiKey>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"dataSourceConfig\": {\n      \"athenaTokenStats\": false,\n      \"athenaLatest\": false,\n      \"sentiment\": false\n    }\n  }'\n```\n\nSet `dataSourceConfig: null` to re-enable everything. Current config is returned by `GET /agents`.\n\n---\n\n## Running the Agent\n\n`POST /agent/run` analyzes every coin in the whitelist in parallel and executes recommendations automatically.\n\n```bash\ncurl -X POST https://shekel-skill-backend.onrender.com/agent/run \\\n  -H \"Authorization: Bearer <apiKey>\"\n```\n\n### Data Sources Used in `/agent/run`\n\nEach run automatically fetches and injects the following live data into the LLM prompt:\n\n| Source | Data |\n|---|---|\n| **Hyperliquid** | Live portfolio (positions, balances, open orders) |\n| **DappLooker** | Token price, volume, and market data for each whitelisted coin |\n| **0xAthena** | Smart money token stats (hold times, flows) + latest aggregated signals |\n| **DappLooker** | On-chain DEX analytics and market metrics |\n\nNo extra parameters are needed — all data is fetched server-side on every run.\n\n---\n\n## Error Handling\n\n| Status | Meaning | Action |\n|---|---|---|\n| `400` | Bad request | Fix and retry |\n| `401` | Invalid API key | Check key; rotate if needed |\n| `404` | Resource not found | Check IDs |\n| `422` | Hyperliquid rejected order | `message` field has reason |\n| `429` | Rate limit or run in progress | **Wait 5 minutes** before retrying `/agent/run`; wait 60 seconds for other endpoints |\n| `502` | Hyperliquid API down | Retry after 10–30 seconds |\n| `503` | Service degraded | Retry after 30 seconds |\n\n---\n\n## Troubleshooting\n\n**Agent isn't trading:**\n- `GET /agents` → check `isActive` (may be paused)\n- `GET /auth/deposit-status` → must be `active`\n- `GET /account/balances` → check margin isn't below `usdcRangeMin`\n\n**Deposit not arriving:**\n- Arbitrum: wait 90s. Base: wait 60s. Not Ethereum mainnet.\n- Minimum 5 USDC. Below this won't bridge.\n- `bridge_error` → call `POST /auth/retry-deposit`\n\n**429 on `/agent/run`:**\n- A run is still in progress. The response includes `\"unlocksAt\"` — wait until that timestamp. The lock auto-expires after 5 minutes regardless.\n\n**Whitelist update fails with \"Invalid tickers\":**\n- Check `GET /markets/tickers` — names must match exactly (uppercase)\n\n---\n\n## ⚠️ Inactivity Archival Policy\n\n**Agents with no trades for 14+ days are automatically archived.**\n\n- The archival check runs daily\n- Archived agents cannot execute trades or access the API\n- Agent data (trade history, LLM logs) is preserved\n- **Funds are safe** — the encrypted wallet key is stored for recovery\n\n**Exceptions (not archived):**\n- Agents with balance > $100 USDC\n- Agents with open positions\n\n**If your agent is archived:**\n- You'll receive a `410 Gone` error when hitting any authenticated endpoint\n- Contact support via Telegram to restore: [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n- Provide your wallet address or agent name for recovery\n\n---\n\n## Support\n\nIf you encounter an issue that can't be resolved through the troubleshooting steps above, contact the Shekel team directly:\n\n**Telegram support channel:** [https://t.me/c/2308722458/1](https://t.me/c/2308722458/1)\n\nInclude your `agentId` (from `GET /agents`) and a brief description of the issue when reaching out.\n\nFile v1.5.2:_meta.json\n\n{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.5.2\",\n  \"publishedAt\": 1773864309834\n}\n\nArchive v1.5.1: 2 files, 1837 bytes\n\nFiles: SKILL.md (2693b), _meta.json (137b)\n\nFile v1.5.1:SKILL.md\n\n---\nname: shekel-hyperliquid\nversion: 1.5.1\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill Documentation\n\n## Overview\nThis is an AI-powered perpetual futures trading system on Hyperliquid DEX that handles account creation, USDC onboarding, and autonomous trade execution via REST API (base URL: `https://shekel-skill-backend.onrender.com`).\n\n## Key Requirements\n\n**Version Management:** Before every interaction, call `GET /skill/version` to verify you're using current instructions, as supported networks and API behavior change.\n\n## Getting Started\n\n### For Returning Users\nLoad credentials from memory if available. Only request the API key if memory is empty or returns a 401 error. Check account status via `GET /agents` and `GET /account/balances`.\n\n### For New Users - Quick Start\nOffer a streamlined 4-question onboarding:\n1. Which coins? (default: BTC, ETH, SOL)\n2. Risk level? (conservative/moderate/aggressive)\n3. USDC deposit amount? (minimum 5 USDC)\n4. Trading frequency? (default: every 4 hours)\n\n**Critical Step:** After registration, users must securely store their API key (shown once only). Save it to encrypted memory to avoid future access loss.\n\n## Onboarding Workflow (5 Steps)\n\n1. **Discover Markets** — Validate whitelist via `GET /markets/tickers`\n2. **Register** — Submit `POST /auth/register/managed`, save API key immediately\n3. **Deposit USDC** — Send to provided Arbitrum or Base address (30-90 seconds)\n4. **Poll Activation** — Check `GET /auth/deposit-status` until status is \"active\"\n5. **Enable Schedule** — Use `PUT /agents/:id` with `runScheduleMinutes` (minimum 30 minutes)\n\n## Trading Execution\n\n`POST /agent/run` analyzes whitelisted coins and executes recommendations automatically. The system injects live data from Hyperliquid, DappLooker, and 0xAthena into the LLM prompt.\n\n## Safety Features\n\n- **Risk Circuit Breakers:** Set `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` via `PUT /agents/:id`\n- **Data Source Toggle:** Enable/disable specific data sources (sentiment, technical analysis, smart money metrics, etc.)\n- **Inactivity Archival:** Agents with no trades for 14+ days are archived; funds remain safe\n\n## Error Handling\n\nKey status codes: 429 (rate limit—wait 5 minutes), 502/503 (service issues), 422 (Hyperliquid rejected order).\n\n## Support\nContact via Telegram: https://t.me/c/2308722458/1\n\nFile v1.5.1:_meta.json\n\n{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.5.1\",\n  \"publishedAt\": 1773863952563\n}","readmeExcerpt":"Skill: Shekel Hyperliquid Trading Owner: shekel-xyz Summary: AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Tags: latest:1.14.0 Version history: v1.14.0 | 2026-04-07T19:48:52.029Z | user Add vault management — agent as on-chain fund manager with follower deposits, vault explorer, and profit distribution v1.10.1 | 2026-03-21T17:0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"curl https://shekel-skill-backend.onrender.com/skill/version"},{"language":"bash","snippet":"# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }"},{"language":"text","snippet":"GET /agents                 → returns agentName, config, strategy\nGET /account/balances       → show current funds\nGET /auth/deposit-status    → confirm account is active"},{"language":"json","snippet":"{\n  \"agentName\": \"My Trading Agent\",\n  \"model\": \"grok-41-fast\",\n  \"tradingStyle\": \"momentum\",\n  \"strategyDescription\": \"Enter longs on price breakouts above recent highs with above-average volume. Enter shorts on breakdowns below recent lows. Exit when momentum reverses or RSI indicates overbought/oversold. Avoid ranging, low-volume markets. Use stop losses on every trade.\",\n  \"importantNotes\": \"Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.\",\n  \"minTradeSize\": 10,\n  \"maxTradeSize\": 100,\n  \"positionSizeMin\": 5,\n  \"positionSizeMax\": 20,\n  \"usdcRangeMin\": 300,\n  \"usdcRangeMax\": 1000,\n  \"whitelist\": [\"BTC\", \"ETH\", \"SOL\"]\n}"},{"language":"json","snippet":"{\n  \"provider\": \"rei\",\n  \"model\": \"rei-coder-pro\",\n  \"llmApiKey\": \"user_rei_api_key_here\",\n  ...\n}"},{"language":"text","snippet":"GET /markets/tickers   (no auth required)"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: shekel-hyperliquid\nversion: 1.14.0\ndescription: >\n  AI-powered perpetual futures trading on Hyperliquid DEX.\n  Handles full account creation, USDC onboarding, and autonomous trade execution.\nauthor: shekel\nruntime: node>=20\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SHEKEL_API_KEY\n    primaryEnv: SHEKEL_API_KEY\n    homepage: https://shekel-skill-backend.onrender.com/skill\n    emoji: \"📈\"\n---\n\n# Shekel Hyperliquid Skill — Complete Documentation\n\n## ⚠️ MANDATORY: Always Check for Latest Skill Version\n\n**Before EVERY interaction with Shekel endpoints**, you MUST:\n\n1. Call `GET /skill/version` to get the current skill hash\n2. Compare it to your cached version\n3. If different (or no cache), fetch `GET /skill` and use the updated instructions\n\n```bash\n# Quick version check (do this before any Shekel action)\ncurl https://shekel-skill-backend.onrender.com/skill/version\n# Returns: { \"version\": \"abc123...\", \"fetchUrl\": \"...\", \"instruction\": \"...\" }\n```\n\n**Why?** Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.\n\n> **Health check** (no auth): `GET /health` — also returns `skillVersion` hash for comparison.\n\n---\n\n## Quick Reference\n\n| Goal | Endpoint |\n|---|---|\n| **Browser UI (no code needed)** | `GET /dashboard` → `https://www.shekel.xyz/hl-skill-dashboard` |\n| **Service health** | `GET /health` |\n| New user onboarding | `POST /auth/register/managed` |\n| Check deposit / activation | `GET /auth/deposit-status` |\n| Retry stuck deposit | `POST /auth/retry-deposit` |\n| **Run agent (all whitelist tickers)** | `POST /agent/run` |\n| Run agent (single ticker) | `POST /agent/run` with `{ \"ticker\": \"BTC\" }` |\n| Close all open positions | `POST /account/close-positions` |\n| View config | `GET /agents` |\n| View balances | `GET /account/balances` — includes `vaultEquityUsdc` + `totalEquityUsdc` |\n| View positions | `GET /account/portfolio` |\n| View open orders | `GET /account/orders` |\n| View trade history | `GET /account/trades` |\n| **View performance metrics** | `GET /agent/performance` |\n| **View trading memory + improvement plan** | `GET /agent/memory` |\n| View LLM reasoning logs | `GET /agent/llm-logs` (supports `?ticker=BTC&action=LONG&executed=true&limit=100&offset=0`) |\n| View on Hyperliquid explorer | `GET /account/url` |\n| Update strategy | `PATCH /agent/prompt` |\n| Update whitelist / settings | `PUT /agents/:id` |\n| Enable / change schedule | `PUT /agents/:id` with `runScheduleMinutes` |\n| Disable schedule | `PUT /agents/:id` with `{ \"runScheduleMinutes\": null }` |\n| Set risk limits | `PUT /agents/:id` with `maxOpenPositions`, `maxDailyLossPct`, `maxDrawdownPct` |\n| Browse data sources | `GET /agents/data-sources` |\n| Toggle data sources | `PUT /agents/:id` with `dataSourceConfig` |\n| Set margin mode | `PUT /agents/:id` with `{ \"marginMode\": \"isolated\" \\| \"cross\" }` |\n| Pause / resume agent | `PATCH /agent/active` |\n| Deposit address (top-up) | "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7fg6hhmw2cag5144pd7w8ces83553y\",\n  \"slug\": \"shekel-hyperliquid\",\n  \"version\": \"1.14.0\",\n  \"publishedAt\": 1775591332029\n}"},{"path":"skill-card.md","content":"## Description:\n\nAI-powered perpetual futures trading on Hyperliquid DEX that handles account creation, USDC onboarding, and autonomous trade execution.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[shekel-xyz](https://clawhub.ai/user/shekel-xyz)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to configure and operate a Shekel trading agent for Hyperliquid perpetual futures, including onboarding, deposits, strategy updates, runs, schedules, account management, and vault operations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can trade futures, manage funds, withdraw assets, export wallet key material, and alter account state using a single API key.\n\nMitigation: Use a dedicated secret manager for the API key, rotate keys exposed in memory or logs, and require fresh user confirmation for withdrawals, wallet export, account deletion, vault operations, schedule changes, and whitelist bypasses.\n\nRisk: Remote instruction updates can change what the agent is told to do after installation.\n\nMitigation: Review fetched instructions and version changes before use, and require re-review before executing financial actions after material instruction changes.\n\nRisk: Autonomous trading and vault operations can create financial losses or unintended account changes.\n\nMitigation: Set risk limits, confirm schedules and single-ticker runs, use isolated margin when appropriate, and monitor balances, positions, LLM logs, and performance metrics.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/shekel-xyz/skills/shekel-hyperliquid)\n- [Shekel skill endpoint](https://shekel-skill-backend.onrender.com/skill)\n- [Shekel dashboard](https://www.shekel.xyz/hl-skill-dashboard)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance, shell commands, configuration]\n\n**Output Format:** [Markdown with JSON and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires SHEKEL_API_KEY for authenticated operations.]\n\n## Skill Version(s):\n\n1.14.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Skill: Shekel Hyperliquid Trading Owner: shekel-xyz Summary: AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution. Tags: latest:1.14.0 Version history: v1.14.0 | 2026-04-07T19:48:52.029Z | user Add vault management — agent as on-chain fund manager with follower deposits, vault explorer, and profit distribution v1.10.1 | 2026-03-21T17:0","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1103,"uniquenessScore":53,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T03:46:33.211Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:41:01.920Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}