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/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 |
data-ai
Claim and withdraw payments from Metr (metrpay.com) merchant account.
development
AI-powered crypto trading agent, wallet API, and LLM gateway via natural language. Use when the user wants to trade crypto, trade tokenized stocks and ETFs (spot or leveraged), check portfolio balances (with PnL and NFTs), view token prices, search tokens, transfer crypto, manage NFTs, use leverage (Hyperliquid or Avantis), bet on Polymarket, deploy tokens, set up automated trading, sign and submit raw transactions, call or deploy x402 paid API endpoints, browse the web, or access LLM models through the Bankr LLM gateway funded by your Bankr wallet. Supports Base, Ethereum, Polygon, Solana, Unichain, World Chain, Arbitrum, BNB Chain, and Robinhood Chain.
testing
Urizen — an AI equity-research desk + the first autonomous fund on Robinhood Chain (4663), as an agent skill. Real charts & technicals for any tokenized US stock, SEC fundamentals + filings + insider activity, Wall Street analyst consensus, financial news, the macro calendar (Fed/CPI/jobs), live prediction-market odds, and on-chain price — plus the fund's live strategies, book, execution tape, and one-token exposure via $URI. Public, key-less, CORS-open REST on chain 4663. Triggers on: "urizen", "research a stock", "tokenized stock", "SEC fundamentals", "analyst rating", "economic calendar", "prediction market odds", "copy trade the fund", "urizen book", "buy $URI".
development
List tokens on CoinHero via consignment deals on Base — deposit ERC-20 inventory, earn USDC when the protocol buys your token for CoinHero card games. Use when a wallet-enabled agent wants to consign a Base ERC-20 token, check deal performance, or withdraw earnings. Requires a CoinHero dashboard API key and a wallet (EOA) on Base mainnet with at least $50 USD worth of the token to deposit.