Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
healthy
status
167
tools exposed
678ms
connect latency
9b6e5388b0b8
schema fingerprint
Tools (167)
jupiter_swap
Execute a token swap via Jupiter (non-custodial).
Without signed_transaction: returns an UNSIGNED base64 transaction for your
wallet to sign + broadcast. With signed_transaction: broadcasts the
caller-signed tx and returns tx_signature. amount is in base units of
input_token. Includes the Crank 0.7
verify_transaction
Verify any prior transaction signature on demand (FREE read).
Post-trade verification (ENG-df8afe93, harness spec MB#18289 R13): awaits
on-chain confirmation of ``tx_signature`` at ``commitment`` level (up to
``timeout_s``) and, when a state hint is supplied, re-reads the relevant
state to compare
get_quotes
Read-only Jupiter quote for a token pair (no execution).
amount is in base units of input_token. Returns routes, price impact, fees,
and estimated output. ``venue_hint`` (ENG-fc290438/ENG-00ebde90, MB#18215)
is ADVISORY, never required -- see jupiter_swap.
get_balances
Wallet token balances (SOL + all SPL tokens) with USD valuations.
Workflow: ORIENT step -- the starting read for any flow. See get_trading_workflow.
portfolio_snapshot
Full portfolio summary: positions, total value, allocation %, 24h change.
Persisted as a PortfolioSnapshot for historical tracking.
Workflow: ORIENT step -- the denominator for position sizing. Call before
intelligence/risk so sizes are net of current holdings. See get_trading_workflow.
set_alert
Create a price/position alert checked every 60s by Celery beat.
alert_type: price_above | price_below | position_change. token is a mint
address. Optional webhook_url is POSTed when the alert fires.
Workflow: MONITOR step -- arm after executing so a tripped level loops you back
to the risk/execute
set_ooda_consent
Opt in/out of the wake-on-condition worker (ENG-8c57afc3).
Default OFF. When opted in, a triggered alert may run a metered
background check (Haiku triage, escalating to Sonnet only if worth a
closer look) and propose one action. daily_wake_budget (default 10, 1-500)
hard-caps metered wakes per day.
get_ooda_status
Wake-on-condition consent + usage status (ENG-8c57afc3).
Returns opted_in, daily_wake_budget, wakes_used_today, skips_today, and
recent_wakes -- including SKIPPED_BUDGET / SKIPPED_SPEND_CAP rows, so a
skipped wake is exactly as visible as a completed one, never silent.
Workflow: status/observe ste
token_info
Token metadata, price, liquidity, volume, holder count.
Provide token_address (mint) or a known symbol. Merges Helius (metadata)
with Birdeye (market data).
verify_token
Multi-layer authenticity check for a token mint (read-only, no execution).
Runs the same five-layer verification the swap/trade tools enforce before
building a transaction: registry allow-list, Jupiter verified list, Metaplex
metadata authority, minimum liquidity, and token age + holder count. Retu
get_transaction_history
Recent transactions for a wallet, parsed + human-readable (limit 1-100).
backtest_strategy
Backtest a strategy on historical Solana OHLCV before deploying capital.
strategy_type is one of the 17 Crank strategy types (dca, momentum,
rebalance, stoploss, protect, snipe, sentiment, vault, yield_farm, hedge,
equity_dca, perp_grid, copy_wallet, market_make, arb, basis_trade,
composite). asset
get_ml_signal
ML ensemble directional forecast for a Solana asset (read-only).
Trains the ported Bybit ensemble (XGBoost + RandomForest + NeuralNet +
GradientBoost + a candle flow proxy) walk-forward on the last
lookback_candles of OHLCV, then returns the blended P(up move) for the latest
candle: score in [0,1],
detect_regime
Detect the current market regime for a Solana asset (read-only, advisory).
Classifies the latest candle of recent OHLCV as bull / bear / range /
volatile and returns a RegimeSignal: regime, confidence, trend_strength,
volatility_percentile, a SUGGESTED direction (long/short/neutral) and
position-si
get_risk_assessment
Combined regime + risk recommendation for a strategy on an asset (read-only).
Folds the detected market regime together with the safe-default risk guards
(position / exposure / single-loss / drawdown / daily-loss limits) into one
advisory assessment: a suggested direction, a conviction-weighted pos
get_indicators
Full standard technical-indicator set for one asset/timeframe (read-only).
Computes sma, ema, macd, adx (+DI/-DI), rsi, stochastic (%K/%D), roc,
bollinger (mid/upper/lower/width/%B), atr, keltner, realised_vol, vwap,
volume_ratio and volume_profile (POC / value area / high-volume-node
liquidity ban
sr_detect_levels
Multi-timeframe support/resistance zones + liquidity bands (read-only).
Detects S/R zones per timeframe from recent OHLCV (swing highs/lows, floor
pivots, Fibonacci retracement, volume-profile clusters, optional manual
levels), merges them across timeframes with a confluence multiplier, and
weights
sr_configure_strategy
Attach an S/R config block to YOUR OWN strategy (ownership-checked).
Persists an `sr` param block (SRConfig knobs: sensitivity, sources,
lookback, swing_window, zone_width_bps, merge_tolerance_bps, min_touches,
min_strength, max_zones_per_side, manual_levels, liquidity_weight_k) onto
the caller's o
sr_backtest
Backtest a strategy with an S/R config block (read-only simulation).
Runs the existing backtest engine with strategy_type (default
"support_resistance": bounce-long off detected support, exit on a support
break or resistance-fail; on spot a SHORT signal is exit-to-flat) and
merges the validated sr_
asset_classification
Classify a token: crypto / equity / wrapped_major / lst / stablecoin.
Provide token_address (mint) or a known symbol. Tokenized securities
(xStocks, Ondo) classify as 'equity', which subjects strategies to the SEC
framework guardrails (neutral tools, per-execution confirmation for
discretionary typ
get_disclaimers
Compliance disclaimers for an asset class (SEC framework).
Pass asset_classification (crypto/equity/wrapped_major/lst/stablecoin), or a
token_address/symbol to classify first. Equity adds a securities-specific
non-registration / not-advice notice. Full text: crank.ing/disclosures.
perp_open_long
Open a leveraged LONG perp position on Drift (non-custodial).
Returns an UNSIGNED base64 transaction for your wallet to sign + broadcast,
plus entry/liquidation/margin estimates. market e.g. SOL-PERP. size_usd is
notional USD; leverage up to the market max. TP/SL are advisory in the
build — place t
perp_open_short
Open a leveraged SHORT perp position on Drift (non-custodial).
Same envelope as perp_open_long, opposite direction. ``idempotency_key``
(ENG-7ded4fb8, optional): see perp_open_long.
perp_close
Close a perp position, full or partial (non-custodial).
close_pct in (0, 100]. Returns an UNSIGNED base64 tx to sign + broadcast,
plus exit price + realized P&L estimate (incl funding). Past the daily free
tier an x402 payment_header is required.
``idempotency_key`` (ENG-7ded4fb8, optional): a cli
perp_modify
Modify an existing open Drift ORDER by order_id (non-custodial).
Adjusts trigger price (TP/SL). new_leverage / add_collateral require a
separate collateral deposit/withdraw and are recorded for tracking. Returns
an UNSIGNED base64 tx to sign + broadcast. Past the daily free tier an x402
payment_hea
perp_positions
List open perp positions for a wallet with live P&L.
Each: market, side, size, entry/mark price, unrealized P&L (incl funding),
liquidation price.
perp_markets
Available Drift perp markets with price, open interest, funding, max leverage.
perp_funding_rates
Current funding for a perp market (rate, period, last funding timestamp).
market e.g. SOL-PERP. period is informational (1h/8h/24h).
place_perp_order
Open a leveraged perp position on the best/selected venue (non-custodial).
side is "long" | "short". market e.g. SOL-PERP; size_usd is notional USD.
venue optional -- defaults to the configured primary (Jupiter Perps), with
health failover to the fallback for new orders. Returns an UNSIGNED tx
(Tie
close_perp_position
Close a perp position (full/partial) on its venue (non-custodial).
position_id is venue-native (for Drift it is the market symbol). close_pct in
(0, 100]. Returns an UNSIGNED tx / signing payload to sign + broadcast.
``idempotency_key`` (ENG-ac7961aa, optional): a client-generated UUID.
Retrying w
cancel_perp_order
Cancel a resting perp order on its venue (non-custodial).
``idempotency_key`` (ENG-ac7961aa, optional): a client-generated UUID.
Retrying with the same key + same args replays the original result instead
of re-cancelling the order.
perp_positions_all
Open perp positions for a wallet. venue=None aggregates across venues.
Each position carries its venue + custody_tier.
perp_markets_all
Perp markets across venues (venue=None aggregates all routable venues).
perp_funding_rates_all
Normalized funding/borrow rates across venues (venue=None aggregates).
get_venue_status
Health + capabilities of every perps venue, plus routing config.
Reports primary/fallback venue, which venues are routable, per-venue health
(operational/degraded/down/disabled), and capability flags incl custody tier.
go_live_status
Live go-live posture + S1-S6 runbook stage readout (ENG-88a87e5d).
The single documented gated config surface (MB#20378 D2, follow-up to
ENG-b936ca31): renders the ENTIRE go-live flip state -- cluster, RPC host
(bare hostname, never an api key or query string), paper-trading + soft-
launch guards,
lend_deposit
Deposit assets to earn yield on Kamino or Marginfi (non-custodial).
Returns an UNSIGNED base64 tx to sign + broadcast, plus supply APY. amount
is in base units of token. protocol: kamino | marginfi. Marginfi needs
marginfi_account (create via the sidecar). Past the daily free tier an x402
payment_h
lend_borrow
Borrow against deposited collateral (non-custodial).
Returns an UNSIGNED base64 tx + current health factor (pre-borrow estimate).
amount in base units of borrow_token. Deposit collateral first. Past the
daily free tier an x402 payment_header is required. The borrowed token is
authenticity-verified
lend_repay
Repay borrowed amount (non-custodial). Returns an UNSIGNED base64 tx +
current health factor. amount in base units of token. Past the daily free
tier an x402 payment_header is required.
``idempotency_key`` (ENG-7ded4fb8, optional): a client-generated UUID.
Retrying with the same key + same args rep
get_lending_rates
Compare supply/borrow rates across Kamino + Marginfi.
Each row: protocol, token mint, symbol, supply/borrow APY %, TVL USD,
utilization.
Workflow: YIELDS step -- the passive-return option for idle/low-conviction
capital (lending USDC removes price exposure). Pairs with get_lst_yields.
See get_trad
Arm a liquidation alert: notify when a lending obligation's health factor
falls to or below threshold.
protocol: kamino | marginfi (marginfi_account required for marginfi).
threshold is the HF level (e.g. 1.2 warns before the <1.0 liquidation
point). Evaluated every 30s by Celery beat; webhook_url
flash_loan
Marginfi flash loan for arbitrage (non-custodial, atomic).
instructions are JSON ix executed between borrow + repay legs. Returns a
single UNSIGNED base64 tx that reverts unless repaid in-transaction. The
borrowed token is authenticity-verified first; set allow_unverified=true to
borrow an unverifi
liquid_stake
Stake SOL for a liquid-staking token (non-custodial).
amount in lamports. protocol: marinade | jito | blaze. Returns an UNSIGNED
base64 tx + the LST received + current APY. The technology service fee is
charged on the staked-SOL notional past the daily free tier (x402
payment_header; set pay_in_cra
unstake_lst
Unstake an LST back to SOL (non-custodial).
lst_token is a mint (mSOL/jitoSOL/bSOL); amount in base units. mSOL routes
via Marinade, others via the Sanctum router. Returns an UNSIGNED base64 tx.
The technology service fee is charged on the unstaked-LST notional past the
daily free tier (x402 paymen
get_lst_yields
Compare APY across LST providers (Marinade/Jito/Blaze) with MEV-boost +
validator-count descriptors.
Workflow: YIELDS step -- staking keeps SOL exposure + earns yield (vs lending,
which removes price exposure). Best APY becomes the 'park it' leg of the
allocation; execute via liquid_stake. See get_
lst_swap
Swap between two LSTs via the Sanctum router (non-custodial).
from_lst/to_lst are mints; amount in base units. Returns an UNSIGNED base64
tx + output amount. The technology service fee is charged on the input-LST
notional past the daily free tier (x402 payment_header). The acquired LST
(to_lst) is
short_open
Open a lending-based short: deposit collateral -> borrow token -> sell.
Returns an ORDERED STEP PLAN of UNSIGNED base64 txs to sign + broadcast in
sequence, plus entry price + health factor + a short_id for tracking. All
amounts in base units. The shorted token is authenticity-verified first; set
a
short_close
Close a tracked short: buy token -> repay loan -> withdraw collateral.
Returns an ORDERED STEP PLAN + exit price. short_id from short_open. Past
the daily free tier an x402 payment_header is required.
``idempotency_key`` (ENG-7ded4fb8, optional): a client-generated UUID.
Retrying with the same key
short_status
List open shorts for a wallet with entry price + health factor.
leverage_long
Open a lending-based leveraged long by looping deposit -> borrow stable
-> buy more -> redeposit.
Returns an ORDERED STEP PLAN of UNSIGNED base64 txs, effective leverage, loop
count, health factor, and a position_id. amount in base units. The levered
token is authenticity-verified first; set allow_
leverage_close
Unwind a tracked leveraged position: sell -> repay stable -> withdraw.
Returns an ORDERED STEP PLAN. position_id from leverage_long. Past the daily
free tier an x402 payment_header is required.
``idempotency_key`` (ENG-7ded4fb8, optional): a client-generated UUID.
Retrying with the same key + same
fund_wallet
Fund a wallet with fiat via MoonPay (card/bank/Apple Pay -> USDC).
Returns a hosted checkout_url for the user to complete payment + a
session_id to poll with get_onramp_status. Purchased USDC settles directly
to wallet_address (non-custodial). payment_method: card | bank | apple_pay.
The fee is cha
offramp_to_fiat
Cash out crypto to fiat via MoonPay (non-custodial).
token is the crypto to sell; amount is its quantity; destination is a
MoonPay bank_account_id the fiat is paid to. Returns offramp_id,
estimated_fiat, and status. Past the daily free tier an x402 payment_header
is required.
``idempotency_key`` (
get_onramp_status
Check a pending MoonPay purchase by session_id.
Returns status (pending/processing/completed/failed), amount_crypto, and
the on-chain tx_signature once settled.
create_agent_wallet
Provision a managed wallet for an agent (non-custodial control plane).
Creates an AgentWallet record keyed by agent_id and applies an optional
default policy preset. default_policies: conservative | balanced |
aggressive. wallet_address is the agent's PUBLIC key (caller-supplied); omit
it to create
enable_agent_wallet
Open the browser-confirmation handshake for a Lane 2 agent wallet.
Does NOT create a wallet. Returns a pairing-style confirmation URL +
device_code -- show the user verification_url_complete and ask them to
approve it in their OWN browser (wallet-signature gated). NEVER accept an
in-chat "yes" as c
poll_agent_wallet_enable
Poll a Lane 2 enablement request; provisions the wallet ONLY once approved.
On approval, applies the server-enforced conservative Lane 2 default
policy (per-tx $50, daily $200, SOL+USDC only, 10% drawdown halt) and a
10-execution training-wheels counter, then returns the policy READ BACK
from the s
request_wallet_policy_loosening
Open the browser-confirmation handshake to loosen a Lane 2 wallet's policy.
Call this when set_wallet_policy refuses a change with
BROWSER_CONFIRMATION_REQUIRED. Does NOT apply the policy -- returns a
confirmation URL like enable_agent_wallet. Poll with
poll_wallet_policy_loosening(device_code) onc
poll_wallet_policy_loosening
Poll a policy-loosening request; applies it ONLY once approved.
Returns the policy READ BACK from the server after the write -- never the
requested one.
set_wallet_policy
Configure trading limits and rules on a managed wallet.
policies: a list of {policy_type, value, enabled?} objects. policy_type is
one of max_trade_size {"usd"} | daily_limit {"usd"} | approved_tokens
{"tokens"} | banned_tokens {"tokens"} | position_limit {"usd"} | kill_switch
{"active"} | drawdown
kill_wallet
Emergency freeze a managed wallet.
Sets status=killed so the policy gate refuses every subsequent value-bearing
action. Returns confirmation + a frozen-positions count. (Turnkey scoped-key
revocation is handled by the deferred provisioning ticket.)
wallet_status
Current state, policy summary, recent activity, total volume, and tier.
set_permission_mode
Change a managed wallet's session permission mode (non-custodial control plane).
Ports Claude Code's plan/acceptEdits/bypassPermissions ladder to a wallet
with signing power. mode: observe (deny every mutating tool outright,
PERMISSION_MODE_BLOCKED) | propose (mutating tools return a PROPOSAL
envel
approve_proposal
Approve a pending PROPOSAL within its TTL (non-custodial control plane).
Flips a propose-mode proposal (see set_permission_mode) from pending to
approved, making it executable. Bookkeeping only -- it does not itself
re-dispatch the original tool call.
authorize_session_signer
Authorize a delegated session signer for a managed wallet (non-custodial).
signer_pubkey is a keypair the USER creates and holds -- ONLY its PUBLIC
key ever crosses this call (hard rule 1). Once authorized, calls that
carry this signer_pubkey are trade-only: the gate rejects any transfer/
withdraw/
revoke_session_signer
Instantly revoke a delegated session signer (non-custodial control plane).
Single atomic DB UPDATE -- the gate resolves the row fresh on every call
with no cache, so this is enforced on the very next call using
signer_pubkey. No TTL/cache window (ENG-39ec13bf).
list_session_signers
List all delegated session signers (active + revoked) for a wallet.
crank_dependency_status
Protocol dependency compatibility matrix — are we compatible right now?
Read-only. Returns per-protocol RED/AMBER/GREEN status (drift, jupiter,
kamino, marginfi, marinade, sanctum, raydium), our SDK pin vs latest, last
health-probe result, on-chain program slot, next recommended action, and any
aut
crank_prompt_health
Dev Process Health — recurring CC friction this week vs resolved.
Read-only. Returns the latest weekly close-report review snapshot
(ENG-dc453c0d): a ``Prompt health: N recurring issues, M resolved this week``
headline plus per-issue week-over-week trend (``trending_down_after_fix``)
for a dashboar
register_integrator
Register an agent integrator by its payout wallet -- lands PENDING.
The Jupiter-integrator self-serve onboarding step. The profile earns NOTHING
until an admin approves it via ``set_integrator_share`` (anti-gaming
whitelist). Idempotent on ``wallet_address``. Returns the integrator stats.
register_referrer
First-touch bind an onboarded agent wallet to an approved integrator.
First-touch wins: a wallet already attributed to any integrator keeps that
binding. Requires the integrator be approved; rejects a self-referral.
set_integrator_share
ADMIN-GATED: approve an integrator and set its fee-share (0-20%).
Validates ``share_bps`` against the per-leg ceiling (integrator_max_share_bps)
AND the combined stacking guard (referral + clone + integrator <=
max_total_share_bps, so Crank keeps >=40% of every net fee). A breach is
REJECTED, never
get_integrator_stats
Integrator dashboard: status, share, onboarded count, earnings breakdown.
Read-only. Every figure is fee-share USD (technology service fees the
onboarded agents paid), never PnL -- a fee-share, never a performance-share.
Full support-ticket detail with the conversation thread. Read-only.
ticket_id: numeric id or human ticket number (e.g. CRK-AB2K9P).
reply_to_ticket
Reply to a support ticket — emails the requester (SendGrid) + threads it.
Records the outbound message and advances status (open/waiting ->
in_progress, or waiting_on_user when set_waiting). The message is persisted
even if email delivery fails; the returned ``email_sent`` reflects the
delivery att
note_create
Append an internal-only note to a support ticket (ENG-69d5785b).
Agent-side context: records an internal SupportMessage (is_internal_note=True)
that is NEVER emailed to the requester, and leaves the ticket status
unchanged. ticket_id: numeric id or human ticket number (e.g. CRK-AB2K9P).
set_ticket_priority
Set a support ticket's priority (ENG-69d5785b).
priority: low|normal|high|urgent. Metadata-only -- no email, no status change.
update_ticket_status
Set a support ticket's status.
status: open|in_progress|waiting_on_user|resolved|closed. Stamps resolved_at
on transition into resolved/closed and clears it on reopen.
assign_ticket
Assign a support ticket to a staff user (username or id). Empty -> unassign.
get_support_dashboard
Support desk metrics: open count, avg response/resolution time, breakdowns.
Read-only. Returns totals, open/resolved/unassigned counts, resolution rate,
avg first-response + resolution seconds, by-status/category/priority maps,
and a 14-day created-ticket trend. Mirrors the backoffice dashboard.
get_venue_health
Live safety/health read for one trading venue (read-only, non-custodial).
Returns operational status (live/degraded/suspended), last monitoring
heartbeat, on-chain program deploy slot, SDK compatibility headline, TVL +
perps 24h volume (DeFiLlama, cached 5 min). venue is a slug e.g. "drift",
"jupit
get_venue_risk_score
Composite venue risk score 0-100 (higher = safer), with breakdown.
Read-only. Folds custody tier (A self-custodial / B venue-custodied),
multisig threshold, timelock, audit status, exploit history, TVL trend and
program age into a transparent weighted score (score_breakdown returned so
the number i
get_all_venues_status
Dashboard overview of all configured venues for routing decisions.
Read-only. One health record per active venue (status, deploy slot, TVL,
24h volume, composite safety score) so an agent can pick a venue in a
single call.
venue_risk_comparison
Side-by-side risk comparison of two venues for a routing decision.
Read-only. Returns each venue's full risk record, the safer venue, and the
composite-score delta. e.g. compare "jupiter" vs "pacifica" before routing.
trade_equity
Spot-trade a tokenized equity (xStocks / Ondo) via Jupiter, non-custodial.
side: buy | sell. amount is in base units of the INPUT token (USDC 6dp for a
buy, the equity token for a sell). These are tokenized SECURITIES: the call
is geo-gated (Reg S = no US persons; declare jurisdiction once via the
equity_markets
List available tokenized equities with issuer, regime, price, market hours.
Read-only. Source: the admin-editable TokenRegistry. Each row carries issuer
(xStocks/Ondo), regulatory_framework, geo_restrictions, and best-effort
price/volume/market-cap, plus NYSE status + the 24/7-on-Solana flag.
equity_quote
Read-only Jupiter quote for a tokenized-equity trade (no execution).
amount is in base units of the INPUT token (USDC for buy, the equity for
sell). Returns expected output, price impact, effective fee, slippage, and
the SEC disclaimer. ``venue_hint`` (ENG-fc290438/ENG-00ebde90, MB#18215) is
ADVISO
equity_positions
Tokenized-equity holdings for a wallet with live prices + market hours.
Read-only. Filters balances to registered equity mints; each: symbol,
quantity, current_price, current_value_usd, issuer, regulatory_framework
(avg_cost / unrealized P&L null until cost-basis tracking lands).
equity_corporate_events
Earnings / dividend / split calendar for a tokenized equity.
Read-only. The after-hours-agent feature: events an overnight strategy reacts
to while the underlying trades 24/7 on Solana. Provider-backed; returns an
honest empty payload + SEC EDGAR link when no feed is configured.
equity_market_hours
NYSE session status + the 24/7-on-Solana availability flag.
Read-only. status: closed | pre_market | open | after_hours, with next
open/close. Highlights the structural advantage: tokenized equities trade
24/7 on-chain regardless of NYSE hours.
get_token_classification
Standardised tokenized-stock classification for a mint or symbol (ENG-b34b5493).
Read-only. Returns every classification dimension -- backing_status
(fully/treasury backed, synthetic, unknown), liquidity_tier (tier_1/2/3 /
illiquid, from Jupiter price impact), issuer_verified (Metaplex authority
ma
register_agent
Register/refresh an agent's discovery profile in the Crank registry.
capabilities is a subset of swap|perps|lending|staking|strategies|signals|
equity|onramp; supported_protocols e.g. ["mcp","a2a","x402"]. Idempotent on
wallet_address (a PUBLIC key -- non-custodial). This is how other agents find
y
discover_agents
Find registered agents, optionally filtered to one capability.
capability one of swap|perps|lending|staking|strategies|signals|equity|onramp
(empty = all). Ranked by reputation then recency. Read-only, free.
get_agent_profile
Read an agent's published profile + its referral stats (read-only, free).
update_agent_profile
Patch an agent profile's metadata (display_name, capabilities, endpoints).
metadata is a dict of writable fields; capabilities are validated if present.
publish_strategy
Publish a cloneable strategy config to the marketplace (the flywheel).
config_template is the parameter set others clone. anonymous=true omits the
author. performance_summary is a factual metrics blob -- no return promises
are stored or surfaced (hard rule 8). backtest_run_id attaches a verified
ba
discover_strategies
Browse published strategies (read-only, free). Crypto-only (MB#13761).
strategy_type filters to one of the 16 Crank strategy types (empty = all).
sort ranks by clones|sharpe|return|sortino|win_rate|drawdown (default clones).
get_leaderboard
Top published strategies ranked by a verified backtest metric (free).
Crypto-only -- equity templates excluded (MB#13761). sort in sharpe|return|
sortino|win_rate|drawdown|clones (default sharpe). Each entry carries factual
backtest metrics + the on-chain attestation hash; no return promises (rule
clone_strategy
Clone a published strategy config to a wallet (records attribution).
Returns the config_template to deploy via the strategy create tools. The
clone is attributed to the template author for the clone-creator fee share
(15% of the tech fee on clone actions, MB#13669). Free to clone.
send_token_social
Send tokens to an X handle via a claimable crank.ing link (non-custodial).
Locks ``amount`` (base units) of ``token`` (mint) from ``sender_wallet`` into
the on-chain claim escrow against a fresh claim code, and returns an UNSIGNED
base64 transaction for the sender to sign + broadcast, plus the
cran
bulk_send_social
Distribute one token to many X handles in one call (non-custodial, ENG-bfeacb2c).
``recipients`` is a list of ``{recipient_handle, amount, message?}`` dicts
(``recipient`` accepted as an alias; ``amount`` in base units; ``message`` an
optional per-recipient note). Locks each amount of ``token`` (mi
get_social_sends
A wallet's social token sends (newest first; no claim-code secrets).
claim_status
Public status of a crank.ing claim code (status, amount, claimable, expiry).
get_crank_score
A wallet's Crank Score reputation breakdown (FREE read, ENG-95f335be).
Returns total_score, per-activity components (trade / staking / strategy /
social / claim), sybil_flagged + penalty_bps, and the score-gated perks it
unlocks under ``gates``: fee_discount_bps (additional technology service fee
d
get_score
User-facing Crank Score: rank, multiplier, metrics + quests (FREE, ENG-b0150c40).
The campaign-layer view on top of ``get_crank_score``. Returns total_score,
leaderboard rank + percentile, the applied multiplier_bps (streak /
early-adopter / strategy-creator), the wallet's costly-action ``metrics``
get_score_leaderboard
Top-N Crank Score leaderboard (FREE read, ENG-b0150c40).
Ranked descending by total_score. ``limit`` caps at the admin-configured
leaderboard_size. Each entry: rank, wallet_address, total_score, the
base/action/quest components, multiplier_bps, streak_days, percentile. Also
returns total_participan
get_quests
Live Crank Score quests + a wallet's progress (FREE read, ENG-b0150c40).
Time-bounded, admin-configured campaigns (e.g. "Trade $1000 this week = 500
pts"). Each quest carries its tracked costly metric, target_value,
reward_points, the active window, and -- when ``wallet_address`` is given --
the wa
check_claim_status
Sender-facing claim status of a social send (FREE read, ENG-bfeacb2c).
Look up by ``claim_id`` (the send id) OR ``recipient`` (X handle); optionally
scope a recipient lookup to one ``sender_wallet``. Returns ``{"sends": [...]}``
each with status (pending/claimed/expired/returned), claim_date, retur
get_usage_report
An agent's own premium-feature spend report (FREE read).
Returns per-feature {calls, spend_usd, cost_usd} plus totals from the
FeatureUsage ledger. period: today | 7d | 30d | all (default 30d).
get_market_briefing
Crypto market briefing synthesised from free public sources (tiered).
Returns a market briefing aggregated from free crypto data sources (Coin Bureau,
DeFiLlama, the alternative.me Fear & Greed index) plus classified sentiment
signals: market summary, top movers / most-discussed assets, sentiment r
get_source_accuracy
Historical directional hit-rate of each intelligence source (free read).
Returns per-source accuracy stats for the intelligence signal sources (Coin
Bureau / YouTube, RSS, Fear & Greed API, on-chain), so an agent can weight a
source's calls by how often its bullish/bearish reads have played out. Ea
get_regulatory_updates
Recent regulatory statements affecting Crank's scope (free read, ENG-43ba5e83).
Returns SEC / CFTC / FinCEN press releases and rule proposals from a scheduled daily
scan, LLM-classified for relevance to Crank: DeFi, crypto perps, tokenized equities,
autonomous agent trading, and non-custodial custo
get_technology_updates
Recent technology / tooling developments relevant to Crank + Engaij (free read, ENG-565c74a9).
Returns items from a scheduled scan of technology feeds (Anthropic, OpenAI, Coinbase
Developer, Solana Foundation, Hacker News filtered, GitHub trending) plus flagged
YouTube tech channels (full transcrip
get_consensus
Multi-source consensus + contrarian read for one asset (PLATINUM premium).
Cross-references the classified intelligence signals for ``asset`` over the last
``window_hours`` (default 24): how many independent sources agree on direction
(consensus_score 0-1), the source breakdown (bullish/bearish/neu
get_contrarian_signals
Contrarian (crowded) + uncertain assets across the window (PLATINUM premium).
Scans the classified intelligence signals over the last ``window_hours`` and returns
assets where source agreement is very high -- a one-sided, crowded positioning
flagged as a potential contrarian condition (with the sid
get_signals
Filtered, most-recent-first feed of structured market signals (free read).
The observed-signal data spine: squeeze / flow / technical / microstructure /
behavioral / liquidity / safety / whale / regime / macro / oracle / event /
composite signals persisted by the collectors. ``subject`` matches a t
get_token_risk_assessment
Per-token risk roll-up over recently observed safety signals (free read).
Folds every non-expired signal for ``subject`` (symbol or mint) in the window
into the worst risk level seen, a 0..1 risk score, a per-level count
breakdown, and the contributing signals (worst-first). Complements -- does
not
get_market_regime
Market-wide regime from the persisted regime/macro signal feed (free read).
Returns the dominant regime, its confidence, a distribution across observed
regimes, and the contributing signals. For a live per-asset regime computed
from OHLCV, use ``detect_regime`` instead. Descriptive observed data on
list_signal_catalog
Catalog of every available signal stream (free read; ENG-5029a312).
One entry per signal source across all tiers -- on-chain collectors, free
API sources, derived analyzers and external provider adapters -- with tier,
cost-gate state (paid Tier-D gates are fail-closed and disabled by
default), cove
get_source_weights
Source-effectiveness weight table (free read; ENG-bfb7ace4).
Per (source, signal_type, regime): graded evaluation counts, the smoothed
effectiveness weight (social sources hold a low prior until sufficiently
graded -- the anti-gaming cold start), the fleet Layer-2 multiplier from
released k-anonymo
get_cross_exchange
Cross-venue snapshot for one asset (free read).
Per-venue price/bid/ask/movement (5m/1h/24h change), the pairwise spread
matrix (bps), the widest current spread, and -- for wrapped-asset legs
(BTC/ETH) only -- the Solana-DEX wrapped-asset premium vs the
CEX-consensus reference price. Observed data,
get_arb_discrepancies
Persisted cross-venue discrepancy episodes (free read).
Already-debounced ``cross_exchange`` signals (each required >= N
consecutive polls above the discrepancy threshold to exist at all),
filtered to ``spread_bps >= min_spread_bps`` and optionally to ``assets``,
within ``window_hours``. One entry
get_strategy_suggestions
Signal-to-action suggestions from the synthesis engine (free read, G4).
Per-asset directional observations aggregated hourly from the accuracy-
weighted intelligence consensus (get_consensus math) plus the Fear & Greed
context, each carrying a ready-to-use strategy config. PROPOSE flow: this
tool n
get_ilo_adoption_status
The ILO adoption gate -- one machine-checkable readiness read (free).
Andrew's decision (MB#20076, ENG-5de0ede9): the ILO proceeds only once
Crank has 1,000 active users, where an active user has at least 5 executed
Crank transactions inside a rolling 7-day window. Signups do not count.
Returns gat
strategy_dca_create
Create a dollar-cost-average strategy buying ``usd_per_buy`` of target each interval.
``risk`` (optional) overrides the safe-default risk limits (ENG-b2c60329):
``max_position_pct`` / ``max_portfolio_exposure_pct`` / ``max_single_loss_pct``
/ ``max_drawdown_pct`` / ``max_daily_loss_pct`` (percent;
strategy_equity_dca_create
Create an equity dollar-cost-average strategy (tokenized equities / xStocks).
Shares the DCA executor -- identical mechanics/config to
``strategy_dca_create`` -- tagged ``equity_dca`` because ``target_token`` is
expected to be a tokenized-equity mint. SEC posture (ENG-6f4d3513): DCA is a
MECHANICAL
strategy_stoploss_create
Create a stop-loss / take-profit / trailing-stop monitor on a held position.
``position_amount`` is base units of ``target_token`` to liquidate on
trigger. At least one of ``stop_loss_pct`` / ``take_profit_pct`` / a trailing
config should be set (fractions, e.g. 0.15 == 15%).
Direction (ENG-bd44b1
strategy_protect_create
Create a downside-protection monitor on a held position.
Shares the stop-loss executor -- identical config/mechanics to
``strategy_stoploss_create`` -- framed as a pure downside guard. At least
one of ``stop_loss_pct`` / ``take_profit_pct`` / ``trailing`` must be set.
strategy_hedge_create
Create a hedge strategy -- an exit trigger that unwinds a held position.
Shares the stop-loss executor -- identical config/mechanics to
``strategy_stoploss_create`` -- framed as an active risk-offset trigger: set
``stop_loss_pct`` / ``trailing`` to shed exposure on an adverse move, or
``take_profit
strategy_rebalance_create
Create a portfolio-rebalance strategy toward ``target_allocation`` (mint->weight).
Direction (ENG-bd44b1b7, optional, advisory): ``direction_mode`` /
``allow_short`` / ``regime_override`` -- see ``strategy_dca_create``.
strategy_vault_create
Create a vault strategy -- a target-allocation basket held via rebalancing.
Shares the rebalance executor -- identical config/mechanics to
``strategy_rebalance_create`` (``target_allocation`` mint->weight,
``drift_threshold_pct``) -- framed as a passive basket rather than an active
rebalance loop.
strategy_snipe_create
Create a snipe/scalping strategy -- dip-buy with a fast take-profit/stop exit.
Flat: buys ``usd_per_buy`` when price is ``entry_dip_pct`` below the close
``lookback`` ticks ago. Holding: exits on a tight ``take_profit_pct`` OR
``stop_loss_pct`` -- many small round-trips. Runs on a short interval
(d
strategy_momentum_create
Create a momentum strategy -- fast/slow SMA crossover entry/exit.
Buys on a bullish cross (fast SMA > slow SMA), sells on a bearish cross.
DISCRETIONARY (SEC framework, ENG-6f4d3513): the model interprets a signal
and converts it to a trade, so targeting a tokenized SECURITY forces
per-execution us
strategy_sentiment_create
Create a sentiment strategy -- trades an aggregate sentiment score.
Buys when the score is >= ``bull_threshold`` (flat), sells when it is
<= ``bear_threshold`` (holding); the neutral band holds. The score is
sourced live from market intelligence each tick, or pinned via
``sentiment_score``. DISCRET
strategy_yield_farm_create
Create a yield-farm strategy -- maintains a target basket allocation.
Shares the rebalance executor (config identical to
``strategy_rebalance_create``): depositing into an external yield protocol
/ LP position has no faithful swap-pipeline analogue, so this models a
yield farm as keeping a target a
strategy_copy_wallet_create
Create a copy-wallet strategy -- mirrors a tracked wallet's entries/exits.
``tracked_wallet`` is the Solana address to mirror (its confirmed on-chain
buy/sell actions are sourced each tick); ``usd_per_buy`` is the default
mirror size (scaled by ``size_multiplier``) applied when the tracked wallet
b
strategy_market_make_create
Create a market-make strategy -- two-sided spread capture (APPROXIMATE).
No live order book -- SYNTHESISES a spread from realised volatility around
a rolling mid: a "filled bid" (price a half-spread below mid) buys, a
"filled ask" (above mid) sells (up to held inventory). Market-neutral:
PAUSES in
strategy_arb_create
Create an arb strategy -- cross-venue price-discrepancy convergence (APPROXIMATE).
Reads a live cross-venue spread each tick (task-sourced from the Jupiter
quote corpus vs on-chain price) or falls back to a transparent PROXY
(deviation below a short EMA) when unavailable. Enters when the spread
cle
strategy_perp_grid_create
Create a perp-grid strategy -- a ladder of perp LONGS accumulated on dips.
Routes through the multi-venue perps VENUE ADAPTER (hard rule 2; Jupiter
Perps primary). Around a rolling center price (SMA, or an explicit
``center_price``), each ``grid_spacing_pct`` move below center is one rung;
crossing
strategy_basis_trade_create
Create a basis-trade strategy -- funding-harvest perp SHORT leg (APPROXIMATE).
Routes the perp leg through the multi-venue VENUE ADAPTER (hard rule 2). A
live delta-neutral basis trade is long spot + short perp harvesting
funding; this executor opens/manages only the perp SHORT leg (the spot
long t
strategy_status
Status + last execution of one strategy (scoped to the caller's wallet).
strategy_modify
Edit a running strategy's parameters IN PLACE -- no cancel + recreate.
React to a fresh signal by retuning the strategy you already own: the
execution history, cost-basis ledger and position state all survive, and
there is no window where the strategy is gone. The live executor picks the
new config
strategy_cancel
Stop a strategy (sets status=stopped; it will not be dispatched again).
strategy_pause
Manually pause a strategy (status=paused_manual; stops dispatch).
strategy_resume
Re-enable a paused strategy (manual re-enable after a drawdown pause).
The drawdown kill switch (ENG-b2c60329) latches a strategy to
``paused_drawdown`` and requires this explicit owner action to resume; the
equity high-water mark is reset so it does not immediately re-trip.
strategy_list
List a wallet's strategies (newest first, capped).
get_trading_workflow
Map of how Crank's tools fit into one end-to-end trading flow (read this first).
Read-only, free. Returns an ordered, machine-readable workflow: orient ->
intelligence -> yields -> simulate (backtest) -> risk-size -> execute
(non-custodial) -> monitor -> journal. Each step names the concrete
tool(s
journal_append
Record a decision in your private, wallet-scoped journal (free write).
Your durable memory on Crank: rationale, intended action, and optional
expectations (e.g. {"direction": "up", "horizon": "24h"}) are stored as
one opaque body only you can read back; the system later attributes
realised P&L from
journal_query
Read your own decision journal, most recent first (free read).
Wallet-scoped: only decisions journaled for wallet_address are ever
returned. Filters: window_hours (0 = all), decision_type, strategy_type,
asset (mint/symbol as journaled), outcome_sign
(positive|negative|zero on realised P&L), source
get_my_performance
Your own realised performance, grouped (free read).
Aggregates your journaled non-paper outcomes: win rate, total/average
realised P&L (USD), and technology-service-fee drag, grouped by
strategy_type | asset | decision_type | hour_of_day over window_hours.
Includes a calibration score (your stated
suggest_parameter_adjustment
Historical parameter observations for one of YOUR strategies (free read).
Compares the strategy's realised outcomes against your other strategies
of the same type that ran different parameter values, and returns the
observed differences ranked by realised P&L -- historical performance
data only, ne
get_portfolio_charter
Read the wallet's active portfolio charter -- the CRANK.md-equivalent mandate (free read).
A user-authored document declaring objectives, risk_band, banned
tokens, target_allocations, max_position_pct, rebalance cadence, and
an escalation webhook -- loaded once per session instead of forgotten
betw
set_portfolio_charter
Write a new version of the wallet's portfolio charter (free control-plane write).
Creates a new active version -- the prior version stays in history,
never deleted (versioned mandate, not an in-place overwrite).
risk_band is one of conservative|balanced|aggressive. banned_tokens
merge into AgentWal
register_webhook
Register (or reactivate) a lifecycle-event webhook for a wallet (free control-plane write).
event_types is a non-empty subset of: pre_trade (advisory only, never
blocks a trade), post_trade, policy_violation, drawdown_warning,
strategy_executed. url is your https(s) receiving endpoint. secret is
YO
list_webhooks
List a wallet's webhook subscriptions (free read; secrets are never returned).
delete_webhook
Delete one of a wallet's webhook subscriptions (free control-plane write).
get_collective_insights
Fleet-wide collective insights, historical performance data (free read).
Filters: asset (mint/symbol), strategy_type, insight_type (one of
param_performance/signal_effectiveness/timing/venue_quality/crowding/
regime_conditional). Only ACTIVE, non-suppressed/non-expired insights
are ever returned. E
get_strategy_leaderboard
Anonymized fleet strategy-parameter leaderboard (free read).
Ranks param_performance collective insights by effect_size within
window (24h|7d|30d|90d|all). NEVER identifies a wallet or cohort --
rankings are anonymized param-bucket aggregates only, and any bucket
with fewer than 25 contributing coh
get_signal_effectiveness
Fleet action-conditioned signal effectiveness (free read).
Filters: source_type (e.g. youtube/rss/api/on_chain), signal_type,
window (24h|7d|30d|90d|all). Returns, per matching signal_effectiveness
collective insight, the fleet action taken, effect_size, confidence
interval, contributing-agent coun
propose_allocation
Ranked allocation plan: intent + balances + regime + yields + ML signals (free read).
One call composes the read-only surfaces an agent would otherwise
orchestrate by hand -- lending supply APYs, LST staking yields, the
per-asset market regime, and the ML ensemble signal -- into a ranked,
intent-sh
compose_strategy
Validate a composite definition -- returns the normalised definition +
validation report. No persist; read = FREE per the fee schedule.
Checks: schema, stream existence against the signal catalog, rule-tree
depth/size limits, required risk caps, and the anti-gaming rule (a social
sentiment/trend_so
strategy_composite_create
Create a composite strategy from a validated definition.
Same non-custodial create path as the other 16 strategy types: the wallet
holds its own keys; a wallet without a Turnkey signer receives an unsigned
transaction per tick for the owner to sign. ``mode`` defaults to LIVE
(recorded on the config
create_execution_intent
Create a propose-only execution intent; returns an approval URL to hand to the user.
Lane 1 (non-custodial default): builds the unsigned swap transaction
server-side, persists it as an intent, and returns
{intent_id, approval_url}. NOTHING executes until the user opens the
approval URL in their bro
get_intent_status
Read the persisted lifecycle state of an execution intent (free read).
Returns the server-persisted state only -- CREATED, APPROVED,
SUBMITTED, UNKNOWN, CONFIRMED, FAILED, or EXPIRED -- plus the
simulation summary and the on-chain signature once submitted. Never
infers: UNKNOWN means an unresolved
Endpoint
https://mcp.crank.ing/mcp Category: Databases · Last checked: 2026-07-30T13:44:42Z
Monitor your own MCP server
Get alerted the moment yours goes down, a tool schema drifts, or an upstream silently breaks.
What this means. This server responded to the MCP handshake and listed its tools without authentication. The schema fingerprint lets us flag if tool signatures silently change (schema drift) between checks.