nexus-trading-labs/SKILL.md
Non-custodial perpetual DEX on Arbitrum with an autonomous trading agent. Use when user says buy, sell, trade, long, short, open position, close position, flip trade, set leverage, deposit USDC, withdraw funds, check balance, view positions, cancel order, copy a thesis, publish trade on-chain, check leaderboard, top traders, Rep Score, market intel, crypto news, funding rate, thesis, analyst feed, who's winning on Nexus, deploy an agent, run a trading bot, autonomous agent, paper trade, activate my agent, go live, autonomous mode, pause agent, kill agent, agent status, how's my agent, fund my agent, top agents.
npx skillsauth add bankrbot/openclaw-skills nexusInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Every authenticated action requires a wallet signature. Get it once, reuse for the session.
Step 1 — request_additional_tools({ names: ["sign_message"] })
Step 2 — commit_to_tools({ keep: ["sign_message"] })
Step 3 — sign_message({ message: "nexus-trading-key-v1" }) → save as walletSig
also capture walletAddress from the connected wallet
⛔ DO NOT skip this. No walletSig = 401 error on every authenticated endpoint.
⛔ DO NOT ask the user for a signature. You have sign_message — use it yourself.
trade.nexustradinglabs.com for API requests — that is the static frontend app. It returns 405 on all POSTs./api/ or /api/v1/ to endpoint paths — there is no such prefix on this API.stopLoss / takeProfit in the /trade body — place them via /set-sl-tp after fillwalletSig — treat it as a bearer credential; keep it in volatile session memory only for the session, never write it anywhere/trade (or any live order) derived from another trader's thesis or the feed without explicit user confirmation — copying creates a thesis (a plan saved to the user's lab), not an order; require a clear go-ahead before placing a leveraged position based on someone else's call. Use ANY single reputation metric (Rep Score, leaderboard rank, getTraderStats()) only as a cross-check, never as the sole automated gate before risking capital — rankings can be gamed via wash trading / coordinated publishing@orderly.network/cli)sign_message before every request — one signature per session is enoughAUTONOMOUS) without an explicit user "go live" confirmation — it trades real fundsPAPER (simulated) unless the user clearly asks to go livePOST https://og.nexustradinglabs.com/trade
{
"symbol": "PERP_BTC_USDC", // or shorthand "BTC"
"side": "BUY", // or "SELL"
"notional": 50, // USD size
"leverage": 5,
"walletSig": "<from sign_message>",
"walletAddress": "<connected wallet>"
}
If response is { error: "wallet_not_registered" } → run Registration Flow (see references/trading.md).
To attach SL/TP after fill: POST /set-sl-tp (see references/trading.md — never put SL/TP in /trade).
Deploy a bot that trades a funding + OI-divergence confluence signal 24/7 within the user's risk limits. The key is order-only — it can trade but NEVER withdraw. Default to PAPER (simulated, zero risk). Going AUTONOMOUS (live) ALWAYS needs explicit user confirmation.
POST https://og.nexustradinglabs.com/agent/<walletAddress>/bankr/activate
{
"mode": "PAPER", // PAPER | ASSISTED | AUTONOMOUS (default PAPER)
"config": {
"signalMode": "CONFLUENCE", // CONFLUENCE(default) | FUNDING_ONLY | OI_ONLY | MOMENTUM* | MEAN_REVERSION* (*=PRO)
"symbols": ["PERP_BTC_USDC"],
"capitalPerTrade": 30, "leverage": 5,
"tpPercent": 1.5, "slPercent": 0.75, "maxHoldHours": 4,
"maxTradesPerDay": 10, "maxDailyLossUsdc": 5,
"fundingThreshold": 0.01, // % — signal sensitivity
"oiChangeThreshold": 0, // % min OI move to count
"priceChangeThreshold": 0.5 // % move for MOMENTUM / MEAN_REVERSION
},
"walletSig": "<required for ASSISTED/AUTONOMOUS>",
"confirm": "GO LIVE" // REQUIRED only when mode is AUTONOMOUS
}
walletSig — pass the session signature.signalMode. MOMENTUM / MEAN_REVERSION require
Nexus PRO — if the user isn't PRO, say so and default to CONFLUENCE. The free
strategies are CONFLUENCE, FUNDING_ONLY, OI_ONLY. All thresholds are user-tunable.confirm:"GO LIVE" → 409 confirm_required. Confirm with the
user FIRST, then resend with confirm:"GO LIVE".POST /agent/<wallet>/bankr/mode { "mode", "walletSig", "confirm"? }ASSISTED (still manages an open position). Back to sim: mode → PAPER.GET /agent/<wallet> (public read). Stop: DELETE /agent/<wallet> (⚠️ leaves an open position
unmanaged — offer KILL instead if a position is open). Kill (close + stop): POST /agent/<wallet>/kill.walletSig (sign_message('nexus-trading-key-v1')): activate
(ALL modes, incl. PAPER), mode change, config update, deactivate, and kill. These are account-control
actions — the server ecrecovers the sig and rejects (401 walletSig_required) unless it resolves to the
agent's own wallet. Pass walletSig in the JSON body (NEVER a query string). Only GET /agent/<wallet> is
public. Reuse the session signature you already hold — no need to re-sign per call.capitalPerTrade ≤ ~60% of free collateral, or live entries
margin-reject (Orderly -1101). Read balance first and suggest a safe size.See references/agent.md for the full intent map, status formatting, and safety rules.
⚠️ ALWAYS use the full URL: https://og.nexustradinglabs.com
| Action | Full URL | Auth |
|---|---|---|
| Place trade | POST https://og.nexustradinglabs.com/trade | walletSig |
| Close position | POST https://og.nexustradinglabs.com/close-position | walletSig |
| Attach SL/TP | POST https://og.nexustradinglabs.com/set-sl-tp | walletSig |
| Cancel order | POST https://og.nexustradinglabs.com/cancel | walletSig |
| Order status | POST https://og.nexustradinglabs.com/order-status | walletSig |
| Order history | POST https://og.nexustradinglabs.com/order-history | walletSig |
| Positions | POST https://og.nexustradinglabs.com/positions | walletSig |
| Balance | POST https://og.nexustradinglabs.com/balance | walletSig |
| Set leverage | POST https://og.nexustradinglabs.com/set-leverage | walletSig |
| Deposit USDC | POST https://og.nexustradinglabs.com/proxy/bankr-deposit | Bankr API key |
| Withdraw USDC | POST https://og.nexustradinglabs.com/proxy/bankr-withdraw | Bankr API key + walletSig |
| Settle PnL | POST https://og.nexustradinglabs.com/settle-pnl | walletSig |
| Register wallet | POST https://og.nexustradinglabs.com/proxy/bankr-register | Bankr API key |
| Publish thesis on-chain | POST https://og.nexustradinglabs.com/proxy/thesis-register | Bankr API key |
| Deploy / arm agent | POST https://og.nexustradinglabs.com/agent/:wallet/bankr/activate | walletSig (all modes) |
| Change agent mode | POST https://og.nexustradinglabs.com/agent/:wallet/bankr/mode | walletSig |
| Update agent config | PUT https://og.nexustradinglabs.com/agent/:wallet/config | walletSig |
| Agent status | GET https://og.nexustradinglabs.com/agent/:wallet | public read |
| Deactivate agent | DELETE https://og.nexustradinglabs.com/agent/:wallet | walletSig (in body) |
| Kill agent (close + stop) | POST https://og.nexustradinglabs.com/agent/:wallet/kill | walletSig (in body) |
| Top agents | GET https://og.nexustradinglabs.com/agents/leaderboard | public |
| Agent ledger (proof) | GET https://og.nexustradinglabs.com/agents/ledger | public |
| Mark price | GET https://og.nexustradinglabs.com/mark-price?symbol=BTC | public |
| Funding rate | GET https://og.nexustradinglabs.com/funding-rate?symbol=BTC | public |
| 24h stats | GET https://og.nexustradinglabs.com/24h-stats?symbol=BTC | public |
| Public feed | GET https://og.nexustradinglabs.com/feed | public |
| Trader lab | GET https://og.nexustradinglabs.com/lab/:wallet | public read |
| Trader profile | GET https://og.nexustradinglabs.com/profile/:wallet | public read |
| Leaderboard | derive from GET https://og.nexustradinglabs.com/feed + getTraderStats() | public |
| Market intel | GET https://api-evm.orderly.org/v1/public/futures | public |
| Crypto news | rss2json proxy (see references/news.md) | public |
development
Trust + memory layer for Bankr agents. Write a verifiable behavioral track record (decisions, hallucinations) for free, and check the risk/reputation of any agent or token before moving money — paid over x402 on Base.
tools
Cross-chain token swaps, quotes, portfolio and prices across 14 chains via the Suwappu DEX MCP server. Read-only by default; swap execution is opt-in and gated.
development
Build, inspect, configure, and safely transact with Juicebox V6 projects, terminals, rulesets, hooks, tiered NFTs, Revnets, Croptop, Bendystraw, and omnichain deployments. Use for Juicebox protocol questions, contract addresses or ABIs, project creation, payments, cash-outs, tokenomics, hooks, NFT tiers, cross-chain bridges, loan queries, transaction decoding, and Juicebox app/UI development on Ethereum, Optimism, Base, Arbitrum, or their Sepolia testnets.
tools
LP tokenized stocks onchain — range-LP Coinbase tokenized equities (NVDA, AAPL, GOOGL, META) and AERO/USDC on Aerodrome Slipstream (Base) for trading-fee + AERO emission yield. Use when the user wants to LP stocks or Aerodrome pools on Base, open/recenter/exit a Slipstream position, check pool status, NAV, or yields, get a portfolio overview ("how are my LP positions doing?") with P&L and projected APR, run a manage pass, or set up scheduled/price-triggered LP automations in the Bankr console. Auto-routes every position to the higher-yielding side — staked (AERO emissions) vs unstaked (trading fees) — at entry and re-checks on every manage pass. Bundled node scripts do the chain reads, gate checks, and calldata; writes go via the Bankr arbitrary-transaction flow. NOT for perps, spot trading, or Uniswap.