Basis trade¶
Status: Live (jurisdiction-gated) | MCP tool: strategy_basis_trade_create
Funding-harvest perp short leg -- opens/manages only the short side of a delta-neutral basis trade while funding is favourable (> min_funding) and closes when it decays. Approximate: the spot long that would make the book delta-neutral is held separately by the caller (flagged approximate + funding_not_modeled -- funding P&L itself is not simulated live).
Params¶
| Param | Type | Default | Meaning |
|---|---|---|---|
wallet_address |
string | required | Agent's managed wallet address. |
target_token |
string | required | Perp market symbol (only assets with a mapped perp market can open; currently SOL). |
usd_per_trade |
float | required | USD size for the perp short leg. |
interval_seconds |
int | 300 |
Tick cadence. |
funding_lookback |
int | 24 |
Ticks of funding-rate history read for the signal. |
min_funding |
float | 0.0 |
Minimum favourable funding to open/hold the short. |
leverage |
float | 1.0 |
Leverage on the short leg. |
venue |
string | none |
Perps venue (defaults to the configured primary). |
acknowledge_tier_b |
bool | false |
Required true to write to a Tier B (custodied) venue. |
slippage_bps |
int | 50 |
Max slippage per fill. |
risk (optional dict, all percent units, <= 0 disables that single guard;
omitted keys keep the model's safe defaults): max_position_pct,
max_portfolio_exposure_pct, max_single_loss_pct, max_drawdown_pct,
max_daily_loss_pct.
Example create call¶
result = await client.call_tool("strategy_basis_trade_create", {
"wallet_address": "<AGENT_PUBLIC_KEY>",
"target_token": "SOL",
"usd_per_trade": 50,
"min_funding": 0.0001,
"leverage": 1.0,
"interval_seconds": 300,
})
A successful create returns strategy_id, strategy_type, status,
schedule, and managed_signing (whether the wallet has a Turnkey signer --
false means each tick returns an unsigned tx to sign).
Policy interaction¶
Every create call runs through the same gate stack as a hand-built trade
before it persists: rate limiting, identity/capability check, the per-wallet
policy_gate (action strategy_create, plus venue on the policy gate's venue check when explicitly named), USD-notional sizing
against policy limits (derived from the USD budget param below), an idempotency check, and the platform
kill switch.
A wallet without a Turnkey signing key still gets the strategy -- each due
tick returns an unsigned transaction for the owner to sign instead of
executing autonomously.
Routes the perp leg through the venue adapter (hard rule 2). A Tier B (venue-custodied) venue refuses the write unless acknowledge_tier_b=true. See the Perps playbook for the underlying open/monitor/funding/close mechanics this strategy automates.
Lifecycle¶
Every strategy type shares one lifecycle surface once created:
strategy_status(strategy_id, wallet_address)-- config, state, P&L, next tick.strategy_modify(strategy_id, wallet_address, config_updates=..., risk=..., ...)-- retune in place without losing execution history; fields that define WHAT the strategy trades (target_token/source_token/tracked_wallet/venue/ a compositedefinition) are immutable and refused -- cancel and create a new strategy to change those.strategy_pause/strategy_resume-- manual pause and re-enable.strategy_cancel(strategy_id, wallet_address)-- stop for good (terminal).strategy_list(wallet_address, detail="concise"|"full")-- every strategy the wallet owns.
Full param docs for all six lifecycle tools: MCP tool reference.
See also¶
- Trading catalog -- Strategy automations
- Strategy authoring -- publishing a strategy as a clonable template.
- MCP tool reference