📦 Shekel Hyperliquid
Hyperliquid DEXでAIを活用し、アカウント作成からUSDCの入金、自律的な先物取引までを自動実行するSkill。
📜 元の英語説明(参考)
AI-powered perpetual futures trading on Hyperliquid DEX. Handles full account creation, USDC onboarding, and autonomous trade execution.
🇯🇵 日本人クリエイター向け解説
Hyperliquid DEXでAIを活用し、アカウント作成からUSDCの入金、自律的な先物取引までを自動実行するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o shekel-hyperliquid.zip https://jpskill.com/download/5374.zip && unzip -o shekel-hyperliquid.zip && rm shekel-hyperliquid.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5374.zip -OutFile "$d\shekel-hyperliquid.zip"; Expand-Archive "$d\shekel-hyperliquid.zip" -DestinationPath $d -Force; ri "$d\shekel-hyperliquid.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
shekel-hyperliquid.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
shekel-hyperliquidフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Shekel Hyperliquid の使い方を教えて
- › Shekel Hyperliquid で何ができるか具体例で見せて
- › Shekel Hyperliquid を初めて使う人向けにステップを案内して
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] shekel-hyperliquid
Shekel Hyperliquid Skill — 完全なドキュメント
⚠️ 必須: 常に最新のスキルバージョンを確認してください
Shekel エンドポイントとのすべてのやり取りの前に、以下のことを行う必要があります。
GET /skill/versionを呼び出して、現在のスキルハッシュを取得します。- それをキャッシュされたバージョンと比較します。
- 異なる場合(またはキャッシュがない場合)は、
GET /skillをフェッチして、更新された指示を使用します。
# クイックバージョンチェック(Shekel のアクションの前に毎回実行してください)
curl https://shekel-skill-backend.onrender.com/skill/version
# 返り値: { "version": "abc123...", "fetchUrl": "...", "instruction": "..." }
なぜですか? サポートされるネットワーク、入金方法、および API の動作は変更されます。古い指示を使用すると、エラーが発生したり、ユーザーに誤った情報が提供されたりする可能性があります。
ヘルスチェック(認証なし):
GET /health— 比較のためにskillVersionハッシュも返します。
クイックリファレンス
| 目標 | エンドポイント |
|---|---|
| ブラウザ UI (コード不要) | GET /dashboard → https://www.shekel.xyz/hl-skill-dashboard |
| サービスヘルス | GET /health |
| 新規ユーザーのオンボーディング | POST /auth/register/managed |
| 入金 / 有効化の確認 | GET /auth/deposit-status |
| 停止した入金の再試行 | POST /auth/retry-deposit |
| エージェントの実行 (すべてのホワイトリストティッカー) | POST /agent/run |
| エージェントの実行 (単一ティッカー) | POST /agent/run と { "ticker": "BTC" } |
| すべての未決済ポジションをクローズ | POST /account/close-positions |
| 設定の表示 | GET /agents |
| 残高の表示 | GET /account/balances |
| ポジションの表示 | GET /account/portfolio |
| 未決済注文の表示 | GET /account/orders |
| 取引履歴の表示 | GET /account/trades |
| パフォーマンス指標の表示 | GET /agent/performance |
| 取引記憶 + 改善計画の表示 | GET /agent/memory |
| LLM 推論ログの表示 | GET /agent/llm-logs (?ticker=BTC&action=LONG&executed=true&limit=100&offset=0 をサポート) |
| Hyperliquid エクスプローラーで表示 | GET /account/url |
| 戦略の更新 | PATCH /agent/prompt |
| ホワイトリスト / 設定の更新 | PUT /agents/:id |
| スケジュールの有効化 / 変更 | PUT /agents/:id と runScheduleMinutes |
| スケジュールの無効化 | PUT /agents/:id と { "runScheduleMinutes": null } |
| リスク制限の設定 | PUT /agents/:id と maxOpenPositions, maxDailyLossPct, maxDrawdownPct |
| データソースの参照 | GET /agents/data-sources |
| データソースの切り替え | PUT /agents/:id と dataSourceConfig |
| マージンモードの設定 | PUT /agents/:id と { "marginMode": "isolated" \| "cross" } |
| エージェントの一時停止 / 再開 | PATCH /agent/active |
| 入金アドレス (追加入金) | GET /account/deposit-address |
| 資金のブリッジ (手動、通常は不要) | POST /account/bridge |
| Arbitrum への出金 | POST /account/withdraw |
| API キーのローテーション | POST /auth/rotate-key |
| 取引ウォレットキーのエクスポート | POST /auth/export-agent-key |
| アカウントの削除 | DELETE /auth/account |
| 利用可能なモデル | GET /agents/models — { venice: [...], rei: [...] } を返します |
| 利用可能な市場 | GET /markets/tickers |
ダッシュボード (ブラウザ UI)
視覚的なインターフェースを好むユーザーは、https://www.shekel.xyz/hl-skill-dashboard でエージェントを管理できます。コードは不要です。
ダッシュボードが提供するもの
- アカウント概要: 残高、未決済ポジション、取引履歴
- エージェント設定: 戦略、ホワイトリスト、リスク制限、スケジュール
- LLM 推論ログ: 各実行でエージェントが何を考えていたかを確認できます
- ワンクリックアクション: エージェントの実行、ポジションのクローズ、一時停止/再開
接続方法
- ユーザーを
https://www.shekel.xyz/hl-skill-dashboardに誘導します。 - ログイン画面で
apiKey(sk_...) を入力します。 - ダッシュボードは、REST API と同じ
Authorization: Bearer <apiKey>ヘッダーを使用して認証します。別途認証情報は必要ありません。
ユーザーがまだアカウントを持っていない場合
2つのパスを提供します。
- ダッシュボード経由: 上記の URL にアクセスし、「アカウント作成」フローを使用します。
- AI 経由: 以下のオンボーディング手順(ステップ1~5)を実行し、完了時に
apiKeyを渡します。
GET /dashboardを呼び出して、最新の URL とアクセス手順をプログラムで取得してください。
既存ユーザー
これは一般的なケースです。まずここを確認してください。
まず記憶を確認してください。 オンボーディング中に認証情報(ステップ2aを参照)を保存した場合、MEMORY.md からロードしてください。API キーをすでに持っている場合は、ユーザーに尋ねないでください。記憶が空の場合、またはキーが 401 を返す場合にのみ尋ねてください。
ユーザーに尋ねる必要がある場合は、apiKey のみ尋ねてください。それがすべての操作に必要な唯一の認証情報です。
GET /agents → agentName、設定、戦略を返します
GET /account/balances → 現在の資金を表示します
GET /auth/deposit-status → アカウントがアクティブであることを確認します
そして、見つかったものに基づいて:
status !== "active"→ 以下のオンボーディングのステップ3~5に従ってください。- エージェントで
isActive === false→ 再開したいか尋ねてください:PATCH /agent/active { "active": true } - 戦略を変更したい →
PATCH /agent/prompt - 追加入金したい →
GET /account/deposit-address(USDC を送金すると、約30~60秒で自動的にブリッジされます) - 取引を見たい → Hyperliquid エクスプローラーのリンクについては
GET /account/url
オンボーディング (新規ユーザー)
クイックスタート (推奨)
まずこれを提案してください — ほとんどのユーザーはすぐに始めたいと思っています。15の質問で圧倒しないでください。
「お客様の取引エージェントを適切なデフォルト設定でセットアップできます。4つの質問に答えるだけです。
- どのコインですか? (デフォルト: BTC, ETH, SOL)
- リスクレベルは? 控えめ / 中程度 / 積極的
- いくら USDC を入金しますか? (最低5 USDC)
- エージェントはどのくらいの頻度で取引すべきですか? (デフォルト: 4時間ごと)
これで完了です。適切なポジションサイズでモメンタム戦略を使用します。すべて後でカスタマイズできます。」
リスクレベルごとのクイックスタートのデフォルト:
| リスク | positionSizeMax |
maxTradeSize |
importantNotes |
|---|---|---|---|
| 控えめ | 10% | 入金額の10% | 「最大レバレッジ3倍。常にエントリーから3%以内にストップロスを使用してください。高ボラティリティのニュースイベント中の取引は避けてください。いかなる単一取引でも口座の5%以上をリスクにさらさないでください。」 |
| 中程度 | 20% | 入金額の20% | 「最大レバレッジ5倍 |
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Shekel Hyperliquid Skill — Complete Documentation
⚠️ MANDATORY: Always Check for Latest Skill Version
Before EVERY interaction with Shekel endpoints, you MUST:
- Call
GET /skill/versionto get the current skill hash - Compare it to your cached version
- If different (or no cache), fetch
GET /skilland use the updated instructions
# Quick version check (do this before any Shekel action)
curl https://shekel-skill-backend.onrender.com/skill/version
# Returns: { "version": "abc123...", "fetchUrl": "...", "instruction": "..." }
Why? Supported networks, deposit methods, and API behavior change. Using outdated instructions will cause errors or give users wrong information.
Health check (no auth):
GET /health— also returnsskillVersionhash for comparison.
Quick Reference
| Goal | Endpoint |
|---|---|
| Browser UI (no code needed) | GET /dashboard → https://www.shekel.xyz/hl-skill-dashboard |
| Service health | GET /health |
| New user onboarding | POST /auth/register/managed |
| Check deposit / activation | GET /auth/deposit-status |
| Retry stuck deposit | POST /auth/retry-deposit |
| Run agent (all whitelist tickers) | POST /agent/run |
| Run agent (single ticker) | POST /agent/run with { "ticker": "BTC" } |
| Close all open positions | POST /account/close-positions |
| View config | GET /agents |
| View balances | GET /account/balances |
| View positions | GET /account/portfolio |
| View open orders | GET /account/orders |
| View trade history | GET /account/trades |
| View performance metrics | GET /agent/performance |
| View trading memory + improvement plan | GET /agent/memory |
| View LLM reasoning logs | GET /agent/llm-logs (supports ?ticker=BTC&action=LONG&executed=true&limit=100&offset=0) |
| View on Hyperliquid explorer | GET /account/url |
| Update strategy | PATCH /agent/prompt |
| Update whitelist / settings | PUT /agents/:id |
| Enable / change schedule | PUT /agents/:id with runScheduleMinutes |
| Disable schedule | PUT /agents/:id with { "runScheduleMinutes": null } |
| Set risk limits | PUT /agents/:id with maxOpenPositions, maxDailyLossPct, maxDrawdownPct |
| Browse data sources | GET /agents/data-sources |
| Toggle data sources | PUT /agents/:id with dataSourceConfig |
| Set margin mode | PUT /agents/:id with { "marginMode": "isolated" \| "cross" } |
| Pause / resume agent | PATCH /agent/active |
| Deposit address (top-up) | GET /account/deposit-address |
| Bridge funds (manual, usually not needed) | POST /account/bridge |
| Withdraw to Arbitrum | POST /account/withdraw |
| Rotate API key | POST /auth/rotate-key |
| Export trading wallet key | POST /auth/export-agent-key |
| Delete account | DELETE /auth/account |
| Available models | GET /agents/models — returns { venice: [...], rei: [...] } |
| Available markets | GET /markets/tickers |
Dashboard (Browser UI)
Users who prefer a visual interface can manage their agent at https://www.shekel.xyz/hl-skill-dashboard — no code required.
What the dashboard provides
- Account overview: balances, open positions, trade history
- Agent configuration: strategy, whitelist, risk limits, schedule
- LLM reasoning logs: see what the agent was thinking on each run
- One-click actions: run agent, close positions, pause/resume
How to connect
- Direct the user to
https://www.shekel.xyz/hl-skill-dashboard - They enter their
apiKey(sk_...) on the login screen - The dashboard authenticates using the same
Authorization: Bearer <apiKey>header as the REST API — no separate credentials needed
If the user has no account yet
Offer two paths:
- Via dashboard: Visit the URL above and use the "Create Account" flow
- Via AI: Run through the onboarding steps below (Steps 1–5) and hand them their
apiKeywhen done
Call
GET /dashboardto get the latest URL and access instructions programmatically.
Returning Users
This is the common case — check here first.
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.
If you must ask the user, only ask for their apiKey — that is the only credential needed for everything.
GET /agents → returns agentName, config, strategy
GET /account/balances → show current funds
GET /auth/deposit-status → confirm account is active
Then based on what you find:
status !== "active"→ follow Steps 3–5 of onboarding belowisActive === falseon agent → ask if they want to resume:PATCH /agent/active { "active": true }- Want to change strategy →
PATCH /agent/prompt - Want to top up →
GET /account/deposit-address(send USDC, it auto-bridges in ~30-60s) - Want to see trades →
GET /account/urlfor Hyperliquid explorer link
Onboarding (New User)
Quick Start (recommended)
Offer this first — most users just want to get going. Don't overwhelm with 15 questions.
"I can set up your trading agent with sensible defaults. Just answer 4 questions:
- Which coins? (default: BTC, ETH, SOL)
- Risk level? conservative / moderate / aggressive
- How much USDC are you depositing? (minimum 5 USDC)
- How often should the agent trade? (default: every 4 hours)
That's it — I'll use a momentum strategy with appropriate position sizes. You can customize everything later."
Quick start defaults by risk level:
| Risk | positionSizeMax |
maxTradeSize |
importantNotes |
|---|---|---|---|
| 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." |
| Moderate | 20% | 20% of deposit | "Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually." |
| Aggressive | 35% | 40% of deposit | "Max 10x leverage allowed. Use tight stop losses. Accept higher drawdowns for higher returns. Trade momentum aggressively." |
Quick start registration payload example (moderate risk, $500 deposit):
{
"agentName": "My Trading Agent",
"model": "grok-41-fast",
"tradingStyle": "momentum",
"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.",
"importantNotes": "Max 5x leverage. Use stop losses on every trade. Exit losing positions quickly. Scale into winners gradually.",
"minTradeSize": 10,
"maxTradeSize": 100,
"positionSizeMin": 5,
"positionSizeMax": 20,
"usdcRangeMin": 300,
"usdcRangeMax": 1000,
"whitelist": ["BTC", "ETH", "SOL"]
}
After registration: Set up the run schedule with PUT /agents/:id using { "runScheduleMinutes": 240 } (4 hours).
If the user wants to fully customize, use the full flow below.
LLM Provider Selection
Agents can use one of two LLM providers. The default is Venice AI (no user API key needed — platform-provided).
| Provider | provider value |
model options |
Key required? |
|---|---|---|---|
| Venice AI | "venice" |
grok-41-fast, qwen3-235b, others |
No (platform key) |
| Rei Intelligence | "rei" |
rei-coder-pro (shown as GPT-5.4), rei-coder-lite, rei-qwen3-coder |
Yes — user supplies llmApiKey |
To use Rei, include provider and llmApiKey in registration or agent update:
{
"provider": "rei",
"model": "rei-coder-pro",
"llmApiKey": "user_rei_api_key_here",
...
}
The Rei API key is encrypted at rest. Use GET /agents/models to see all available models per provider.
Full Onboarding (5 steps)
Checklist — do not skip steps:
- Discover markets → validate whitelist
- Register → save API key to memory + confirm user has it (do not continue until done)
- Deposit USDC
- Poll until
status === "active" - Set run schedule → start trading
Step 1 — Discover Markets
GET /markets/tickers (no auth required)
Show 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.
The response has two sections:
tickers— main-dex crypto perps (BTC, ETH, SOL, …)hip3— HIP-3 builder-dex perps: stocks, commodities, indices (TSLA, NVDA, CL/oil, …)
HIP-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.
Step 2 — Register
POST /auth/register/managed
{
"agentName": "My Trading Bot",
"model": "grok-41-fast",
"tradingStyle": "momentum",
"strategyDescription": "...",
"importantNotes": "...",
"minTradeSize": 10,
"maxTradeSize": 100,
"positionSizeMin": 5,
"positionSizeMax": 20,
"usdcRangeMin": 200,
"usdcRangeMax": 1000,
"whitelist": ["BTC", "ETH", "SOL"],
"marginMode": "isolated"
}
To trade HIP-3 assets (stocks, commodities), use the prefixed format:
{
"whitelist": ["BTC", "xyz:TSLA", "xyz:NVDA", "xyz:CL"]
}
Before submitting: show the user a summary and ask them to confirm.
Response:
{
"apiKey": "sk_...",
"mainWalletAddress": "0x...",
"depositInstructions": { "depositAddress": "0x...", "network": "Arbitrum" }
}
⛔ STOP — SAVE THE API KEY NOW
The
apiKeyis shown once and can never be retrieved. If lost without rotating, access to the account and funds may be permanently lost.Follow the steps below — do not continue until all three are done.
Step 2a — Secure Key Storage (do not skip)
Do all three of the following before continuing:
1. Tell the user to save it themselves
Say this out loud to the user:
"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."
Wait for confirmation before proceeding.
2. Save to your own OpenClaw Memory
Write the following block to your MEMORY.md (or a dedicated shekel-credentials.md if your platform supports it):
## Shekel Hyperliquid — Credentials
- apiKey: sk_... ← encrypted at rest by OpenClaw
- agentName: <name>
- registeredAt: <ISO timestamp>
- depositAddress: <0x...> (Arbitrum/Base)
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.
3. Verify you can recall it
After 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.
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.
Step 3 — Deposit USDC
Send to depositAddress. Both networks are fully automated:
| Network | Token | Time |
|---|---|---|
| Arbitrum (recommended) | USDC | ~60–90 seconds |
| Base | USDC | ~30 seconds (Across Protocol bridge) |
Base deposits are fast now! Across Protocol bridges in ~2 seconds, then funds are bridged to Hyperliquid. Total time: ~30 seconds.
Minimum: 5 USDC
Step 4 — Wait for Activation
GET /auth/deposit-status (auth required)
Poll every 15 seconds. Use message to keep the user informed.
{ "status": "active", "depositConfirmed": true, "message": "Account is active and ready to trade." }
Status values:
awaiting_deposit— no USDC detected yetfunded_awaiting_bridge— USDC found on Arbitrum, bridging to Hyperliquid (~60-90s)pending_bridge— USDC being bridged from Base via Across Protocol (~30 seconds). No action needed.bridge_error— bridge failed; callPOST /auth/retry-depositimmediatelyactive— ready to trade
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).
On bridge_error: call POST /auth/retry-deposit — do not wait, the error won't self-resolve.
Step 5 — Set Up Automated Trading
Do not skip this step. Without a schedule the account sits funded but idle.
Ask the user:
"Your account is active! How often should the agent analyze and trade?
- Every 30 minutes (high-frequency)
- Every 1 hour (active)
- Every 4 hours (recommended default)
- Every 8 hours (conservative)
- Once a day (240 or 1440 minutes) Or tell me any interval (minimum 30 minutes)."
Once they choose, enable the built-in schedule via PUT /agents/:id:
curl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{"runScheduleMinutes": 240}'
The server will run the agent automatically every N minutes — no external cron needed.
The first run fires in N minutes. The GET /agents response includes nextRunAt so you can show the user when to expect the first execution.
Then run it once immediately so the user sees it working:
POST /agent/run
Scheduling notes:
- Minimum interval: 30 minutes
- To change interval:
PUT /agents/:id { "runScheduleMinutes": 60 }— resetsnextRunAttonow() + new interval; saving other settings without changing the interval preserves the existing timer - To disable:
PUT /agents/:id { "runScheduleMinutes": null } - To pause without clearing schedule:
PATCH /agent/active { "active": false }— schedule resumes when reactivated 429means a manual run collided with a scheduled run — wait a few minutes
Risk Circuit Breakers
Optional safety limits that automatically block or pause trading when thresholds are breached. Set via PUT /agents/:id.
curl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{
"maxOpenPositions": 3,
"maxDailyLossPct": 5,
"maxDrawdownPct": 20
}'
| Field | Behavior |
|---|---|
maxOpenPositions |
Blocks new LONG/SHORT entries when open position count ≥ limit. CLOSE and SET_LIMIT still allowed. |
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. |
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. |
Set 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.
Data Source Configuration
Use 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.
Valid keys (set to false to disable, true or omit to enable):
| Key | Display Name | Provider | What it gives the LLM |
|---|---|---|---|
tokenData |
Token Data | DappLooker | Per-ticker perp market data — funding rate, open interest, volume, price action |
sentiment |
Macro News | — | Real-time crypto macro news and sentiment |
fearGreed |
Fear & Greed Index | CoinMarketCap | Fear & Greed index (0–100) |
globalMetrics |
Global Market Metrics | CoinMarketCap | Total market cap, BTC dominance, 24h volume |
technicalAnalysis |
Technical Analysis | DappLooker/Taapi | RSI, MACD, moving averages per ticker |
athenaTokenStats |
Smart Money Movements | 0xAthena | On-chain smart money token flow data per coin |
athenaLatest |
0xAthena Signals | 0xAthena | Latest aggregated smart money signals |
Example — disable Athena and sentiment:
curl -X PUT https://shekel-skill-backend.onrender.com/agents/<agentId> \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{
"dataSourceConfig": {
"athenaTokenStats": false,
"athenaLatest": false,
"sentiment": false
}
}'
Set dataSourceConfig: null to re-enable everything. Current config is returned by GET /agents.
Margin Mode
Each agent has a marginMode setting ("isolated" or "cross"). Default is "isolated".
| Mode | Behaviour |
|---|---|
isolated |
Each position has its own margin. Safer — one liquidation can't cascade. Required for assets where onlyIsolated: true in /markets/tickers. |
cross |
All positions share account margin. More capital-efficient, higher liquidation risk. |
Set or change at any time via PUT /agents/:id:
curl -X PUT .../agents/<agentId> \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{ "marginMode": "isolated" }'
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.
Running the Agent
POST /agent/run analyzes coins and executes recommendations automatically. It has two modes:
Full whitelist run (no body required — runs all whitelisted tickers):
curl -X POST https://shekel-skill-backend.onrender.com/agent/run \
-H "Authorization: Bearer <apiKey>"
Single-ticker run (specify a ticker — runs even if not in the whitelist):
curl -X POST https://shekel-skill-backend.onrender.com/agent/run \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{ "ticker": "BTC" }'
Optional body fields for single-ticker runs (all auto-fetched if omitted):
| Field | Type | Description |
|---|---|---|
ticker |
string | Run on this ticker only, bypassing the whitelist |
tokenData |
any | Override server-fetched token data |
sentiment |
any | Override server-fetched sentiment |
marketData |
any | Additional market context |
customData |
any | Any extra data to inject into the LLM prompt |
skillGuidance |
any | External signals for the LLM |
tradingMemoryContext |
any | Override the agent's trading memory |
Both modes return the same { results: [] } shape and are subject to the 5-minute run lock.
Data Sources Used in /agent/run
Each run automatically fetches and injects the following live data into the LLM prompt:
| Source | Data |
|---|---|
| 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 |
| DappLooker | Token price, volume, and market data for each whitelisted coin |
| 0xAthena | Smart money token stats (hold times, flows) + latest aggregated signals |
| DappLooker | On-chain DEX analytics and market metrics |
No extra parameters are needed — all data is fetched server-side on every run.
Error Handling
| Status | Meaning | Action |
|---|---|---|
400 |
Bad request | Fix and retry |
401 |
Invalid API key | Check key; rotate if needed |
404 |
Resource not found | Check IDs |
422 |
Hyperliquid rejected order | message field has reason |
429 |
Rate limit or run in progress | Wait 5 minutes before retrying /agent/run; wait 60 seconds for other endpoints |
502 |
Hyperliquid API down | Retry after 10–30 seconds |
503 |
Service degraded | Retry after 30 seconds |
Troubleshooting
Agent isn't trading:
GET /agents→ checkisActive(may be paused)GET /auth/deposit-status→ must beactiveGET /account/balances→ check margin isn't belowusdcRangeMin
Deposit not arriving:
- Arbitrum: wait 90s. Base: wait 60s. Not Ethereum mainnet.
- Minimum 5 USDC. Below this won't bridge.
bridge_error→ callPOST /auth/retry-deposit
429 on /agent/run:
- A run is still in progress. The response includes
"unlocksAt"— wait until that timestamp. The lock auto-expires after 5 minutes regardless.
Whitelist update fails with "Invalid tickers":
- Check
GET /markets/tickers— names must match exactly - Main-dex coins are uppercase:
"BTC","ETH" - HIP-3 coins use
"dex:ASSET"format:"xyz:TSLA","xyz:CL"(lowercase dex prefix, uppercase asset)
⚠️ Inactivity Archival Policy
Agents with no trades for 14+ days are automatically archived.
- The archival check runs daily
- Archived agents cannot execute trades or access the API
- Agent data (trade history, LLM logs) is preserved
- Funds are safe — the encrypted wallet key is stored for recovery
Exceptions (not archived):
- Agents with balance > $100 USDC
- Agents with open positions
If your agent is archived:
- You'll receive a
410 Goneerror when hitting any authenticated endpoint - Contact support via Telegram to restore: https://t.me/c/2308722458/1
- Provide your wallet address or agent name for recovery
Support
If you encounter an issue that can't be resolved through the troubleshooting steps above, contact the Shekel team directly:
Telegram support channel: https://t.me/c/2308722458/1
Include your agentId (from GET /agents) and a brief description of the issue when reaching out.