← 返回
数据分析 中文

Overlay Market (perpetual futures trading)

Trade leveraged perpetual futures on Overlay Protocol (BSC). Scan markets, analyze prices with technical indicators, check wallet balance, encode build/unwin...
在Overlay Protocol(BSC)交易杠杆永续合约。扫描市场,用技术指标分析价格,查钱包余额,编码开仓/平仓...
arthurka-o
数据分析 clawhub v0.1.6 1 版本 100000 Key: 无需
★ 0
Stars
📥 703
下载
💾 17
安装
1
版本
#latest

概述

Overlay Market

Trade leveraged perpetual futures on 30+ markets (crypto, commodities, indices, social metrics) on BSC.

Overlay markets are synthetic — you trade against a protocol-managed price feed, not an order book. Positions are opened with USDT collateral.

Transaction Signing

This skill produces unsigned transaction objects (JSON with to, data, value, chainId). Your agent needs a way to sign and broadcast on BSC (chainId 56). A bundled send.js script is provided for simple private-key signing, but any signer works.

The recommended setup is a smart contract account with restricted permissions (e.g. Safe + Zodiac Roles), so the agent can only call approved functions. Do not use a raw private key with real funds — use an external signer or a dedicated low-value testing wallet.

Configuration

VariableRequiredDescription
---------------------------------
OVERLAY_PRIVATE_KEYNoPrivate key for send.js and --dry-run. Not needed if your agent signs externally — use --owner
with unwind.js instead.
BSC_RPC_URLNoBSC RPC endpoint. Defaults to bsc-dataseed.binance.org.
ONEINCH_API_KEYNoIf set, unwind.js calls api.1inch.dev directly instead of the Overlay proxy.

External Services

ServiceHostUsed by
------------------------
Overlay market catalogapi.overlay.market/data/api/marketsscan.js
Overlay OHLC candlesapi.overlay.market/bsc-charts/v1/chartschart.js
Overlay pricesapi.overlay.market/bsc-charts/v1/charts/marketsPricesOverviewscan.js
Goldsky subgraphapi.goldsky.compositions.js, unwind.js
1inch Swap APIapi.1inch.dev or Overlay proxy (see below)unwind.js
BSC RPCbsc-dataseed.binance.org or BSC_RPC_URLall scripts

1inch Swap API

The Shiva contract's unwindStable hardcodes 1inch AggregationRouterV6 as its only swap path — it requires pre-built 1inch calldata and has no fallback, so calling the 1inch API is architecturally required.

By default, requests go through an Overlay-operated Cloudflare Workers proxy (1inch-proxy.overlay-market-account.workers.dev) that injects the API key server-side. Set ONEINCH_API_KEY to call api.1inch.dev directly and bypass the proxy.

The swap calldata is validated at two layers:

  • Client-sideunwind.js ABI-decodes the response and extracts minReturnAmount
  • On-chain — Shiva verifies srcToken, dstToken, dstReceiver, minReturnAmount, spentAmount, and post-swap token balance

Static Analysis Notes

Naive taint analysis may flag two patterns in common.js — both are false positives:

  • process.env.BSC_RPC_URL + network call (line 139) — The env var is the RPC endpoint. It becomes a destination URL by design, not exfiltrated data.
  • readFileSync + network call (line 10) — readFileSync is used only for the local .cache/ directory (read/write market data cache). Cached data originates from network responses, not the other way around. No local file contents are sent to external services.

OVERLAY_PRIVATE_KEY is read at line 147 but never transmitted — it is passed to viem's privateKeyToAccount() which derives the address and signs locally.

Scripts


approve.js

Approve USDT spending for the LBSC contract. Required before the first build.js transaction.

node scripts/approve.js [amount]

Without amount, approves unlimited. Shows current allowance if OVERLAY_PRIVATE_KEY is set.


balance.js

Wallet USDT and BNB balance.

node scripts/balance.js [address]

scan.js

All markets with prices and 1h/24h/7d changes.

node scripts/scan.js [--details <market>]

--details shows the full description for a specific market (what it tracks, data sources, methodology).


chart.js

OHLC candles + SMA(20), RSI(14), ATR(14).

node scripts/chart.js <market> [timeframe] [candles]
ArgDescription
------------------
marketName (e.g. BTC/USD, SOL, GOLD/SILVER) or contract address. Partial matching works.
timeframe5m, 15m, 30m, 1h, 4h, 12h, 1d (default: 1h)
candlesNumber of candles (default: 48)

build.js

Encode a buildStable transaction (open position).

node scripts/build.js <market> <long|short> <collateral_usdt> <leverage> [--slippage <pct>] [--dry-run]

Fetches the current mid price from the state contract and sets a price limit with slippage tolerance (default: 1%). The transaction will revert on-chain if the execution price exceeds the limit.

--dry-run checks USDT balance, allowance, and simulates the transaction without outputting it. Shows notional size, entry price estimate, and whether the tx would succeed. Simulations run against the current block — the actual transaction executes in a later block, so values may differ slightly.


unwind.js

Encode an unwindStable transaction (close position).

node scripts/unwind.js <market> <position_id> --direction <long|short> [--owner <addr>] [--slippage <pct>] [--dry-run]

--direction is required — it sets the correct price limit. Map from positions output: isLong: true -> --direction long, isLong: false -> --direction short. Always unwinds 100%. Same slippage protection as build (default: 1%).

--dry-run shows current value, PnL, trading fee, expected USDT to receive, and simulates the transaction.


send.js

Sign and broadcast an unsigned transaction.

Reads unsigned tx JSON from stdin or CLI argument, signs with OVERLAY_PRIVATE_KEY, broadcasts to BSC, and waits for confirmation. Returns {"hash", "status", "blockNumber", "gasUsed"}.


positions.js

Open positions with PnL.

node scripts/positions.js [owner_address]

Returns JSON with positions (positionId, market, isLong, leverage, collateralUSDT, valueUSDT, pnlUSDT, pnlPercent) and a summary.

Workflow

Build and unwind output JSON to stdout and human info to stderr, so they pipe into send:

# Research
node scripts/balance.js
node scripts/scan.js
node scripts/scan.js --details "BTC/USD"
node scripts/chart.js BTC/USD 4h

# Approve USDT (once, before first trade)
node scripts/approve.js 2>/dev/null | node scripts/send.js

# Dry-run before opening
node scripts/build.js BTC/USD long 5 3 --dry-run

# Open: 5 USDT long BTC 3x
node scripts/build.js BTC/USD long 5 3 2>/dev/null | node scripts/send.js

# Monitor
node scripts/positions.js

# Dry-run before closing
node scripts/unwind.js BTC/USD 0xce --direction long --dry-run

# Close (positionId and direction from positions output)
node scripts/unwind.js BTC/USD 0xce --direction long 2>/dev/null | node scripts/send.js

# Without OVERLAY_PRIVATE_KEY (external signer)
node scripts/unwind.js BTC/USD 0xce --direction long --owner 0x1234...

Contracts (BSC Mainnet)

ContractAddress
-------------------
Shiva (trading)0xeB497c228F130BD91E7F13f81c312243961d894A
OverlayV1State (reads)0x10575a9C8F36F9F42D7DB71Ef179eD9BEf8Df238

Resources

  • App: https://app.overlay.market
  • Docs: https://docs.overlay.market

版本历史

共 1 个版本

  • v0.1.6 当前
    2026-03-19 02:50 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 198 📥 65,120
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 368 📥 140,463
data-analysis

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 270 📥 56,974