Skip to main content
Glama

Crank Protocol

Server Details

Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.

Tool Definition Quality

Score is being calculated. Check back soon.

Available Tools

160 tools
approve_proposal
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
approved_byNo
proposal_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

asset_classification
Read-onlyIdempotent
Inspect

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 types). Registry-authoritative with a static + symbol fallback. Factual classification only -- not a recommendation.

Workflow: RISK/COMPLIANCE step -- classify before executing; 'equity' forces geo-gating + per-execution confirm. Pairs with get_disclaimers. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
caller_idNo
token_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

assign_ticket
Idempotent
Inspect

Assign a support ticket to a staff user (username or id). Empty -> unassign.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
ticket_idYes
assigned_toNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

authorize_session_signer
Read-onlyIdempotent
Inspect

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/close-account/authority-change instruction targeting a destination outside the wallet's own accounts (docs/ SESSION_SIGNER_DESIGN.md). capabilities: subset of swap|perp|lend|stake, empty/omitted = full default set. expires_at: optional ISO 8601 hard expiry. Effective on the very next call using this signer_pubkey.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
caller_idNo
expires_atNo
capabilitiesNo
signer_pubkeyYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

backtest_strategy
Read-onlyIdempotent
Inspect

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 is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d; start_date/end_date are ISO-8601. params tunes the strategy (e.g. {"fast":5,"slow":20} for momentum). For strategy_type="composite" pass the signal-rule definition (see compose_strategy); the response includes a per-stream signal_coverage honesty report -- streams with partial persisted history are flagged, never silently zero-filled. slippage_model: "fixed" (slippage_bps haircut) or "jupiter_replay" (realised price-impact from the recorded quote corpus). Returns performance metrics (Sharpe/Sortino/Calmar, max drawdown, win rate, profit factor, VaR/CVaR), final equity, and trade + signal counts. Read-only simulation -- no fee, no on-chain action.

Workflow: SIMULATE step -- validate a strategy on history before risking capital; run twice (e.g. auto vs long_only) to compare. Poor Sharpe/deep drawdown -> retune or fall back to the yield leg. Feeds get_risk_assessment -> the strategy_*_create tools. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
paramsNo
fee_bpsNo
end_dateYes
caller_idNo
timeframeYes
definitionNo
start_dateYes
slippage_bpsNo
strategy_typeYes
slippage_modelNofixed
wallet_addressNo
initial_capitalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

bulk_send_socialA
Destructive
Inspect

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 (mint) from sender_wallet into a fresh claim escrow and returns the create_claim instructions batched into as few UNSIGNED transactions as fit -- the sender signs + broadcasts every returned tx. Each send carries its crank.ing claim link, the bearer claim_code (returned once, embed per tweet), and the transaction_index of the tx that funds it. Anti-abuse gated (account age, verified wallet, per-sender daily limit counting the whole batch). platform: x.

idempotency_key (ENG-ac7961aa, optional): a client-generated UUID. Retrying with the same key + same args replays the original result (same claim_codes/links) instead of locking a second batch of escrows.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
platformNox
referralNo
caller_idNo
recipientsYes
sender_walletYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (destructiveHint: true, readOnlyHint: false) are expanded with details: funds are locked into escrow, instructions are returned as unsigned transactions, claim codes and transaction indices are provided, and anti-abuse limits apply. The description adds value beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with paragraphs and inline code formatting. It front-loads the main purpose and uses bullet-like lists. Some redundancy exists (e.g., 'ENG-bfeacb2c' and 'ENG-ac7961aa' prefixes), but overall it's informative and organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, batch operations, transactions), the description covers key aspects: behavior, idempotency, anti-abuse, and output details. The output schema exists, so return values are presumably documented. Missing explanation for 'referral' and 'caller_id' slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% coverage, so the description must compensate. It explains 'recipients' (list of dicts with fields), 'token' (mint), 'sender_wallet', and 'idempotency_key' with format hints. However, 'referral' and 'caller_id' are not explained, leaving gaps. Baseline 3 is appropriate given partial coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Distribute one token to many X handles in one call (non-custodial)'. It specifies the verb (distribute), resource (token to X handles), and scope (batch). This distinguishes it from sibling tools like send_token_social or perp-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use: for distributing one token to multiple recipients in a single call. It explains batching of unsigned transactions, idempotency for retries, and anti-abuse gating. While it doesn't explicitly mention alternatives, the context of siblings like send_token_social implies single-send use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_perp_order
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNo
order_idYes
caller_idNo
wallet_addressYes
idempotency_keyNo
acknowledge_tier_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

check_claim_statusA
Read-onlyIdempotent
Inspect

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, returned_at, recipient_wallet, amount, claim_link, expiry_ts, and expires_in_seconds (a live countdown, 0 once expired). Never exposes the claim-code secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_idNo
caller_idNo
recipientNo
sender_walletNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive. Description adds 'Never exposes the claim-code secret' and details return fields. The 'FREE read' note is extra but not behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: two sentences and a list of return fields. Front-loaded with purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations are rich, the description covers the main lookup and return aspects. Missing explanation for caller_id is the only gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description explains claim_id, recipient, and sender_wallet semantics beyond the schema, but completely omits caller_id. With 0% schema coverage, the gap for one parameter is notable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Sender-facing claim status of a social send' with specific verb and resource. Distinguishes lookup by claim_id or recipient, which differentiates from sibling 'claim_status' that may be more generic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on when to use each parameter (look up by claim_id OR recipient, optionally scope by sender_wallet). However, lacks explicit 'when not to use' or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

claim_statusC
Read-onlyIdempotent
Inspect

Public status of a crank.ing claim code (status, amount, claimable, expiry).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds that the tool returns specific fields, but does not disclose additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's purpose. It is concise and front-loaded, but could be expanded to include parameter guidance without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description omits parameter semantics, which is a significant gap given the 0% schema coverage. The tool is read-only, but incomplete documentation hinders correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should explain parameters. It mentions output fields but does not describe the 'code' or 'caller_id' parameters, leaving their meaning and usage opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves public status of a crank.ing claim code, listing specific fields (status, amount, claimable, expiry). However, it does not differentiate from the sibling tool 'check_claim_status', which likely serves a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The mention of 'public status' implies usage but no exclusions or comparisons with siblings such as 'check_claim_status'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clone_strategyAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
template_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant context beyond annotations: it records attribution, mentions a 15% fee share for the template author, and notes cloning is free. These side effects are not covered by annotations, providing transparency for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief (3 sentences) and front-loaded with the main action. Structure is logical but could be slightly improved with bullets for parameter hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, output usage, and side effects, but lacks parameter explanations. Given 0% schema coverage and many siblings, parameter details are needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain any parameters (template_id, wallet_address, caller_id). Users must infer their meaning from context, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool clones a published strategy config to a wallet, returning a config_template for use with strategy create tools. It distinguishes from siblings by specifying the output is a preparatory template, not a direct creation or modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is used before deploying via strategy create tools, but lacks explicit when-not-to-use or alternatives among many strategy siblings. The context is clear enough for typical usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_perp_position
Destructive
Inspect

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 with the same key + same args replays the original result instead of re-closing the position.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNo
caller_idNo
close_pctNo
position_idYes
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
acknowledge_tier_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

compose_strategyA
Read-onlyIdempotent
Inspect

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_social stream may never be the sole entry trigger).

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate a safe, read-only operation. The description adds valuable behavioral context: it does not persist, is free per fee schedule, and returns both a normalized definition and a validation report. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences followed by a bullet list. It front-loads the core purpose and uses a clear, scannable format. Every sentence adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (validating composite definitions with multiple checks) and the existence of an output schema, the description covers the main aspects: purpose, non-persistence, fee implication, and validation rules. It could be more complete by hinting at the definition's structure, but overall it provides sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter `definition` is an object with no schema descriptions (coverage 0%). The description does not elaborate on its expected structure, but it lists validation checks that imply required fields (schema, streams, risk caps). This provides partial compensation but not full parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates a composite definition and distinguishes it from creation or persistence tools. It uses specific verbs ('validate', 'returns') and identifies the resource ('composite definition'). Among siblings like `strategy_composite_create` and `publish_strategy`, its purpose is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: to validate a composite definition before creation or persistence. It lists specific checks (schema, stream existence, rule-tree limits, risk caps, anti-gaming rule) which guide the user on what the tool ensures. It does not explicitly state when not to use, but the validating nature is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crank_dependency_status
Read-onlyIdempotent
Inspect

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 auto-filed Engaij ticket — plus an overall headline. Maintained by the backend dependency response engine; callable from the morning briefing, dispatch, or ad-hoc.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

crank_prompt_health
Read-onlyIdempotent
Inspect

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 dashboard widget. Surfaced in the Monday morning briefing under "Dev Process Health". available=False until the first weekly review runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

create_agent_walletInspect

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 a pending record the Turnkey provisioning ticket fills in. Returns wallet_address, agent_id, status, and the applied_policies.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
caller_idNo
display_nameNo
owner_addressNo
wallet_addressNo
default_policiesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

create_execution_intentA
Destructive
Inspect

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 browser and signs with their own wallet. This tool never signs and never sees a key. amount is in input-token base units. The quote includes the technology service fee. After the user approves, poll get_intent_status and report ONLY the persisted on-chain state (CONFIRMED before any success claim).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
caller_idNo
input_tokenYes
output_tokenYes
slippage_bpsNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses that nothing executes until user approval, the tool never signs or sees keys, and that amount is in base units. It adds context beyond annotations (e.g., destructiveHint=true is about intent creation, not actual token movement).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but slightly lengthy. It front-loads the core purpose and uses paragraphs effectively. Could be more concise but no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description adequately covers the tool's lifecycle, return values, and follow-up steps. Missing details on parameters like idempotency_key and slippage_bps, but overall complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only explains 'amount' (in base units). The other 7 parameters are not described, leaving the user to infer their meaning from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a propose-only execution intent and returns an approval URL. It distinguishes from siblings by emphasizing the non-custodial, unsigned nature and referencing polling via get_intent_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to create a swap proposal without execution) and provides follow-up guidance to poll get_intent_status. However, it does not explicitly list alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_regime
Read-onlyIdempotent
Inspect

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-size fraction (0-1), plus the raw ADX / +DI / -DI / SMA-slope / volume readings for transparency. asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d. A description + suggestion only -- not financial advice, not a trade instruction (DYOR). No wallet, no fee, no on-chain action.

Workflow: INTELLIGENCE step -- pair with get_market_briefing (macro) + get_ml_signal (forecast); feeds strategy choice + direction_mode at backtest + create time. bear + allow_short -> consider a short. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
caller_idNo
timeframeNo1h
lookback_candlesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

discover_agentsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
caller_idNo
capabilityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds ranking by reputation and recency, and states 'free' and 'Read-only', which align with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (two sentences) and front-loaded with purpose. It efficiently conveys key info but could better separate parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given annotations, output schema, and the listing nature, the description covers essential aspects. However, it omits explanation of 'limit' and 'caller_id' parameters, which are not documented in the schema either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only explains the 'capability' parameter with allowed values. It does not mention 'limit' or 'caller_id', leaving their meaning unclear despite defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Find' and resource 'registered agents', clearly stating the tool's purpose. It notes optional filtering by capability, distinguishing it from related tools like discover_strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you need to list agents, optionally filtered by capability. It lists valid capability values and ranking order, but does not explicitly state when not to use it or contrast with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_strategiesA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoclones
limitNo
caller_idNo
strategy_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide safe read-only behavior, and the description adds useful context like 'Crypto-only' and 'free'. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the main purpose, followed by specific parameter details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core functionality, parameter usage, and constraints like 'Crypto-only'. Output schema exists, so return values need no mention. Minor gaps like pagination are acceptable for a straightforward browse tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description crucially adds meaning: strategy_type filters to 16 types, sort enumerates possible values. More detail on limit or caller_id would be beneficial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool browses published strategies, specifies it's read-only and free, and provides specific details about filtering and sorting, which distinguishes it from sibling tools like strategy_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for browsing published strategies in the crypto domain. It gives concrete filter and sort options but lacks explicit when-not or alternative tool guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_agent_wallet
Read-onlyIdempotent
Inspect

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 consent (CRANK_PLUGIN_SPEC.md section 5). Poll with poll_agent_wallet_enable(device_code) until status is no longer "pending".

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
caller_idNo
display_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

equity_corporate_events
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

equity_market_hoursB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds minimal extra behavioral context beyond the status values. It does not disclose rate limits, authentication needs, or other behaviors beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose. Could remove the marketing sentence ('Highlights the structural advantage...') to be more concise, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, description need not explain return values. However, it fails to document parameters or provide context on when to use this tool versus other market-related tools. Adequate for a simple status tool but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not document the meaning or usage of the symbol or caller_id parameters. The description adds no value over the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns NYSE session status and a 24/7-on-Solana availability flag, with specific status values (closed, pre_market, open, after_hours). This distinguishes it from sibling tools like equity_quote or equity_markets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking market hours but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state when not to use it. No comparison to siblings is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

equity_markets
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

equity_positions
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

equity_quote
Read-onlyIdempotent
Inspect

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 ADVISORY, never required -- see trade_equity.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideNobuy
amountYes
symbolYes
caller_idNo
venue_hintNo
slippage_bpsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

flash_loan
Destructive
Inspect

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 unverified mint at your own risk. 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 replays the original result instead of re-issuing the flash loan tx.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
caller_idNo
instructionsYes
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
marginfi_accountYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

fund_wallet
Destructive
Inspect

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 charged on amount_usd notional past the daily free tier (x402 payment_header).

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result (same checkout_url/session_id) instead of creating a second MoonPay session.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoUSDC
caller_idNo
amount_usdYes
pay_in_crankNo
payment_headerNo
payment_methodNocard
wallet_addressYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_agent_profileA
Read-onlyIdempotent
Inspect

Read an agent's published profile + its referral stats (read-only, free).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint, openWorldHint, and destructiveHint. Description adds value with 'free' and explicitly mentions referral stats, which annotations do not. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 10 words, front-loaded with primary action. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and key behavioral traits, but misses parameter details. Output schema exists, so return values are handled, but parameter semantics are weak given low schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and description adds no explanation for parameters (wallet_address, caller_id). The tool name implies wallet_address is the agent identifier, but caller_id is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool reads an agent's published profile and referral stats. The verb 'Read' and specific resources distinguish it from siblings like discover_agents or get_balances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage but no explicit when-to-use or when-not-to-use context. Lacks guidance compared to similar tools and doesn't differentiate from alternatives like discover_agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_venues_status
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_arb_discrepanciesA
Read-onlyIdempotent
Inspect

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 per episode: venue pair, spread, first/last seen, persistence, reference price. Observed data, decision-support only -- ignores fees, slippage, and transfer latency; never an execution instruction. Not financial advice.

Workflow: INTELLIGENCE step -- pair with get_cross_exchange for the current live-ish read on a specific asset.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNo
caller_idNo
window_hoursNo
min_spread_bpsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant context beyond annotations: explains debouncing, filtering logic, episode structure, and limitations (ignores fees, slippage, transfer latency). No contradiction with annotations (readOnlyHint=true, idempotentHint=true, etc.).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet informative: opens with a clear summary, then details filtering and episode contents, ends with workflow guidance. No redundant content; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, description sufficiently explains data structure (episode fields) and context (debouncing, filtering). Provides complete understanding for using this read-only intelligence tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description explains core parameters (min_spread_bps, assets, window_hours) and their roles. The caller_id parameter is not mentioned but it's a common identification field. Overall compensates well for lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'persisted cross-venue discrepancy episodes' and distinguishes from sibling tool get_cross_exchange by noting it is 'Already-debounced' and part of 'INTELLIGENCE step' vs live read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states workflow positioning ('INTELLIGENCE step') and pairing recommendation with get_cross_exchange. Also warns it is 'never an execution instruction' and 'Not financial advice', setting clear boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balances
Read-onlyIdempotent
Inspect

Wallet token balances (SOL + all SPL tokens) with USD valuations.

Workflow: ORIENT step -- the starting read for any flow. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_collective_insightsA
Read-onlyIdempotent
Inspect

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. Each insight carries n (contributing agents), effect_size, a confidence interval, k and epsilon_spent (privacy metadata -- weigh a low-k or high-epsilon insight more cautiously), crowding_index, and staleness (age vs half-life). detail=concise adds a rendered human-readable statement; detail=full adds the raw statement_template/params/signal_keys. Every response is historical collective performance data aggregated across the Crank agent fleet -- descriptive only, never a recommendation or a promise of results.

Workflow: INTELLIGENCE step -- fleet-wide context alongside get_market_briefing / get_consensus before sizing or creating strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
detailNoconcise
caller_idNo
insight_typeNo
strategy_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, etc. The description adds behavioral details: only returns ACTIVE, non-suppressed/non-expired insights; explains fields like k, epsilon_spend, crowding_index; and clarifies it is descriptive, not a recommendation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: starts with purpose, lists filters, describes output fields, then gives workflow context. It is detailed but each sentence adds value. Could be slightly more concise, but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema exists, the description is quite complete. It explains filters, output fields (including privacy metadata and staleness), and workflow. Does not need to detail return values as output schema is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 0%, the description explains the key parameters: asset, strategy_type, insight_type (with list of options), detail (concise/full). This adds meaning beyond the plain schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fleet-wide collective insights, historical performance data (free read)' and specifies filters. It differentiates from siblings by placing it in the 'INTELLIGENCE step' alongside get_market_briefing and get_consensus, clarifying its role before sizing or creating strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'Workflow' section that explicitly states when to use this tool: as an intelligence step before sizing or creating strategies, alongside get_market_briefing/get_consensus. It implies usage context but does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_consensusA
Read-onlyIdempotent
Inspect

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/neutral), and the accuracy-weighted directional score (-1..+1) that blends each source's call by its historical hit-rate (get_source_accuracy). High agreement (>80%) is flagged as a crowded, potentially contrarian condition; low agreement (<30%) as uncertain. This is a PLATINUM-tier feature: covered by a Platinum $CRANK-staker subscription, or pay the per-call x402 fee with payment_header (PAYMENT_REQUIRED otherwise); the billing outcome is in the response billing field. Descriptive signal only, not a recommendation. Not financial advice.

Workflow: INTELLIGENCE step -- pair with get_market_briefing + get_source_accuracy to gauge how crowded a directional read is before sizing.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
caller_idNo
window_hoursNo
payment_headerNo
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits beyond annotations: it is a descriptive signal only (not a recommendation), explains the contrarian condition (high agreement flagged), and details billing behavior (PAYMENT_REQUIRED, billing field in response). This adds significant value given the already helpful annotations (readOnlyHint, idempotentHint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with purpose. It is slightly verbose but each sentence adds value. Minor redundancy could be trimmed, but overall efficient for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema (existing), annotations, and sibling tool context, the description is comprehensive. It explains the output fields, workflow integration, billing, and provides sufficient context for an agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates somewhat: it explains 'asset' and 'window_hours' (including default 24), and mentions 'payment_header' in billing context. However, 'caller_id' and 'wallet_address' are left unexplained, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: providing multi-source consensus and contrarian read for one asset. It specifies the output metrics (consensus_score, source breakdown, accuracy-weighted score) and distinguishes from siblings by focusing on consensus aggregation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (INTELLIGENCE step, pairing with get_market_briefing and get_source_accuracy) and mentions billing requirements. However, it does not explicitly state when not to use it or alternative tools for different contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contrarian_signalsA
Read-onlyIdempotent
Inspect

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 side a contrarian would take) -- and assets where agreement is very low (uncertain). With asset set, returns just that asset's assessment. PLATINUM-tier: covered by a Platinum $CRANK-staker subscription or a verified x402 payment_header (PAYMENT_REQUIRED otherwise); the billing outcome is in billing. Descriptive signal only, not a recommendation. Not financial advice.

Workflow: INTELLIGENCE step -- surface crowded trades to fade or uncertain assets to avoid before committing to a regime/allocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
caller_idNo
window_hoursNo
payment_headerNo
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, non-destructive. Description adds that it's 'Descriptive signal only, not a recommendation' and 'Not financial advice.' Also discloses PLATINUM-tier subscription/payment requirement, though the exact behavior when payment is missing is implied but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with purpose and tier, includes a workflow line. Some redundancy (PLATINUM mentioned twice) and line breaks, but overall efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters (none required) and existing output schema, the description covers primary use case, billing context, and workflow role. Lacks details on the output structure or exact behavior when payment fails, but sufficient for agent selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, so description must compensate. It explains 'window_hours' and 'asset' optionality, and implicitly covers 'payment_header' and 'wallet_address' via billing context, but 'caller_id' is entirely unexplained. Adds moderate meaning beyond schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool scans intelligence signals for crowded (contrarian) and uncertain assets, with specific mention of the PLATINUM tier and billing. Differentiates from sibling signal tools by focusing on contrarian conditions and uncertainty.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly places it in the 'INTELLIGENCE step' workflow, surfacing crowded trades to fade or uncertain assets to avoid before committing to a regime/allocation. Lacks explicit when-not-to-use or alternative tool references, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crank_scoreA
Read-onlyIdempotent
Inspect

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 discount), daily_send_limit (higher social-send cap), priority_access, and the gate tier (0-3). Score accrues from on-platform activity; circular funding between wallets is flagged + penalised. Well-formed zeros for an unscored wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly, idempotent hints. The description adds context about scoring from on-platform activity and circular funding flagging, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured and informative, though slightly lengthy; it front-loads the purpose and provides details without unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description explains return values well, but lacks error case or parameter semantics; adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description fails to explain the caller_id parameter or provide details on wallet_address beyond its name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is for a wallet's Crank Score reputation breakdown, listing specific components and distinguishing it from sibling tools like get_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance compared to alternatives like get_score or get_score_leaderboard; usage is implied by the resource name but not clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cross_exchangeA
Read-onlyIdempotent
Inspect

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, decision-support only -- spreads ignore fees, slippage, and cross-venue/bridge transfer latency; never an execution instruction. Not financial advice.

Workflow: INTELLIGENCE step -- pair with get_arb_discrepancies for the persisted, already-debounced episode history.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
caller_idNo
window_minutesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description adds that data is observed, decision-support only, ignores fees/slippage/latency, and the wrapped-asset premium is only for BTC/ETH. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with summary, details, limitations, and workflow. Every sentence adds value, but could be slightly more concise regarding limitations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output description is comprehensive, but input parameters are not explained despite 0% schema coverage. Workflow context is provided, but parameter documentation gap reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description should explain parameters. It does not describe window_minutes or caller_id, and only implies asset is the query target. Lacks compensation for missing schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a cross-venue snapshot for one asset, listing specific data points and distinguishing it as an intelligence step. It also mentions pairing with get_arb_discrepancies, differentiating from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (INTELLIGENCE step), when not (never an execution instruction), and suggests pairing with get_arb_discrepancies. Provides strong guidance on context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_disclaimers
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
caller_idNo
token_addressNo
asset_classificationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_health_factor
Read-onlyIdempotent
Inspect

Liquidation-risk monitor for a lending position.

Returns health_factor (>1 safe, <1 liquidatable), collateral value, debt value, liquidation threshold. protocol: kamino | marginfi.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
protocolYes
caller_idNo
wallet_addressYes
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_ilo_adoption_statusA
Read-onlyIdempotent
Inspect

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 gate_met (active_users >= 1000), active_users, near_active_users, users_with_any_tx and the pinned transaction definition. A transaction is an EXECUTED trade only -- a recorded swap (broadcast signature required), a perp open, or a user-initiated perp close; reads, quotes, unexecuted intents, paper trades, liquidations and devnet activity never count. cluster=devnet exposes the same metric for pre-launch observability; the gate itself is the mainnet number. Aggregate counts only, no per-wallet data. Informational readiness metric; not a promise of any launch, outcome or timeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
clusterNomainnet
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, open-world, idempotent, non-destructive. The description adds significant behavioral detail: what counts as an active user, what transactions count, aggregate nature, no per-wallet data. It also notes 'free'. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed and front-loaded with the tool's purpose. Every sentence provides value, but it could be slightly more concise. The structure is logical, explaining the metric, decision, and return values.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but indicated), the description explains all return fields (gate_met, active_users, near_active_users, users_with_any_tx, pinned transaction definition) and the active user definition. It covers behavioral constraints (aggregate only, no per-wallet) and usage context. It is complete for an informational readiness metric.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 2 parameters with 0% schema coverage. The description explains the 'cluster' parameter (mainnet vs devnet) and its effect, adding value. It does not describe 'caller_id', but its purpose is often self-explanatory. Overall, the description compensates well for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as checking the ILO adoption gate readiness, specifying the exact metric (active users >= 1000 with at least 5 transactions in 7 days) and what it returns. It distinguishes itself from sibling tools by focusing on this unique readiness metric.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that the tool is for checking ILO readiness on mainnet, with devnet for pre-launch observability. It states it is informational and not a promise. However, it lacks explicit guidance on when not to use it or alternatives, but the context is clear enough for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_indicators
Read-onlyIdempotent
Inspect

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 bands with 0-1 depth scores) from recent OHLCV via the canonical backend/indicators library. asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d; indicators selects a subset (empty = all); lookback candles capped at 500; params overrides per indicator, e.g. {"rsi": {"period": 21}}; include_series=true adds per-bar series (last 200 points). Readings are None while history is warming up. Computed readings only -- not financial advice, not a trade instruction (DYOR). No wallet, no fee, no on-chain action.

Workflow: INTELLIGENCE step -- raw indicator readings underlying detect_regime; pair with get_ml_signal (forecast) + get_signals (persisted cross-source signals). See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
paramsNo
lookbackNo
caller_idNo
timeframeNo1h
indicatorsNo
include_seriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_integrator_earnings
Read-onlyIdempotent
Inspect

Per-action + per-month integrator earnings (onboarding API). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
caller_idNo
integrator_wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_integrator_stats
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
integrator_wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_intent_statusA
Read-onlyIdempotent
Inspect

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 send (may have landed); only CONFIRMED is a verified on-chain success (fail-closed reporting, docs/CRANK_PLUGIN_SPEC.md section 6).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
intent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, and not destructive, which are consistent. The description adds critical behavioral nuance: it only returns server-persisted state, never infers (e.g., UNKNOWN means unresolved send), and explains the fail-closed reporting model. This goes beyond basic annotation info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 4 sentences, front-loading the purpose. It could be more structured by separating the list of states and the behavioral caveats, but overall it is efficient and avoids unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown), the description reasonably explains the return states and their semantics (e.g., UNKNOWN vs CONFIRMED). It provides enough context for an agent to understand the tool's role in the intent lifecycle, though it lacks parameter explanations and could mention typical use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 2 parameters (intent_id required, caller_id optional) with 0% schema description coverage. The description does not explain the parameters' meaning or usage beyond implying intent_id identifies the execution intent. No detail on caller_id or expected formats is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the resource 'persisted lifecycle state of an execution intent', immediately distinguishing it from sibling tools like get_strategy_status or crank_dependency_status. It also lists specific return states, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that the tool reads server-persisted state and interprets UNKNOWN as unresolved and CONFIRMED as verified on-chain success, but it does not explicitly state when to use this tool over alternatives or when not to use it. No sibling comparisons or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leaderboardA
Read-onlyIdempotent
Inspect

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 8).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNosharpe
limitNo
caller_idNo
strategy_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly, idempotent, non-destructive. Description adds useful context: tool is free, crypto-only, no return promises (rule 8), and entries carry on-chain attestation hash. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with the core purpose, followed by scope constraints and data details. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return value details are not required. Description covers scope (crypto-only) and data items (metrics + hash). However, fails to describe three out of four optional parameters, leaving the agent with incomplete understanding. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, meaning description provides no explicit parameter details. Only 'sort' is implied via listing sort metrics. Parameters limit, caller_id, and strategy_type are not mentioned. Description fails to add meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns top published strategies ranked by a verified backtest metric, specifies crypto-only exclusion of equity templates, and mentions the default sort. Distinguishes from siblings like get_score_leaderboard or get_strategy_leaderboard by focusing on verified backtest metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides sort options (sharpe, return, etc.) with default, and describes what each entry contains (backtest metrics + attestation hash). Implicitly suggests when to use (for ranking strategies) but doesn't explicitly differentiate from sibling tools. Lacks explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lending_rates
Read-onlyIdempotent
Inspect

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_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_lst_yields
Read-onlyIdempotent
Inspect

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_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_market_briefingA
Read-onlyIdempotent
Inspect

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 regime, the Fear & Greed reading, and source attribution. assets is an optional list of tickers (e.g. ["BTC","SOL"]); for paid tiers it declares the agent's holdings and focuses the synthesis. detail_level: "free" returns the pre-generated daily Free briefing (metered at $0, quota'd per day); "pro" ($0.25) and "platinum" ($0.50) return real-time Sonnet/Opus synthesis personalised to the wallet's portfolio + active strategies. Paid tiers are covered by an active $CRANK-staker subscription or require a verified x402 payment_header (PAYMENT_REQUIRED otherwise). The billing outcome is in the response billing field. Not financial advice.

Workflow: INTELLIGENCE step (usually first) -- macro/sentiment context that frames detect_regime + the allocation. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNo
caller_idNo
timeframeNo24h
detail_levelNofree
payment_headerNo
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations (readOnlyHint, idempotentHint). It discloses pricing, quota limits, billing outcome in response, reliance on free public sources, and that it is not financial advice. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but somewhat lengthy; however, every sentence adds value. It is well-structured with a clear flow: purpose, details, parameters, billing, workflow context. Could be slightly more concise but remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, 0% schema coverage, output schema exists), the description adequately covers data sources, sentiment components, billing tiers, prerequisites, and workflow placement. It does not detail the output schema but the presence of output schema reduces that need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining the two key parameters: assets (optional list, focuses synthesis for paid tiers) and detail_level (free, pro, platinum with pricing and quality differences). Other parameters like caller_id and wallet_address are mentioned but not detailed, yet their purpose is inferable from context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a crypto market briefing synthesized from free public sources, with specific components like market summary, top movers, sentiment, Fear & Greed, and source attribution. It differentiates itself among siblings by focusing on aggregated market context, distinct from tools like get_market_regime or get_consensus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: as an INTELLIGENCE step framing detect_regime and allocation, and references get_trading_workflow for context. It explains billing tiers and prerequisites for paid tiers (subscription or x402 payment header). However, it does not explicitly state situations where this tool should be avoided in favor of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_regimeA
Read-onlyIdempotent
Inspect

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 only. Not financial advice.

Workflow: INTELLIGENCE step -- market-wide posture check before choosing a strategy type or direction_mode; pair with detect_regime for the asset leg.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
caller_idNo
window_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds value by stating it is a 'free read', 'descriptive observed data only', and 'Not financial advice', which enriches the behavioral understanding beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about six sentences, well-structured with the main purpose first, followed by output details, differentiation from sibling, workflow guidance, and disclaimers. Every sentence adds value, though it is slightly verbose for the parameter gap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (which documents return values), the description provides good workflow context and data classification. However, the complete lack of parameter documentation is a significant gap that reduces completeness, especially since schema coverage is 0%.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning none of the three parameters (limit, caller_id, window_hours) are described in the schema. The description does not explain the meaning, range, or effect of any parameter, leaving the agent without guidance on how to populate them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the market-wide regime from persisted data, specifies the outputs (dominant regime, confidence, distribution, contributing signals), and distinguishes itself from the sibling tool detect_regime by noting it is for market-wide, not per-asset, regime.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly places the tool in the INTELLIGENCE workflow step for market-wide posture check before strategy selection, and suggests pairing with detect_regime for the asset leg. It does not explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ml_signal
Read-onlyIdempotent
Inspect

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], confidence (distance from 0.5), direction (long/short/neutral via buy_threshold/sell_threshold), per-model contributions and top feature importances. asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d; horizon is the forward-return label horizon in candles. On spot, 'short' = exit-to-flat (no native short). Heuristic forecast from price history only -- not financial advice. No wallet, no fee, no on-chain action.

Workflow: INTELLIGENCE step -- a directional forecast that complements detect_regime; low confidence -> cut size or stay flat. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
horizonNo
caller_idNo
timeframeNo1h
buy_thresholdNo
sell_thresholdNo
lookback_candlesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_my_performanceA
Read-onlyIdempotent
Inspect

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 expectations vs the realised 24h move) when you journal expectations. Historical performance data about your own decisions -- descriptive only, not a recommendation.

Workflow: ORIENT step -- read this before sizing or creating strategies.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_byNostrategy_type
caller_idNo
window_hoursNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds significant behavioral context: it explains that data is sourced from journaled non-paper outcomes, includes calibration scores only when expectations are journaled, and uses the phrase 'free read' to imply no cost. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise but includes some redundancy (e.g., 'Your own realised performance, grouped (free read)' could be merged). The three-paragraph structure is clear but might benefit from tighter phrasing. It front-loads the core purpose, which is good, but the second paragraph detailing metrics could be integrated more efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (aggregation, multiple grouping dimensions, calibration score) and the presence of an output schema (not shown but exists), the description covers key functional aspects. It explains what metrics are returned, the grouping mechanism, and the calibration condition. However, it does not clarify whether historical data includes current period limits or pagination behavior, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 4 parameters with 0% description coverage. The description partially compensates by explaining the grouping mechanism (strategy_type, asset, decision_type, hour_of_day) and the time window ('over window_hours'), which covers group_by and window_hours. However, wallet_address (required) and caller_id (default '') are not explained, leaving ambiguity about their purpose and constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs like 'aggregates' and clearly identifies the resource as 'your own realised performance'. It lists the grouping dimensions (strategy_type, asset, decision_type, hour_of_day) and mentions included metrics (win rate, P&L, fee drag, calibration score). This distinguishes it from many sibling tools that focus on other data (e.g., get_leaderboard, get_risk_assessment) or actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Workflow: ORIENT step -- read this before sizing or creating strategies' provides explicit guidance on when to use the tool. The description also notes it is 'descriptive only, not a recommendation', setting expectations for non-actionable insight. However, it does not name alternative tools for specific performance comparisons or filtered queries, leaving some gap in completeness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_onramp_status
Read-onlyIdempotent
Inspect

Check a pending MoonPay purchase by session_id.

Returns status (pending/processing/completed/failed), amount_crypto, and the on-chain tx_signature once settled.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_portfolio_charterA
Read-onlyIdempotent
Inspect

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 between calls (competitors return raw JSON per call and forget everything). has_charter is False when the wallet has not set one yet -- call set_portfolio_charter to create it. Advisory framing only ("objectives"/"parameters", never return targets, hard rules 5-8).

Workflow: ORIENT step 0 -- read this FIRST, before get_balances / portfolio_snapshot, so every downstream decision is framed by it.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, destructiveHint=false. The description adds: 'loaded once per session instead of forgotten between calls' (caching behavior), 'free read', and details about advisory vs hard rules. This enriches transparency beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose with phrases like 'a user-authored document declaring...' but provides structured information. It front-loads the key action and follows with details and workflow, making it effective despite minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description covers all essential context: what the tool returns, when to use, behavioral notes, and relation to sibling tools. No gaps remain for successful invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the overall purpose but does not describe the two parameters ('wallet_address', 'caller_id') explicitly. The wallet_address role is implied, but caller_id is unmentioned. Without parameter descriptions, the agent lacks clarity on input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read the wallet's active portfolio charter' with a specific verb and resource. It distinguishes from sibling tool 'set_portfolio_charter' and explains the charter's role as a CRANK.md-equivalent mandate, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: 'ORIENT step 0 -- read this FIRST, before get_balances / portfolio_snapshot'. Also provides when-not-to-use: 'has_charter is False when the wallet has not set one yet -- call set_portfolio_charter'. This gives clear context for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_questsA
Read-onlyIdempotent
Inspect

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 wallet's progress_value + completion state. Carries the disclaimer.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, which the description complements with specifics: it's a 'FREE read', time-bounded campaigns, and includes progress when wallet_address is given. The description adds behavioral context (e.g., carries disclaimer, what fields each quest has) without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core purpose. It uses two sentences plus a list-like explanation of quest fields, avoiding unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description need not detail return values. It sufficiently explains what each quest contains (metric, target_value, reward_points, active window) and the conditional progress output. The mention of disclaimer adds completeness. For a read-only tool with good annotations, this is fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It describes wallet_address's effect (triggers progress_value + completion state), but does not explain caller_id. This partial coverage adds some meaning but leaves one parameter undocumented, resulting in a mid-range score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'Live Crank Score quests' and optionally a wallet's progress. It specifies the resource (quests) and action (get). It distinguishes from siblings like get_crank_score or get_leaderboard by focusing on quests, a specific type of campaign.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving quests and wallet progress, but lacks explicit guidance on when to use this tool versus alternatives (e.g., get_crank_score). It does mention 'FREE read', suggesting no cost, which is a usage hint. However, without clear comparisons to siblings, the guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quotes
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
caller_idNo
venue_hintNo
input_tokenYes
output_tokenYes
slippage_bpsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_regulatory_updatesA
Read-onlyIdempotent
Inspect

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 custody. Each update carries the issuing agency, title, url, relevance (high/medium/low) + score, matched topics, and a one-line factual summary; results are ranked by relevance then recency. window_hours bounds the lookback (default 168 = 7 days, capped at 720 = 30 days); min_relevance filters by floor (high/medium/low); agency optionally narrows to one body (SEC, CFTC, FinCEN). Relevance is a compliance-triage signal, not legal advice. Not financial advice.

Workflow: INTELLIGENCE / COMPLIANCE step -- check the current regulatory posture around perps, tokenized equities, or agent trading before acting on a strategy.

ParametersJSON Schema
NameRequiredDescriptionDefault
agencyNo
caller_idNo
window_hoursNo
min_relevanceNolow

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds value by detailing the data structure (fields like agency, relevance, summary), ranking logic, limitations ('Not financial advice'), and the scheduled daily scan. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with purpose, then details return data, parameters, and workflow. It is somewhat lengthy but every sentence adds value; no redundancy. Could be slightly more concise but effectively structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description covers input parameters, purpose, workflow, and data semantics. The only gap is the undocumented caller_id parameter; otherwise, it is sufficiently complete for a read-only retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains three of four parameters: window_hours (default 168, cap 720), min_relevance (high/medium/low), and agency (SEC/CFTC/FinCEN). The caller_id parameter is not explained, but overall parameter semantics are well-addressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns recent regulatory statements (SEC/CFTC/FinCEN press releases and rule proposals) relevant to Crank's scope, with specific verbs like 'returns' and details on classification. It distinguishes from siblings like 'get_technology_updates' through focus on regulatory content and workflow step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides explicit workflow context ('Workflow: INTELLIGENCE / COMPLIANCE step') and usage scenarios but does not directly name alternative tools or when not to use. The guidance is clear for its purpose but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_risk_assessment
Read-onlyIdempotent
Inspect

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 position size already capped to the position guard (in both percent-of-equity and USD notional against equity), a per-regime action note, and the full guard set. strategy_type is one of the 16 Crank strategy types; asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d. Advisory only (DYOR) -- not financial advice, not a managed-account recommendation. No wallet, no fee.

Workflow: RISK step -- after backtest_strategy, before execution. The returned suggested_size_usd caps the order in the execute phase; do NOT exceed it. Check asset_classification first (equity -> per-execution confirm). See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
equityNo
caller_idNo
timeframeNo1h
strategy_typeYes
lookback_candlesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_scoreA
Read-onlyIdempotent
Inspect

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 (fee_volume_usd, strategies_published, clones_spawned, referrals_activated, active_days), and its live quests with progress. Points come ONLY from costly actions (anti-farm). disclaimer: score MAY inform a future token distribution -- no fixed conversion ratio, no entitlement.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by detailing the returned fields (total_score, rank, multiplier_bps, metrics, quests) and includes a disclaimer about token distribution. However, it does not mention rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately detailed and front-loaded with the main purpose. Each sentence provides useful information, though it could be slightly more concise. The structure is logical and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple return fields) and the presence of annotations and an output schema (not shown), the description covers all essential aspects: what it returns, the anti-farm scoring source, and the disclaimer. It is complete enough for an agent to understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the schema has no parameter descriptions. The description does not explicitly clarify the purpose of the two parameters (caller_id, wallet_address) beyond their names. With low coverage, the description should compensate but does not, leaving parameter semantics vague.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the user-facing Crank Score including rank, multiplier, metrics, and quests. It distinguishes itself from the sibling tool get_crank_score by calling it the 'campaign-layer view', providing specific verb+resource differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (user-facing score) and hints at distinction from get_crank_score, but does not explicitly state when to use this tool versus alternatives like get_leaderboard or get_quests. No 'when not to use' guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_score_leaderboardA
Read-onlyIdempotent
Inspect

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_participants and the pre-token disclaimer. (Distinct from get_leaderboard, which ranks strategy templates.)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. Description adds that it's a 'FREE read', caps limit at leaderboard_size, and lists return fields. Does not contradict annotations; provides useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences covering purpose, sorting, parameter behavior, return fields, and sibling distinction. No wasted words, front-loaded with key intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While annotations and output schema are present, the description covers ranking, limit cap, and return structure. Could mention default limit or pagination, but sufficient for a read-only leaderboard.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description explains the 'limit' parameter's behavior (capped at leaderboard_size) and lists return entries. The 'caller_id' parameter is not elaborated, but defaults are present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it's a 'Top-N Crank Score leaderboard' ranked by total_score, with a specific identifier. Distinct from sibling get_leaderboard, which ranks strategy templates, as explicitly noted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly distinguishes from get_leaderboard, stating its ranking scope. Also indicates it's a 'FREE read', guiding agents on when to use without risk.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signal_effectivenessA
Read-onlyIdempotent
Inspect

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 count n, k, crowding_index, and staleness. Historical collective performance data aggregated across the fleet -- descriptive only, never a recommendation or a promise of results.

Workflow: INTELLIGENCE step -- weigh a signal by how the FLEET's actions on it have historically resolved, alongside your own get_source_accuracy / get_my_performance track record.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNo30d
caller_idNo
signal_typeNo
source_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds significant value by specifying that the tool is a 'free read', returns only descriptive historical data, and is never a recommendation or promise of results, reinforcing safety and non-mutating nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose statement, filter list, output details, and workflow note. It is slightly verbose but efficiently conveys key information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description adds crucial workflow context and distinguishes from sibling tools. However, the unexplained caller_id parameter and lack of full parameter details prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains three of four parameters (source_type with examples, signal_type, window with options) but omits caller_id entirely. Provides partial but incomplete semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns fleet action-conditioned signal effectiveness metrics, distinguishing it from personal performance tools like get_source_accuracy and get_my_performance. It explicitly mentions 'historical collective performance data' and 'descriptive only, never a recommendation'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit filters and workflow context, suggesting use as an 'INTELLIGENCE step' alongside personal track records. It does not explicitly state when not to use, but the context is clear and distinguishes from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signalsA
Read-onlyIdempotent
Inspect

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 token symbol/market or its stable ref (mint / market address); signal_type / tier (a|b|c) / risk_level (none..critical) / min_score narrow the feed. Unknown filter values are dropped, not errored. Descriptive observed data only -- never a trade instruction. Not financial advice.

Workflow: INTELLIGENCE step -- pair with get_market_briefing (macro) and get_token_risk_assessment (per-token safety roll-up) before sizing.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNo
limitNo
subjectNo
caller_idNo
min_scoreNo
risk_levelNo
signal_typeNo
include_expiredNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description adds value by noting that 'unknown filter values are dropped, not errored' and that the data is 'descriptive observed data only.' No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured in three paragraphs: main purpose, parameter details, and workflow integration. It is front-loaded with the core function. The list of signal types is somewhat verbose but still efficient. No unnecessary sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (so return values are covered externally) and 8 parameters, the description provides sufficient context for an AI agent to understand the tool's role, filtering behavior, and how to integrate it with siblings. It could mention the default limit or the purpose of caller_id, but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining key filtering parameters: subject, signal_type, tier, risk_level, min_score. It also describes the behavior for unknown values. However, it does not explain some parameters (limit, caller_id, include_expired) beyond their names, and the schema provides no descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a 'filtered, most-recent-first feed of structured market signals' and lists the categories of signals (squeeze, flow, technical, etc.). It distinguishes itself from sibling tools by naming specific complementary tools (get_market_briefing, get_token_risk_assessment).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this as an 'INTELLIGENCE step' and pairs it with other tools for macro and per-token analysis. It clarifies that it is 'not a trade instruction' and 'not financial advice,' implying a read-only analytical use. However, it lacks an explicit statement of when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_social_sendsB
Read-onlyIdempotent
Inspect

A wallet's social token sends (newest first; no claim-code secrets).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds that results are newest first and claim-code secrets are excluded, but this is minimal extra behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every part (resource, ordering, exclusion) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While an output schema exists, the description lacks parameter explanations and usage guidance, making it incomplete for a tool with two parameters (one required). The simple nature of the operation partially offsets this, but gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning to the two parameters (caller_id, wallet_address). The wallet_address parameter is required, but its significance is not explained. In low-coverage scenarios, the description must compensate, which it fails to do.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('social token sends') and action ('get'), with ordering ('newest first') and exclusion ('no claim-code secrets'). This distinguishes it from sibling tools like send_token_social or bulk_send_social.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context (newest first, no secrets) but no explicit guidance on when to use this tool versus alternatives. No when-not or alternative tool mentions, leaving the agent to infer usage from name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_source_accuracyA
Read-onlyIdempotent
Inspect

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. Each source carries a windows map over rolling 7d/30d/90d periods, each with total resolved calls, correct/incorrect counts, and accuracy_pct; sources with no resolved calls yet are omitted, and results are ranked by longest-window accuracy. windows optionally narrows the periods (subset of [7,30,90]); source_type optionally filters by source kind (youtube, rss, api, on_chain). Accuracy = the directional call vs the realised Birdeye price over the prediction window. Past accuracy is not a guarantee. Not financial advice.

Workflow: INTELLIGENCE step -- pair with get_market_briefing to discount or trust a signal by its source's track record before sizing a position.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowsNo
caller_idNo
source_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations (readOnlyHint, idempotentHint, destructiveHint=false) by detailing output structure, ranking logic, omission of sources with no resolved calls, and the accuracy calculation formula. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loading the purpose, then detailing output, parameters, accuracy, caveats, and workflow. It is slightly verbose but every sentence adds value. A bit more conciseness would elevate it to a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides comprehensive context: output structure, parameter behavior, accuracy definition, caveats, and workflow integration. The caller_id parameter is omitted, but overall completeness is high given the presence of an output schema and detailed annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description explains two of three parameters: 'windows optionally narrows the periods (subset of [7,30,90])' and 'source_type optionally filters by source kind (youtube, rss, api, on_chain).' The caller_id parameter is not explained, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Historical directional hit-rate of each intelligence source (free read).' It specifies what is returned (per-source accuracy stats), lists the sources, and differentiates from sibling tools like get_signals or get_source_weights by focusing on historical accuracy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow guidance: 'Workflow: INTELLIGENCE step -- pair with get_market_briefing to discount or trust a signal...' and includes a caveat that past accuracy is not a guarantee. It lacks explicit when-not-to-use instructions but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_source_weightsA
Read-onlyIdempotent
Inspect

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-anonymous insights, and the combined weighted value the composite effectiveness_weighted transform consumes. Historical grading statistics only -- descriptive, never advice. Not financial advice.

Workflow: COMPOSE step -- read alongside list_signal_catalog to pick streams with a real graded track record before authoring a definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds valuable behavioral context: 'free read' (no cost or permission issue), 'historical grading statistics only -- descriptive, never advice', and the anti-gaming cold start mechanism for social sources. These details go beyond what annotations provide, though annotations already cover the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured into three concise paragraphs: data content, clarification of descriptive nature, and workflow integration. It is mostly efficient, though the repetition of 'descriptive, never advice' and 'Not financial advice' could be merged. Overall, it is well-organized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, behavioral traits, and workflow context. However, it does not explain the single parameter, which is a gap. Since an output schema exists, return values are not needed, but the incomplete parameter explanation reduces completeness. Given the tool is a simple read lookup, it is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there is one parameter 'caller_id' with a default. The description does not explain what this parameter does or how to use it. Although the parameter might be optional, the agent lacks guidance on its purpose, especially when to override the default. The description focuses entirely on the output data, ignoring the input parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a source-effectiveness weight table with specific fields like graded evaluation counts, smoothed weight, and a composite value. It explicitly distinguishes itself from sibling tools by mentioning the workflow alongside 'list_signal_catalog' and implying it is for 'pick streams with a real graded track record'. The verb 'get' and resource 'source weights' is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow context: 'COMPOSE step -- read alongside list_signal_catalog to pick streams... before authoring a definition'. This tells the agent when to use this tool (during composition, before definition authoring). It does not explicitly list alternatives or when not to use, but the workflow guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_strategy_leaderboardA
Read-onlyIdempotent
Inspect

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 cohorts (the k-anonymity granular floor) is dropped before it ever reaches this response. Historical collective performance data -- descriptive only, never a recommendation or a promise of results.

Workflow: INTELLIGENCE step -- compare a strategy_type's own parameter choices against fleet-wide observed outcomes before adjusting via suggest_parameter_adjustment / the strategy tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNo30d
caller_idNo
strategy_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds crucial behavioral context: anonymization, k-anonymity floor of 25, no wallet/cohort identification, and that data is descriptive only (not a recommendation or promise). This significantly enhances transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-line summary, then key details, then workflow. It is slightly longer than minimal, but every sentence adds value. It could be trimmed slightly but remains efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (and thus return values are documented), the description covers purpose, usage, behavioral constraints, and workflow thoroughly. There are no obvious gaps for an intelligence-focused tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description must compensate. It mentions 'window (24h|7d|30d|90d|all)' and implicitly covers 'strategy_type' by referring to it in the workflow. However, 'caller_id' is not explained. The description adds partial meaning beyond the schema but is not comprehensive for all three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an anonymized strategy-parameter leaderboard that ranks collective insights by effect_size over various windows. It explicitly distinguishes from siblings by positioning it as an intelligence step before adjusting strategies, and it details what the tool does and does not do (never identifies wallets, drops small buckets).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow guidance: 'INTELLIGENCE step -- compare a strategy_type's own parameter choices against fleet-wide observed outcomes before adjusting via suggest_parameter_adjustment / the strategy tools.' It also specifies that results are anonymized and only descriptive, not recommendations, and that buckets with fewer than 25 contributors are dropped. This gives clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_strategy_suggestionsA
Read-onlyIdempotent
Inspect

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 never executes anything -- act on a suggestion by creating the strategy through the normal strategy tools (your wallet policy and the engine's risk / conflict / guardrail gates still apply), or approve it in the app. status filters proposed|approved|dismissed|executed|expired|all. Informational descriptions of observed data only. Not financial advice.

Workflow: INTELLIGENCE -> DECIDE step -- review suggestions, then pair with backtest_strategy + get_risk_assessment before any create call.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
limitNo
statusNoproposed
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true. Description adds value by detailing aggregation frequency (hourly), data sources (accuracy-weighted consensus), and stating it never executes actions. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with key purpose and usage. Workflow and status details are clear. Slightly verbose but well structured for the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool complexity is moderate; has output schema, so return values are covered. Description explains workflow and data context. Missing a bit on parameter details, but overall adequate given sibling differentiation and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions in schema). Description only explains one parameter: 'status' with allowed values. Other parameters (asset, limit, caller_id) are undocumented. With low schema coverage, description should compensate more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'signal-to-action suggestions from the synthesis engine'. Distinguishes from siblings by emphasizing read-only nature and specific data sources (accuracy-weighted consensus, Fear & Greed context). No confusion with execute tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it never executes anything and suggests workflow: review suggestions, pair with backtest_strategy + get_risk_assessment before create. Mentions PROPOSE flow and using strategy tools. Lacks explicit 'when not to use' but provides sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_dashboard
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_support_ticket
Read-onlyIdempotent
Inspect

Full support-ticket detail with the conversation thread. Read-only.

ticket_id: numeric id or human ticket number (e.g. CRK-AB2K9P).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
ticket_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_technology_updatesA
Read-onlyIdempotent
Inspect

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 transcript ingested), LLM-classified for relevance to both Crank (Solana trading infra + DeFi frontend) and Engaij (the parent automation platform). Each update carries category (sdk_release / api_change / competitor / regulatory / research / tooling), relevance_to_crank and relevance_to_engaij (high/medium/low/none), a concrete application_recommendation (what to do about it), title, url, and a one-line summary; results are ranked by relevance then recency. window_hours bounds the lookback (default 168 = 7 days, capped at 720 = 30 days); min_relevance filters by floor (high/medium/low); category optionally narrows to one kind. A triage signal, not advice. Not financial advice.

Workflow: INTELLIGENCE step -- scan for SDK / API releases, competitor moves, or tooling worth adopting before planning integration or strategy work.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
caller_idNo
window_hoursNo
min_relevanceNomedium

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds rich context: data sources, classification categories, output fields, and 'triage signal, not advice'. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but slightly lengthy. It is well-structured with a summary, details, and parameter explanations. Each sentence adds value, but could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple feeds, classifications, output fields) and the presence of an output schema, the description is impressively complete. It covers data sources, output fields, and workflow context thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage, so description carries full burden. It explains window_hours (default 168, cap 720), min_relevance (high/medium/low), and category (optional). However, caller_id is not described, leaving a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns technology developments relevant to Crank and Engaij, listing specific feeds and classification. It distinguishes itself from sibling tools like get_regulatory_updates by focusing on tech/tooling updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit workflow guidance ('INTELLIGENCE step -- scan for SDK / API releases, competitor moves, or tooling worth adopting before planning integration or strategy work'), but does not explicitly mention when not to use it or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_classificationA
Read-onlyIdempotent
Inspect

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 match), market_data_quality (live/stale/none) -- plus the derived composite risk (low/medium/high/blocked) and last_verified_at. FAIL-SAFE: a registered but unscored token, an inactive token, or an unregistered token reports tradeable=false. trade_equity enforces this same composite risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
mint_or_symbolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds detailed return fields and fail-safe logic (tradeable=false for unscored/inactive tokens), which goes beyond annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with the primary purpose first. The second sentence is dense but informative. No wasted words, though could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description explains the key return dimensions and fail-safe behavior. It is complete for a classification tool with good annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. The description clarifies the required param 'mint_or_symbol' by stating it accepts a mint or symbol, but does not explain 'caller_id'. Only partial compensation for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides standardized tokenized-stock classification for a mint or symbol, listing specific dimensions returned and composite risk. This distinguishes it from siblings like token_info and verify_token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it's read-only and describes fail-safe behavior, giving context on when to use. However, it doesn't explicitly compare to alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_risk_assessmentA
Read-onlyIdempotent
Inspect

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 replace -- get_risk_assessment (regime + position-size guards for deploying a strategy). Descriptive observed data only. Not financial advice.

Workflow: INTELLIGENCE / RISK step -- run before quoting or sizing an unfamiliar token; a critical safety signal is a hard skip condition.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
subjectYes
caller_idNo
window_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the agent knows it's a safe, read-only, idempotent operation. The description adds behavioral context beyond annotations: it describes the roll-up logic (worst risk level, 0..1 score, per-level breakdown, contributing signals worst-first), the window of consideration (non-expired signals), and that it is 'descriptive observed data only' and 'Not financial advice'. This adds value by explaining how the tool processes data, though annotations already cover the safety profile, so score is high but not maximum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three short paragraphs that front-load the main purpose and key behavior. The first sentence immediately states the core functionality. The structure is logical: purpose, details, workflow guidance. Every sentence provides value without redundancy. However, it could be slightly more structured (e.g., explicit parameter descriptions), but overall it is efficient and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, a sibling tool, and an output schema (which exists), the description covers the main contextual needs: purpose, when to use, relationship to sibling, and the roll-up logic. It does not explain the output structure (though output schema exists, so that burden is lower) or provide details on each parameter. The workflow guidance is strong. For an agent deciding whether and when to invoke this tool, the description is sufficient, but for parameter usage it relies on the schema. Overall, it is complete enough for selection but not for full parameter understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description does not individually explain parameters. The description mentions 'subject (symbol or mint)' implicitly in the first sentence, but does not describe limit, caller_id, or window_hours beyond their defaults. For a tool with 4 parameters, the description provides minimal semantic value beyond what the schema gives (names and types). The agent would need to infer the purpose of parameters, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Per-token risk roll-up over recently observed safety signals'. It specifies the verb (roll-up/get), resource (per-token risk), and distinguishes itself from the sibling 'get_risk_assessment' by contrasting that this is descriptive observed data versus the other's regime+position-size guards. The phrase 'Complements -- does not replace' further clarifies the relationship. The purpose is specific, verb-driven, and differentiates from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Workflow: INTELLIGENCE / RISK step -- run before quoting or sizing an unfamiliar token; a critical safety signal is a hard skip condition.' It also states that this tool complements 'get_risk_assessment', telling the agent when to use this versus the alternative. This provides clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trading_workflowA
Read-onlyIdempotent
Inspect

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) to call, their purpose, key inputs, how to use the output downstream, and the decision points that branch the flow -- so an agent that discovered Crank via tools/list can sequence the ~70 tools instead of guessing. Advisory only (DYOR); only execute-phase tools are value-bearing.

wallet_address (optional, PUBLIC key only -- non-custodial): when given, appends human_activity -- count + most-recent manual override on this shared account in the last 72h (decision_type, asset, rationale summary, timestamp) plus an instruction to reconcile with it before acting. Human and agents act on ONE account: every human action is journaled (see journal_query source="human") so it is never invisible to you. Absent/clean ({"count": 0}) when there is no override.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds behavioral context such as returning an ordered workflow, the advisory nature, and the effect of providing wallet_address (appends human_activity). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured and front-loaded with the core purpose. Every sentence adds value; however, some parts could be more concise. Still, it earns a high score for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a workflow map, the description fully explains what it returns (ordered steps with tool names, purpose, inputs, output usage, decision points), optional parameter behavior, and its advisory role. Output schema exists but description is self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description carries full burden. It explains caller_id (implicitly) and wallet_address in detail: optional, public key, non-custodial, and what it appends (human_activity with count, recent overrides, and instruction to reconcile). This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a map of the end-to-end trading flow, distinguishing it from functional tools by emphasizing it is a sequencing guide. It explicitly says 'read this first' and describes the workflow steps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'read this first', use to sequence ~70 tools if discovered via tools/list, advisory only, and explains when to use the wallet_address parameter. It also notes that execute-phase tools are value-bearing, implying when not to rely on this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transaction_history
Read-onlyIdempotent
Inspect

Recent transactions for a wallet, parsed + human-readable (limit 1-100).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_usage_reportA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo30d
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate safe read-only operation. Description adds context: scope (agent's own), data fields, and period options, enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, very concise with no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Good coverage for a report tool, mentioning return fields and period options. Lacks description of wallet_address and caller_id parameters, but output schema exists so return values are partially covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description should compensate. Only the 'period' parameter is explained with allowed values and default; 'wallet_address' and 'caller_id' are not described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it's an agent's own premium-feature spend report, specifying the data returned (per-feature calls, spend_usd, cost_usd plus totals). Distinguishes from siblings by being a usage report among many get_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage as a read-only report for premium feature spend, but does not explicitly guide when to use vs. other get_* tools or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_venue_health
Read-onlyIdempotent
Inspect

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", "jupiter", "pacifica". Use BEFORE routing capital to a venue.

Workflow: RISK step (venue-safety gate) -- run before any perps/lending leg; degraded/down reroutes or blocks the order. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueYes
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_venue_risk_score
Read-onlyIdempotent
Inspect

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 is auditable). Factual assessment, not financial advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueYes
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

get_venue_status
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

go_live_status
Read-onlyIdempotent
Inspect

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, both technology-service-fee rails (x402 + Jupiter swap fee), MoonPay environment, and multi-venue perps posture -- read fresh from config on every call (an admin can flip an env var and the very next call reflects it, no redeploy needed). stages is an ordered S1-S6 readout of the go-live runbook derived purely from that posture, each {stage, label, satisfied, blocking} -- the primary verification instrument for every runbook stage (verify-runtime-behaviour-not-config).

FREE read, never gated (never in x402 PAID_TOOLS): booleans/counts/hosts only, no secret ever leaves this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

journal_appendA
Idempotent
Inspect

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 on-chain-verified fills and marks prices at 1h/24h/7d/30d horizons. idempotency_key makes replays safe (offline queues / batch agents). Link evidence via signal_ids / suggestion_id / strategy_id (your own strategies only). Autonomous strategy executions are journaled for you automatically -- use this to add the agent-authored layer on top.

Workflow: DECIDE step -- journal before (or as) you act; query it back with journal_query / get_my_performance.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
caller_idNo
rationaleYes
session_idNo
signal_idsNo
strategy_idNo
expectationsNo
decision_typeYes
suggestion_idNo
wallet_addressYes
client_platformNo
idempotency_keyNo
intended_actionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true and destructiveHint=false. The description confirms idempotency via 'idempotency_key makes replays safe' and adds context about data privacy ('only you can read back') and attribution of P&L. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single well-organized paragraph that covers purpose, durability, idempotency, linking, and workflow. It could be slightly more structured with bullets, but it's efficient and front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (13 params, output schema exists), the description covers privacy, linking, idempotency, and workflow. It doesn't specify return structure, but output schema handles that. Adequately complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description explains key parameters: rationale, intended_action, expectations (with example), idempotency_key, signal_ids, suggestion_id, strategy_id. It lacks explicit mention of wallet_address, decision_type, and optional fields like asset, but the schema provides basic info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Record a decision in your private, wallet-scoped journal' with a specific verb and resource. It distinguishes from siblings like journal_query and get_my_performance, and provides context on the tool's role in the decision workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly outlines when to use the tool ('DECIDE step -- journal before or as you act') and notes that autonomous executions are auto-journaled, so this tool is for the agent-authored layer. It also directs to alternatives for querying.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

journal_queryA
Read-onlyIdempotent
Inspect

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 (agent|system|human -- pass source="human" to see only a manual override on this shared account: human and agents act on ONE account, and every human action is journaled so agents can see and reconcile with it). Every returned row carries its source. detail=concise returns id/type/timestamp/pnl rows (token-budget friendly); detail=full adds bodies, evidence refs, and full outcome marks.

Workflow: ORIENT step -- recall what you decided (and what a human may have overridden) before deciding again.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNo
limitNo
detailNoconcise
sourceNo
caller_idNo
outcome_signNo
window_hoursNo
decision_typeNo
strategy_typeNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral details: results are sorted most recent first, wallet-scoped, and every row carries its source. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and front-loaded main purpose. It is slightly verbose but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description appropriately explains the return row structure for both detail modes. It covers the key parameters and provides workflow guidance, making it fully adequate for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the tool description explains the meaning and behavior of most parameters (window_hours, decision_type, strategy_type, asset, outcome_sign, source, detail) including the distinction between concise and full detail modes. It compensates well for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read your own decision journal, most recent first', providing a specific verb and resource. It distinguishes itself from the sibling 'journal_append' by focusing on read-only access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains wallet scoping and available filters, and advises using it during the ORIENT step to recall decisions before making new ones. It does not explicitly mention when not to use it or list alternative tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jupiter_swap
Destructive
Inspect

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.75% technology service fee when a referral fee account is configured -- collected ON-CHAIN via Jupiter's platformFeeBps (MB#13601), deducted from swap output. Swaps are NOT additionally gated by x402 (ENG-1521ec28: that would double-charge the same fee); payment_header/pay_in_crank are accepted for API symmetry with other tools but are no-ops here since jupiter_swap is not in x402 PAID_TOOLS.

SECURITY: the output_token is run through multi-layer authenticity verification before any tx is built; an unverified/suspicious/fake token is blocked (UNVERIFIED_TOKEN). Set allow_unverified=true to trade an unverified token at your own risk (hard scam signals are never overridable).

venue_hint (ENG-fc290438/ENG-00ebde90, MB#18215) is ADVISORY, never required -- spot routes via Jupiter aggregation (the only spot venue today); an unknown hint raises, omitting it is unchanged from before.

Workflow: EXECUTE step -- deploy the directional/allocation leg after the risk phase capped the size. Non-custodial. Get a price first with get_quotes. See get_trading_workflow.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying the SAME call (build or broadcast) with the same key + same args replays the original result instead of re-executing -- guards against a timeout-then-retry double-swap. Reuse the SAME key across the build call and its signed_transaction broadcast retry (they dedupe independently); a NEW key means a genuinely new swap.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
caller_idNo
venue_hintNo
input_tokenYes
output_tokenYes
pay_in_crankNo
slippage_bpsNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
signed_transactionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

kill_wallet
Destructive
Inspect

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

lend_borrow
Destructive
Inspect

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 first; set allow_unverified=true to borrow an unverified token at your own risk.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-borrowing.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
marketNo
protocolYes
caller_idNo
borrow_tokenYes
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
collateral_tokenYes
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

lend_deposit
Destructive
Inspect

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_header is required. The deposited token is authenticity-verified first; set allow_unverified=true to supply an unverified token at own risk.

Workflow: EXECUTE step (yield leg) -- supply idle stables/tokens after comparing get_lending_rates; monitor with get_health_factor. See get_trading_workflow.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-depositing.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
marketNo
protocolYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

lend_repay
Destructive
Inspect

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 replays the original result instead of re-repaying.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
marketNo
protocolYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

leverage_close
Destructive
Inspect

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 args replays the original result instead of re-unwinding the position.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
caller_idNo
position_idYes
pay_in_crankNo
slippage_bpsNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

leverage_long
Destructive
Inspect

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_unverified=true to lever an unverified mint at your own risk. 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 replays the original result instead of re-opening the leveraged position.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
marketNo
protocolNokamino
caller_idNo
pay_in_crankNo
slippage_bpsNo
stable_tokenNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
target_leverageYes
allow_unverifiedNo
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

liquid_stake
Destructive
Inspect

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_crank for the $CRANK discount).

Workflow: EXECUTE step (yield leg) -- stake the idle slice after comparing get_lst_yields. Non-custodial. Monitor via portfolio_snapshot. See get_trading_workflow.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-staking.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
protocolYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

list_session_signers
Read-onlyIdempotent
Inspect

List all delegated session signers (active + revoked) for a wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

list_signal_catalogA
Read-onlyIdempotent
Inspect

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), coverage window (earliest/latest persisted signal -- the honest backtest window), effectiveness stats (graded evaluation count + correct rate) and a gameability class (social streams rank high -- they carry anti-gaming caps). Descriptive historical data only. Not financial advice.

Workflow: COMPOSE step -- enumerate streams before authoring a composite strategy definition; pair with get_signals to inspect a stream's feed.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
include_inactiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context about the data being historical, descriptive, and not financial advice, along with details on coverage windows and gameability classes. This supplements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, starting with the primary purpose, then detailing included data, and ending with workflow. While slightly lengthy, every sentence adds value and is front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering safety, and the description providing extensive context on data content and workflow, the tool is well-documented. However, the omission of parameter descriptions leaves a minor gap in completeness for a fully self-contained description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the two parameters (caller_id, include_inactive) at all. With 0% schema description coverage, the description carries the burden to explain parameters, but it fails to add any meaning beyond the basic schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Catalog of every available signal stream' and elaborates on the types and attributes included. It distinguishes this tool from get_signals by mentioning it as a COMPOSE step, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the workflow: 'COMPOSE step -- enumerate streams before authoring a composite strategy definition', and pairs it with get_signals for feed inspection. It also notes 'free read', providing clear when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_support_tickets
Read-onlyIdempotent
Inspect

List/filter Crank support tickets (newest first). Read-only.

Filters (all optional): status (open|in_progress|waiting_on_user|resolved| closed), priority (low|normal|high|urgent), category (billing|technical| feature_request|general), search (matches ticket number/subject/requester email+name/wallet). Returns {count, tickets[]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo
statusNo
categoryNo
priorityNo
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

lst_swap
Destructive
Inspect

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 authenticity-verified first; set allow_unverified=true to swap into an unverified LST at your own risk.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-swapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
to_lstYes
from_lstYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

note_createInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
caller_idNo
ticket_idYes
sender_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

offramp_to_fiat
Destructive
Inspect

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 (ENG-ac7961aa, optional): a client-generated UUID. Retrying with the same key + same args replays the original result (same offramp_id) instead of creating a second MoonPay sell order.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
caller_idNo
destinationYes
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_close
Destructive
Inspect

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 client-generated UUID. Retrying with the same key + same args replays the original result instead of re-closing the position.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
caller_idNo
close_pctNo
position_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_funding_rates
Read-onlyIdempotent
Inspect

Current funding for a perp market (rate, period, last funding timestamp).

market e.g. SOL-PERP. period is informational (1h/8h/24h).

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
periodNo1h
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_funding_rates_all
Read-onlyIdempotent
Inspect

Normalized funding/borrow rates across venues (venue=None aggregates).

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNo
marketNo
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_markets
Read-onlyIdempotent
Inspect

Available Drift perp markets with price, open interest, funding, max leverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_markets_all
Read-onlyIdempotent
Inspect

Perp markets across venues (venue=None aggregates all routable venues).

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNo
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_modify
Destructive
Inspect

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_header is required.

idempotency_key (ENG-ac7961aa, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-modifying the order.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_slNo
new_tpNo
order_idYes
caller_idNo
new_leverageNo
pay_in_crankNo
add_collateralNo
payment_headerNo
wallet_addressYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_open_long
Destructive
Inspect

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 them as trigger orders after the position opens. The fee is charged on size_usd notional past the daily free tier (x402 payment_header).

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-opening the position.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
leverageYes
size_usdYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
stop_loss_priceNo
allow_unverifiedNo
take_profit_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_open_short
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes
leverageYes
size_usdYes
caller_idNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
stop_loss_priceNo
allow_unverifiedNo
take_profit_priceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_positions
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

perp_positions_all
Read-onlyIdempotent
Inspect

Open perp positions for a wallet. venue=None aggregates across venues.

Each position carries its venue + custody_tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNo
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

place_perp_order
Destructive
Inspect

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 (Tier A) or a signing payload (Tier B) for your wallet to sign + broadcast, plus venue_name / custody_tier / settlement_token. Tier B (venue-custodied) venues require acknowledge_tier_b=true after reviewing custody_disclosure. Fee charged on size_usd notional past the daily free tier (x402).

Workflow: EXECUTE step (leveraged directional leg) -- after get_venue_health / get_venue_risk_score clear the venue and get_risk_assessment caps the size. Monitor via perp_positions. See get_trading_workflow.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-opening the order.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
venueNo
marketYes
leverageYes
size_usdYes
caller_idNo
order_typeNomarket
limit_priceNo
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
stop_loss_priceNo
take_profit_priceNo
acknowledge_tier_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

poll_agent_wallet_enable
Read-onlyIdempotent
Inspect

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 server -- never the intended one.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
device_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

poll_wallet_policy_loosening
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
device_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

portfolio_snapshot
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

propose_allocationA
Read-onlyIdempotent
Inspect

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-shaped plan (conservative | balanced | aggressive). Each directional entry names the exact backtest_strategy args to validate it BEFORE deploying, plus the follow-up tool that would act on it. Descriptive analytics only -- never advice, never a promise of results; nothing is executed.

Workflow: INTELLIGENCE/ANALYSIS step -- call after get_market_briefing and before backtest_strategy / get_risk_assessment / strategy_*_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNo
intentNobalanced
caller_idNo
timeframeNo1h
wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description reinforces this by stating 'Descriptive analytics only -- never advice, never a promise of results; nothing is executed.' This aligns with annotations and adds clarity about the tool's nature. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear lead sentence followed by details and a workflow note. It is somewhat verbose but every sentence adds value. Could be shortened slightly, but the structure is logical and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the complexity (multiple data sources, ranking, intent shaping), the description inadequately documents parameters. With 5 parameters and 0% schema coverage, the description should at least list and briefly explain each parameter. The output schema exists, so return values are covered. However, the parameter gap makes the tool less complete for agents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 5 parameters, all optional with defaults. The description only lightly touches on 'assets' (implied) and 'intent' (mentioned as conservative|balanced|aggressive). It does not explain caller_id, timeframe, or wallet_address. For a tool with zero parameter documentation in the schema, the description should provide more detail to guide parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a 'Ranked allocation plan' that composes multiple signals (lending APYs, staking yields, market regime, ML signal) into an intent-shaped plan (conservative | balanced | aggressive). It distinguishes itself from siblings by specifying its workflow position: after get_market_briefing and before backtest_strategy/risk assessment/strategy creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'Workflow: INTELLIGENCE/ANALYSIS step -- call after get_market_briefing and before backtest_strategy / get_risk_assessment / strategy_*_create.' It also notes it is a 'free read' and descriptive analytics only, implying no side effects. However, it does not explicitly list when not to use or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_strategyAInspect

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 backtest (on-chain attestation hash + leaderboard ranking). Equity (tokenized-security) strategies are excluded (MB#13761). Read/control-plane, free.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
anonymousNo
caller_idNo
descriptionNo
strategy_typeYes
backtest_run_idNo
config_templateYes
performance_summaryNo
author_wallet_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds important behavioral details beyond annotations: no return promises stored (hard rule 8), equity strategies excluded, and clarifies it's a free control-plane operation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly concise, each sentence adds unique value. Front-loaded with purpose, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description covers main behavioral aspects and constraints. Could detail more parameters, but overall complete enough for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description adds meaning for config_template, performance_summary, backtest_run_id, and anonymous. Not all 9 parameters are explained, but key ones are covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Publish a cloneable strategy config to the marketplace (the flywheel)' which is a specific verb and resource. Distinguishes from sibling tools like clone_strategy and compose_strategy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context like 'Read/control-plane, free' and explains when to publish (marketplace), but does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_agentBInspect

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 you via the A2A Agent Card + Solana Agent Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
contactNo
versionNo1.0.0
caller_idNo
descriptionNo
a2a_card_urlNo
capabilitiesNo
display_nameNo
mcp_endpointNo
wallet_addressYes
supported_protocolsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly claims 'Idempotent on wallet_address,' but the annotation declares idempotentHint: false. This direct contradiction reduces trust. Other traits like non-custodial and public key are noted but cannot overcome the inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with core purpose and uses minimal lines. It includes specific examples without redundancy, though the mention of idempotency could be omitted given the contradiction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and 0% schema coverage, the description provides insufficient guidance on most parameters, does not describe error conditions, permissions, or output details, leaving significant gaps for a registration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. The description adds meaning for 'capabilities' (allowed values) and 'supported_protocols' (examples), and clarifies 'wallet_address.' However, 7 of 10 parameters remain undocumented, so value is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Register/refresh' and the resource 'agent's discovery profile in the Crank registry.' Among siblings like 'discover_agents' and 'get_agent_profile,' this tool's specific role in registration is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for making an agent discoverable via A2A Agent Card. However, it does not explicitly state when not to use it or mention alternatives like 'update_agent_profile,' though context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_integratorInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
agent_idNo
caller_idNo
contact_emailNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

register_referrerInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
referred_wallet_addressYes
integrator_wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

reply_to_ticketInspect

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 attempt.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
caller_idNo
ticket_idYes
sender_nameNo
set_waitingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

request_wallet_policy_loosening
Read-onlyIdempotent
Inspect

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) once the user approves.

ParametersJSON Schema
NameRequiredDescriptionDefault
policiesYes
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

revoke_session_signer
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
signer_pubkeyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

send_token_socialA
Destructive
Inspect

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 crank.ing/{code} claim link and the claim_code (the bearer secret to embed in the announcement tweet). Whoever presents the code claims the tokens and binds referral on their first claim. expiry_days (optional, default 7, range 1-90) sets the claim window; unclaimed tokens are returned to the sender after expiry. Anti-abuse gated: sender account age, verified wallet, per-sender daily limit. platform: x.

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result (same claim_code/link) instead of locking a second escrow.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
amountYes
platformNox
referralNo
caller_idNo
expiry_daysNo
sender_walletYes
idempotency_keyNo
allow_unverifiedNo
recipient_handleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Disclosures go far beyond annotations: non-custodial nature, unsigned tx, claim link and code, expiry and unclaimed return, anti-abuse checks, idempotent replay behavior. No contradiction with annotations; adds critical context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose, use of backticks for parameters, and every sentence adds value. No superfluous information; compact yet thorough.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity (10 parameters, output schema exists), description covers flow, security, idempotency, and anti-abuse. Output schema handles return values, so description is sufficiently complete for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description explains most parameters: amount, token, sender_wallet, expiry_days, idempotency_key, referral, platform. Missing caller_id and allow_unverified, but coverage is strong overall.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Send tokens to an X handle via a claimable crank.ing link (non-custodial)'. Uses specific verb (send) and resource (tokens to X handle), and distinguishes from siblings like 'bulk_send_social' which handles multiple recipients.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: lock tokens, get unsigned tx, sign and broadcast, then share claim link. Mentions anti-abuse gates (sender age, verified wallet, daily limit) and idempotency key for retries, effectively telling when and how to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_alertInspect

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 phase. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
caller_idNo
thresholdYes
alert_typeYes
webhook_urlNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

set_integrator_share
Idempotent
Inspect

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 silently clamped. Setting a share on a PENDING integrator also approves it. Requires a valid admin_secret (CRANK_ADMIN_SECRET).

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
share_bpsYes
admin_secretNo
integrator_wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

set_liquidation_alertInspect

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 is POSTed on trip.

Workflow: MONITOR step -- arm after opening a leveraged/borrow position so a deteriorating obligation loops you back to repay/de-risk. Pairs with get_health_factor. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
protocolYes
caller_idNo
thresholdYes
webhook_urlNo
wallet_addressYes
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

set_permission_mode
Read-onlyIdempotent
Inspect

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 envelope -- proposal_id + params + summary -- instead of executing; approve within the TTL via approve_proposal) | auto_within_policy (execute immediately, still capped by every configured WalletPolicy -- the pre-R9 default). Also settable inline via set_wallet_policy's permission_mode param. The transition is logged as an AgentTransaction audit row.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

set_portfolio_charterAInspect

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 AgentWallet.evaluate_trade as an ADDITIONAL deny source alongside WalletPolicy.banned_tokens -- an active WalletPolicy always wins when it is the stricter rule; a charter can never loosen an existing policy, and a conflict comes back in the response's warnings (logged server-side, never silently dropped). target_allocations is {token: percent}, must sum to <=100. objectives/cadence are free-form parameters -- never phrase them as return promises (hard rules 5-8).

Workflow: ORIENT step 0 -- set once at the start of a relationship with an agent/wallet; strategies read it on every execute_strategy tick (see get_trading_workflow).

ParametersJSON Schema
NameRequiredDescriptionDefault
cadenceNo
caller_idNo
risk_bandNo
objectivesNo
banned_tokensNo
body_markdownNo
wallet_addressYes
max_position_pctNo
escalation_webhookNo
target_allocationsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description significantly extends annotations by detailing versioning behavior, banned_tokens merge logic, risk_band enum values, target_allocations constraint, and conflict handling. Warns against phrasing promises. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is detailed but well-organized with bullet points and clear sections. Slightly lengthy but each sentence adds value. Front-loaded with main purpose then behavioral details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complex tool with 10 parameters and write semantics, description covers versioning, constraints, interaction with wallet policy, and workflow. References get_trading_workflow for further context. Output schema exists, so return values may be documented there.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, description adds meaning for risk_band, banned_tokens, target_allocations, objectives, and cadence. However, does not explain wallet_address, caller_id, body_markdown, max_position_pct, or escalation_webhook. Partial compensation but insufficient for full clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'Write a new version of the wallet's portfolio charter' with clear verb and resource. Distinguishes from sibling get_portfolio_charter by specifying it creates a new active version. Provides workflow context (ORIENT step 0).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'set once at the start of a relationship with an agent/wallet' and that strategies read it on every execute_strategy tick. Provides usage context but does not explicitly list when not to use or alternatives beyond get_trading_workflow reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_ticket_priority
Idempotent
Inspect

Set a support ticket's priority (ENG-69d5785b).

priority: low|normal|high|urgent. Metadata-only -- no email, no status change.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityYes
caller_idNo
ticket_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

set_wallet_policy
Idempotent
Inspect

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_limit {"max_pct"} | max_daily_loss {"usd"} | trade_velocity {"max_per_hour", "max_per_day"} | venue_allowlist {"venues"}. Upserts by policy_type; returns the full updated policy set. (Perp leverage cap is a separate follow-up, ENG-f3aacdf1 -- not a policy_type here.) On a Lane 2 wallet, a change that would LOOSEN a server-enforced default raises BROWSER_CONFIRMATION_REQUIRED -- call request_wallet_policy_loosening instead (ENG-45e5ea07).

ParametersJSON Schema
NameRequiredDescriptionDefault
policiesYes
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

short_close
Destructive
Inspect

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 + same args replays the original result instead of re-closing the short.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
short_idYes
caller_idNo
pay_in_crankNo
slippage_bpsNo
payment_headerNo
wallet_addressYes
buy_with_amountNo
idempotency_keyNo
marginfi_accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

short_open
Destructive
Inspect

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 allow_unverified=true to short an unverified mint at your own risk. 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 replays the original result instead of re-opening the short.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
protocolNokamino
caller_idNo
pay_in_crankNo
slippage_bpsNo
borrow_amountYes
payment_headerNo
token_to_shortYes
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
collateral_tokenYes
marginfi_accountNo
collateral_amountYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

short_status
Read-onlyIdempotent
Inspect

List open shorts for a wallet with entry price + health factor.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

sr_backtest
Read-onlyIdempotent
Inspect

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_config into params["sr"]. asset is a token mint; timeframe one of 1m/5m/15m/1h/4h/1d; start_date/end_date ISO-8601. Returns the standard performance metrics plus persisted SUPPORT_RESISTANCE signals carrying zone metadata. Read-only simulation -- no fee, no on-chain action, not financial advice (DYOR).

Workflow: SIMULATE step -- validate an S/R setup on history before risking capital; feeds get_risk_assessment -> sr_configure_strategy. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
paramsNo
fee_bpsNo
end_dateYes
caller_idNo
sr_configNo
timeframeYes
start_dateYes
slippage_bpsNo
strategy_typeNosupport_resistance
slippage_modelNofixed
wallet_addressNo
initial_capitalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

sr_configure_strategy
Read-onlyIdempotent
Inspect

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 own strategy params. The strategy must belong to wallet_address -- configuring someone else's strategy is refused. Strategies without an sr block behave exactly as before (back-compat). User/agent-owned configuration only: you own and control the strategy; the platform never exercises discretion (DYOR). No key handling, no fee.

Workflow: DECIDE step -- after sr_detect_levels + sr_backtest confirm the level picture, store the tuned config on the strategy. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
sr_configYes
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

sr_detect_levels
Read-onlyIdempotent
Inspect

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 zone strength by overlapping candle-volume liquidity-band depth. asset is a token mint; timeframes default ["1h","4h","1d"]; lookback candles per timeframe (capped at 500); sources subset of swing / pivot / fibonacci / volume_profile / price_impact / manual; sensitivity 0-1 (higher = more zones); zone_width_bps sets the band half-width; manual_levels adds caller-supplied override prices. Returns zones (supports / resistances / pivots with price, band, strength, touches, sources, timeframes) plus liquidity_bands. Computed reference levels only -- not financial advice, not a trade instruction (DYOR). No wallet, no fee, no on-chain action.

Workflow: INTELLIGENCE step -- the level picture behind sr_backtest + sr_configure_strategy; pair with get_indicators + detect_regime. See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
sourcesNo
lookbackNo
caller_idNo
timeframesNo
sensitivityNo
manual_levelsNo
zone_width_bpsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

strategy_arb_createC
Read-onlyIdempotent
Inspect

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 clears entry_spread_pct and flat; exits when it reverts to exit_spread_pct. The simultaneous two-venue fill is collapsed to one leg (flagged approximate). Market-neutral: no direction params exposed (regime is read directly, not adapted).

risk: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
ema_periodNo
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
usd_per_tradeYes
wallet_addressYes
exit_spread_pctNo
entry_spread_pctNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint: true, but the description states 'Create an arb strategy', which implies a write operation. This contradiction undermines transparency. Additionally, the description discloses behavioral traits like approximate fill and proxy fallback, but the annotation contradiction is a critical flaw.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed and structured in paragraphs, but it is verbose with long sentences. It could be more concise while retaining essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the strategy's core logic and constraints but misses contextual details such as prerequisites (e.g., need for a funded wallet) and does not elaborate on the output schema despite its existence. Overall adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning for some parameters (entry_spread_pct, exit_spread_pct, ema_period) and explains the strategy logic, but it does not cover all 10 parameters. For example, risk, slippage_bps, interval_seconds, and source_token are not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create an arb strategy -- cross-venue price-discrepancy convergence (APPROXIMATE)', providing a specific verb and resource, and distinguishes it from sibling strategy creation tools by noting its market-neutral nature and lack of direction parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternative strategy creation tools like strategy_dca_create or strategy_basis_trade_create. It does not state prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_basis_trade_createB
Read-onlyIdempotent
Inspect

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 that makes the book delta-neutral is held separately by the caller) -- flagged approximate + funding_not_modeled (funding PnL itself is not simulated live). While funding is favourable (> min_funding) and flat, opens the short sized usd_per_trade at leverage; closes when funding decays to <= min_funding. Only an asset with a mapped perp market (currently SOL) can open. A Tier B (custodied) venue needs acknowledge_tier_b=true.

risk: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
venueNo
leverageNo
min_fundingNo
slippage_bpsNo
target_tokenYes
usd_per_tradeYes
wallet_addressYes
funding_lookbackNo
interval_secondsNo
acknowledge_tier_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description contradicts annotations: readOnlyHint=true but tool creates/modifies state (opens/manages perp short leg). This is a direct contradiction, lowering transparency despite otherwise detailed behavioral notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with main purpose and contains relevant details, but has some redundancy and could be more concise. Still effective overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains strategy logic well, references another tool for risk, but leaves many parameters unexplained. Output schema exists, so return values are not needed, but parameter coverage is incomplete for a tool with 11 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must explain parameters. It mentions min_funding, leverage, usd_per_trade, acknowledge_tier_b in context, but fails to describe risk, venue, slippage_bps, funding_lookback, interval_seconds, target_token, wallet_address. Incomplete parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a basis-trade strategy for funding-harvest perp short leg, with specific mechanism details. It distinguishes from other strategy creation tools by emphasizing the approximate nature and managed perp leg.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on when to use (e.g., when funding is favorable, only for assets with mapped perp market like SOL) and conditions for opening/closing. Mentions Tier B venue requirement but lacks explicit comparison to alternative strategies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_cancelBInspect

Stop a strategy (sets status=stopped; it will not be dispatched again).

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-destructive, non-idempotent. The description adds that the strategy won't be dispatched again, but does not disclose reversibility, permission requirements, or side effects. Minimal added value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the verb and resource, followed by a parenthetical clarification. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not visible), so return values need not be explained. However, parameter descriptions are missing and usage context among many strategy siblings is thin. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation for the two required parameters (strategy_id, wallet_address). The baseline requires compensation, but none is offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Stop a strategy') and the effect ('sets status=stopped; it will not be dispatched again'). It distinguishes from siblings like strategy_pause by implying finality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for final stopping vs pausing, but does not explicitly state when to use this tool vs alternatives like strategy_pause or strategy_resume. No explicit guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_composite_createAInspect

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; a paper mode annotation is advisory until the managed-signing epic lands). Recommended: run compose_strategy + backtest_strategy on the definition FIRST -- historical results are not predictive; DYOR.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolive
riskNo
definitionYes
wallet_addressYes
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses key behavioral traits: non-custodial path, unsigned transaction for lacking signer, mode defaults to LIVE, and advisory nature of paper mode. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences and front-loaded with the main action. Some details like the 'paper mode advisory until the managed-signing epic lands' could be trimmed, but overall it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of strategy creation and presence of output schema, the description covers behavioral aspects well but lacks parameter detail. The term 'validated definition' is ambiguous, and prerequisites are mentioned but not fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description only explains the 'mode' parameter briefly. It fails to clarify 'definition', 'risk', or 'interval_seconds', leaving significant gaps for parameters that are crucial for tool usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a composite strategy from a validated definition. It distinguishes from sibling strategy creation tools by specifying 'composite' and mentions prerequisite tools (compose_strategy, backtest_strategy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description recommends running compose_strategy and backtest_strategy first, giving clear context for when to use this tool. However, it does not explicitly compare to other strategy creation tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_copy_wallet_createB
Read-onlyIdempotent
Inspect

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 buys. APPROXIMATE: no full per-fill replication (every execution is flagged approximate).

risk / direction params: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
direction_modeNo
tracked_walletNo
wallet_addressYes
regime_overrideNo
size_multiplierNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims a creation operation while annotations indicate readOnlyHint: true, a direct contradiction. Although the description adds some behavioral details (approximate flag, not full replication), the contradiction severely undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear first sentence and parameter bullet points. The reference to another tool adds some length but is acceptable. It is well-structured overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Key parameters are missing, and the output schema is not described. The annotation contradiction adds confusion. The description does not explain return values, error cases, or side effects beyond the approximate flag.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only two out of 12 parameters (tracked_wallet and usd_per_buy) are explained in the description, despite 0% schema coverage. The reference to strategy_dca_create for risk/direction is not inline explanation. Most parameters remain semantically unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a copy-wallet strategy' and explains it mirrors a tracked wallet's entries/exits. It distinguishes from other strategy creation tools by specifying the copy-wallet aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a copy-wallet strategy but does not explicitly state when to use it vs alternatives. It references strategy_dca_create for parameter details but lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_dca_createAInspect

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; <=0 disables a guard).

Direction (ENG-bd44b1b7, optional, all advisory -- DYOR): direction_mode (auto | long_only | short_only | manual; default auto = follow the market regime, reducing exposure in a bear instead of accumulating), allow_short (enable real shorts via the Drift perps venue), regime_override (force bull | bear | range | volatile instead of trusting detection).

Workflow: EXECUTE step -- stand up a recurring strategy after backtest_strategy validates it and get_risk_assessment sets the guards; track via strategy_status. A managed wallet without a Turnkey signer = paper-trade (unsigned tx per tick). See get_trading_workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
smartNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so it's a write operation. The description adds valuable behavioral context: it creates a recurring strategy, details risk parameters, direction modes, and the paper-trade condition for unsigned wallets. This supplements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise and front-loaded with the main purpose. It uses bullet-like formatting for risk and direction sections. Some jargon (ENG-b2c60329) could be confusing, but overall it is reasonably structured and not excessively verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description explains risk and direction parameters, it omits key details for other parameters like smart, interval_seconds, slippage_bps, and source_token. Given the tool's complexity (11 parameters, output schema exists, but no schema descriptions), the description should cover more parameter semantics and usage context to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must explain parameters. It only partially explains usd_per_buy, risk, direction_mode, allow_short, and regime_override, leaving many important parameters (e.g., wallet_address, target_token, smart, slippage_bps, source_token, interval_seconds) undocumented. This is insufficient for a tool with 11 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a dollar-cost-average strategy buying usd_per_buy of target each interval.' The verb 'Create' and resource 'dollar-cost-average strategy' are specific and distinct from sibling tools like strategy_arb_create or strategy_equity_dca_create, which are for different strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a workflow context: 'EXECUTE step -- stand up a recurring strategy after backtest_strategy validates it and get_risk_assessment sets the guards; track via strategy_status.' It mentions 'See get_trading_workflow' for more guidance. However, it does not explicitly state when to use this tool versus alternative strategy creation tools or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_equity_dca_createA
Read-onlyIdempotent
Inspect

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, user-configured strategy (not discretionary), so it stays autonomous even on a security target -- the per-execution confirmation gate only applies to the discretionary types (momentum / sentiment). Equity classification still drives geo-gating + disclaimers at execution; call asset_classification / get_disclaimers first.

risk / direction params: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
smartNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims to create a strategy, which is a write operation, contradicting the readOnlyHint annotation (true). This is a serious inconsistency. Additionally, while it adds context about mechanical vs. discretionary strategies and security target handling, the contradiction undermines trust. Score is 1 per the contradiction rule.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence stating purpose, followed by mechanics, security context, and references. While slightly verbose, it earns its length by providing essential differentiation and context. It front-loads key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, 0% schema coverage) and the existence of an output schema, the description is moderately complete. It covers the purpose, relationship to sibling, and prerequisites (call asset_classification), but lacks detailed parameter explanations and does not describe return values despite having an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, leaving the description to carry parameter meaning. It clarifies that 'target_token is expected to be a tokenized-equity mint' and defers risk/direction params to 'strategy_dca_create', but does not explain other parameters like 'usd_per_buy', 'interval_seconds', etc. This is insufficient for 11 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the specific action: 'Create an equity dollar-cost-average strategy (tokenized equities / xStocks).' It clearly distinguishes from the sibling tool 'strategy_dca_create' by noting that this one is tagged 'equity_dca' because the target_token is expected to be a tokenized-equity mint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus the sibling 'strategy_dca_create', and advises calling 'asset_classification / get_disclaimers first'. It also explains the SEC posture and when the per-execution confirmation gate applies, making usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_hedge_createB
Read-onlyIdempotent
Inspect

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_pct to lock in a favourable one. At least one of stop_loss_pct / take_profit_pct / trailing must be set.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
trailingNo
allow_shortNo
entry_priceNo
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
stop_loss_pctNo
direction_modeNo
wallet_addressYes
position_amountYes
regime_overrideNo
take_profit_pctNo
interval_secondsNo
trailing_distance_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Create' (a write operation), but annotations set readOnlyHint=true, which is a direct contradiction. This undermines the agent's understanding of the tool's side effects. Additionally, idempotentHint=true may be inconsistent with creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and then clarifies parameter requirements and relationship to a sibling tool. Every sentence adds value with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 15 parameters and the presence of an output schema, the description covers only the core concept and three parameters. It omits the required parameters and does not explain the hedge strategy's lifecycle or execution behavior. It is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 15 parameters with 0% description coverage. The description only explains 3 parameters (stop_loss_pct, trailing, take_profit_pct) and their roles, but ignores the other 12, including the 3 required parameters (wallet_address, target_token, position_amount). This is insufficient for an agent to correctly fill all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create a hedge strategy -- an exit trigger that unwinds a held position,' providing a specific verb and resource. It distinguishes from sibling tools by referencing strategy_stoploss_create and explaining the framing difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool (to set an exit trigger) and mentions the required parameters (stop_loss_pct, trailing, take_profit_pct) and the similarity to strategy_stoploss_create. However, it does not explicitly state when not to use it or provide alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_listA
Read-onlyIdempotent
Inspect

List a wallet's strategies (newest first, capped).

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the agent knows this is a safe, idempotent read. The description adds that results are ordered 'newest first' and 'capped', but does not specify the cap size or confirm return format. This adds some value beyond annotations but is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the key action, resource, ordering, and cap. It is concise and to the point, though it could include more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one parameter and an output schema, the description covers the basics. However, it leaves ambiguity about the cap size and does not describe the output structure or any constraints, leaving questions that could affect usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description has the full burden of clarifying the parameter. It only mentions 'wallet_address' as part of the resource phrase but does not explain format, address type, or expected input. This is insufficient for a single required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('list'), the resource ('a wallet's strategies'), and adds specificity with ordering ('newest first') and a limit ('capped'). This distinguishes it from sibling tools like 'discover_strategies' (which likely lists all strategies) and 'strategy_status' (for a single strategy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like 'discover_strategies' or 'clone_strategy'. However, the context of retrieving strategies for a specific wallet is implied by the parameter 'wallet_address', and the presence of sibling tools provides some implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_market_make_createC
Read-onlyIdempotent
Inspect

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 a trending (bull/bear) regime instead of adapting direction (a maker gets run over by a directional move) -- read directly inside the executor, so no direction params are exposed here.

risk: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
max_levelsNo
mid_periodNo
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
usd_per_quoteYes
wallet_addressYes
base_spread_pctNo
spread_lookbackNo
vol_spread_multNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details behavioral traits (synthetic spread, non-directional, pause in trends) but contradicts annotations: readOnlyHint=true suggests no state mutation, yet creating a strategy is a write operation. idempotentHint=true also seems inconsistent with creation. This contradiction undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes essential behavioral details but is somewhat verbose with stylized capitalization (e.g., 'APPROXIMATE', 'SYNTHESISES'). It could be more concise while retaining clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (12 parameters, detailed strategy behavior) and the presence of an output schema, the description is incomplete. It fails to explain parameter semantics and does not fully cover usage context, relying on an external reference for 'risk'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain individual parameters beyond mentioning 'risk' via a reference. With 12 parameters, the lack of semantic detail leaves the agent without sufficient guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a market-make strategy and explains the mechanism (two-sided spread capture, synthetic spread from volatility). It distinguishes itself from other strategies by highlighting its synthetic nature and lack of direction parameters, though it does not explicitly differentiate from sibling strategy creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is for market-neutral strategies that pause in trending regimes, providing some context on when to use. However, it lacks explicit when-to-use/when-not-to-use guidance and does not compare directly with alternative strategies like strategy_dca_create.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_momentum_createB
Read-onlyIdempotent
Inspect

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 user confirmation before the scheduled dispatcher will run a tick (strategies.tasks.execute_strategy requires user_confirmed=True; crypto targets stay fully autonomous). Call asset_classification first.

risk / direction params: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
fastNo
riskNo
slowNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Create a momentum strategy' implying a mutation, but the annotations declare readOnlyHint=true, creating a clear contradiction. This undermines trust in the tool's behavior despite the additional context about user confirmation for security targets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose. Minor deduction for internal references (SEC framework, ENG-6f4d3513) that may confuse an AI agent without full context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (12 params), the description provides essential algorithm details and a prerequisite call, but lacks parameter-level explanations. The output schema exists, so return values are covered, but significant gaps remain about required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only a vague reference to risk/direction params via another tool is provided. The description explains the SMA crossover logic but does not detail the 12 parameters, leaving them largely undocumented (0% schema coverage). The agent gets minimal help understanding required fields like wallet_address, target_token, or usd_per_buy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a momentum strategy using fast/slow SMA crossover, explaining the entry/exit logic. It distinguishes itself from sibling tools like strategy_dca_create by specifying the strategy type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly advises to call 'asset_classification first' as a prerequisite and references strategy_dca_create for risk/direction parameters. However, it lacks direct comparison to alternative strategy creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_pauseA
Idempotent
Inspect

Manually pause a strategy (status=paused_manual; stops dispatch).

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds concrete behavioral details (status code, dispatch stoppage) beyond annotations; no contradiction with readOnlyHint=false or idempotentHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with clear action and parenthetical detail, front-loaded and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pause action, the tool is simple but the complete absence of parameter documentation (no types, roles, or examples) undermines usability, despite output schema existence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no meaning or context for the two required parameters ('strategy_id', 'wallet_address'), leaving the agent to infer from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Manually pause a strategy') and specifies the exact status value ('paused_manual') and effect ('stops dispatch'), distinguishing it from siblings like 'strategy_resume'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs. alternatives; context of sibling names implies pause/resume pair but lacks when-not or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_perp_grid_createB
Read-onlyIdempotent
Inspect

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 a deeper rung opens a perp long sized usd_per_level at leverage. PAUSES new rungs in a trending (bull/bear) regime and closes the ladder in a bear (stop the bleed); tightens spacing in range, widens when volatile. Only an asset with a mapped perp market (currently SOL) can open -- see get_venue_status for routable markets. venue optional (defaults to the configured primary); a Tier B (custodied) venue needs acknowledge_tier_b=true after reviewing its custody_disclosure.

risk: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
venueNo
leverageNo
grid_levelsNo
center_priceNo
slippage_bpsNo
target_tokenYes
center_periodNo
range_tightenNo
usd_per_levelYes
volatile_widenNo
wallet_addressYes
grid_spacing_pctNo
interval_secondsNo
acknowledge_tier_bNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description describes a state-changing operation (creating and opening perp longs), which directly contradicts annotations indicating readOnlyHint=true and idempotentHint=true. This is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is fairly dense with useful details, front-loaded with core concept. Every sentence adds value, though slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers strategy behavior, venue routing, and risk parameter, but leaves many parameters undocumented. The annotation contradiction further undermines completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds meaning for many parameters (center_price, grid_spacing_pct, leverage, venue, etc.), but fails to document several important ones (grid_levels, slippage_bps, center_period, range_tighten, volatile_widen, interval_seconds). Partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a perp-grid strategy with specific mechanics (ladder of longs on dips). It is distinguishable from general strategy creation tools, but does not explicitly differentiate from sibling strategy creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides detailed context on when to use, including venue routing, asset restrictions (SOL only), and behavior in different market regimes. However, lacks explicit 'when not to use' or comparison to alternative strategies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_protect_createB
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
trailingNo
allow_shortNo
entry_priceNo
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
stop_loss_pctNo
direction_modeNo
wallet_addressYes
position_amountYes
regime_overrideNo
take_profit_pctNo
interval_secondsNo
trailing_distance_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description says 'Create a downside-protection monitor' indicating a write operation, but annotations declare readOnlyHint=true, which contradicts. The description does not disclose any behavioral traits beyond creation, and annotations are misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action. No redundant information. Could be slightly more efficient by omitting backtick formatting, but overall well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters, 3 required, and an output schema, the description is incomplete. It fails to clarify many parameters, resolve the annotation contradiction, or provide sufficient usage guidance. The existence of output schema does not compensate for the lack of parameter semantics and behavioral transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only mentions three parameters (stop_loss_pct, take_profit_pct, trailing) and notes that at least one must be set. Other 12 parameters (e.g., risk, allow_short, entry_price) are unexplained, leaving significant gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool creates a downside-protection monitor on a held position, framing it as a downside guard. It references strategy_stoploss_create for identical config/mechanics, distinguishing it from other strategy creation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions the tool shares executor and config with strategy_stoploss_create but framed as downside guard, implying a specific use case. However, it does not explicitly state when to use this vs strategy_stoploss_create, leaving potential confusion. The constraint 'at least one of stop_loss_pct/take_profit_pct/trailing must be set' is helpful but not a strong guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_rebalance_createCInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
allow_shortNo
slippage_bpsNo
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo
target_allocationYes
drift_threshold_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint: false) with no idempotency or destructiveness hints. The description adds no additional behavioral context beyond stating 'Create'. It does not disclose side effects, permissions required, rate limits, or what happens if parameters are omitted. For a write tool, this is insufficient behavioral transparency beyond what the annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences), making it concise. However, it sacrifices completeness and clarity, especially with the cryptic 'Direction (ENG-bd44b1b7, optional, advisory)' phrasing. The structure front-loads the main purpose but fails to deliver a self-contained explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters, nested objects, and an output schema, the description is far too minimal. It does not explain how the rebalance strategy works (e.g., triggers, execution logic), the meaning of risk, slipage, interval, or drift threshold. The agent would lack essential context to use the tool correctly without additional references.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters. It mentions target_allocation and three direction parameters (direction_mode, allow_short, regime_override), but ignores risk, slippage_bps, wallet_address, interval_seconds, and drift_threshold_pct. The reference to another tool for direction details is indirect. Most parameters lack clarity, leaving the agent underinformed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a portfolio-rebalance strategy toward target_allocation (mint->weight)', which uses a specific verb and resource. It conveys the unique purpose of rebalancing a portfolio according to a target allocation map. However, it does not differentiate this strategy from the many sibling strategy creation tools (e.g., strategy_arb_create, strategy_dca_create), limiting the score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance on when to use this tool versus alternatives. It mentions optional direction parameters and refers to strategy_dca_create for details, but does not explain the context or conditions for using this rebalancing strategy over others. No explicit when-to-use or when-not-to-use advice is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_resumeA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate mutability and idempotency. The description adds valuable context: it explains that the equity high-water mark is reset to prevent immediate re-triggering, and references the kill switch ID. No annotation contradicton.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the core action. Every sentence adds meaningful information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the tool has simple parameters, the description covers the behavioral effect and the scenario. It does not specify prerequisites like the strategy's current state, but is largely complete for a resume operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It does not explain what strategy_id and wallet_address represent. While the purpose implies their roles, explicit parameter guidance is missing, lowering the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Re-enable' and the specific resource 'paused strategy' after a drawdown pause. It distinguishes from sibling tools like strategy_pause and strategy_cancel by explaining the unique use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: manual re-enable after a drawdown pause, and explains the underlying mechanism. It lacks explicit 'when not to use' but provides sufficient context for an agent to understand the appropriate scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_sentiment_createB
Read-onlyIdempotent
Inspect

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. DISCRETIONARY (SEC framework, ENG-6f4d3513): targeting a tokenized SECURITY forces per-execution user_confirmed at execution (crypto stays fully autonomous). Call asset_classification first.

risk / direction params: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
bear_thresholdNo
bull_thresholdNo
direction_modeNo
wallet_addressYes
regime_overrideNo
sentiment_scoreNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims a write operation ('Create'), but annotations include readOnlyHint=true, creating a direct contradiction. Additionally, idempotentHint=true conflicts with typical creation behavior. The description does disclose discretionary mode for security tokens and live/pinned score sources, but the core contradiction severely undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with technical details in a readable format. Each sentence adds value, though the reference to strategy_dca_create could be more precise. It is appropriately sized for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description lacks complete coverage of all 13 parameters, leaving many unexplained. It provides high-level behavior and the SEC discretionary mode, but the parameter documentation gap and reliance on external references for risk/direction make it incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains bull_threshold, bear_threshold, and sentiment_score, but the remaining 10 parameters (e.g., risk, allow_short, slippage_bps) are not described. Referencing strategy_dca_create for risk/direction is partial help, but insufficient for full parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a sentiment strategy and explains the trading logic based on sentiment score thresholds. It distinguishes itself from sibling tools like strategy_dca_create or strategy_momentum_create by specifying its unique mechanism (aggregate sentiment score, bull/bear thresholds, neutral band).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to call asset_classification first and references strategy_dca_create for risk/direction parameters, providing clear prerequisites and cross-reference. However, it does not explicitly state when to prefer this tool over other strategy-creation tools (e.g., momentum, arb), leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_snipe_createA
Read-onlyIdempotent
Inspect

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 (default 60s) since it reads a per-tick rolling price window that must accumulate lookback + 1 observations before it can enter.

risk / direction params: see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
lookbackNo
allow_shortNo
usd_per_buyYes
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
entry_dip_pctNo
stop_loss_pctNo
direction_modeNo
wallet_addressYes
regime_overrideNo
take_profit_pctNo
interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description accurately portrays the tool's trading behavior (buying, exiting, running on interval). However, the annotations declare readOnlyHint=true, which directly contradicts the description's indication of creating a strategy that places trades. This contradiction severely impairs transparency, as the agent may misunderstand the tool's effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, conveying the strategy logic and key constraints in a few sentences. It avoids redundancy but could be better structured (e.g., using bullet points) for readability. The reference to another tool is acceptable but adds a slight dependency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's 14 parameters and 0% schema coverage, the description covers roughly half of them adequately. It explains the core mechanics and required preconditions but leaves several parameters unexplained. The output schema exists but its content is not described; the agent lacks full context about what the tool returns. This is incomplete for a tool with many options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description bears the full burden. It explains key parameters like usd_per_buy, entry_dip_pct, take_profit_pct, stop_loss_pct, lookback, and interval_seconds. However, it omits several parameters (risk, allow_short, slippage_bps, etc.) and redirects to strategy_dca_create for risk/direction, which is incomplete for a self-contained definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a 'snipe/scalping strategy' with specific behavior (dip-buy, fast take-profit/stop exit). It distinguishes from sibling tools like strategy_dca_create by explaining the unique rolling price window and short interval requirement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when the strategy is active (flat vs holding) and notes the prerequisite of accumulating lookback+1 observations. It references strategy_dca_create for shared parameters, providing some guidance on related tools. However, it could be more explicit about when to choose this over other strategy creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_statusB
Read-onlyIdempotent
Inspect

Status + last execution of one strategy (scoped to the caller's wallet).

ParametersJSON Schema
NameRequiredDescriptionDefault
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly, openWorld, idempotent, non-destructive. Description adds context of returning status+last execution and wallet scoping, but no further behavioral details (e.g., rate limits, error conditions). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key information. No extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal description given output schema exists. Does not elaborate on 'status' or 'last execution' content, which could be helpful despite output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameter descriptions (0% coverage). Description does not explain strategy_id or wallet_address, missing opportunity to add meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns status and last execution for one strategy, scoped to the caller's wallet. This distinct purpose is evident and differentiates from sibling tools like strategy_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Does not mention when to prefer strategy_status over strategy_list or other status tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_stoploss_createAInspect

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-bd44b1b7, optional, advisory): direction_mode / allow_short / regime_override -- see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
trailingNo
allow_shortNo
entry_priceNo
slippage_bpsNo
source_tokenNoUSDC
target_tokenYes
stop_loss_pctNo
direction_modeNo
wallet_addressYes
position_amountYes
regime_overrideNo
take_profit_pctNo
interval_secondsNo
trailing_distance_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description explains the tool creates a monitor on a held position, implying it's not destructive and requires an existing position. It adds context beyond annotations (e.g., need for triggers, direction advisory). Annotations show readOnlyHint=false and destructiveHint=false, consistent with creating a monitor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with three sentences, front-loading purpose and key usage. The inclusion of an advisory ID ('ENG-bd44b1b7') is minor noise but acceptable. Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters and complexity, the description covers core concepts but misses details on trailing config, interval, slippage, and return behavior. Output schema exists but not shown; still, the description should provide more context for a complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description explains key parameters (position_amount, triggers, direction) but leaves many others undocumented (risk, trailing, entry_price, slippage_bps, interval_seconds, trailing_distance_pct). It adds value for common parameters but insufficiently compensates for the full set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a stop-loss, take-profit, or trailing-stop monitor on a held position. It uses a specific verb ('Create') and identifies the resource, distinguishing it from siblings like strategy_dca_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides explicit usage guidelines: at least one trigger must be set (stop_loss_pct, take_profit_pct, or trailing config) and explains fractions. It references direction parameters with a note to see strategy_dca_create, offering context but not explicitly comparing to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_vault_createA
Read-onlyIdempotent
Inspect

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. No external vault/LP deposit (hard rule 1): the non-custodial swap pipeline only rotates spot holdings toward the target weights.

Direction (ENG-bd44b1b7, optional, advisory): direction_mode / allow_short / regime_override -- see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
allow_shortNo
slippage_bpsNo
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo
target_allocationYes
drift_threshold_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description describes a write operation ("Create a vault strategy") but annotations declare readOnlyHint=true. This is a direct contradiction. The description does not address this inconsistency, providing no behavioral transparency beyond what annotations claim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose, followed by relevant technical details and cross-references. Every sentence adds value with no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, nested objects, output schema exists), the description provides core intent and differentiators but does not explain all parameters or the output format. However, output schema existence reduces the burden, and the references to sibling tools aid completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains key parameters like ``target_allocation``, ``drift_threshold_pct``, and direction-related fields, but omits others (e.g., ``risk``, ``slippage_bps``, ``interval_seconds``, ``wallet_address``). Partial but not comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a vault strategy as a target-allocation basket held via rebalancing, distinguishing it from active rebalance loops and noting the absence of external vault/LP deposits. It references sibling tool ``strategy_rebalance_create`` for identical config mechanics, showing precise differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance by comparing to ``strategy_rebalance_create`` (active vs. passive) and referring to ``strategy_dca_create`` for direction mode details. This helps the agent choose between similar strategy creation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

strategy_yield_farm_createB
Read-onlyIdempotent
Inspect

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 allocation across the basket via converging rebalance swaps (hard rule 1: the non-custodial pipeline only rotates spot holdings, never deposits externally).

Direction (ENG-bd44b1b7, optional, advisory): direction_mode / allow_short / regime_override -- see strategy_dca_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
riskNo
allow_shortNo
slippage_bpsNo
direction_modeNo
wallet_addressYes
regime_overrideNo
interval_secondsNo
target_allocationYes
drift_threshold_pctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description says 'Create' (mutation) but annotations have readOnlyHint=true, causing contradiction. Despite additional behavioral context (rebalance executor, external deposit limitation), the contradiction undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, relatively compact. However, long parenthetical may be dense. Still efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite output schema existing, description fails to cover many parameters and contains a contradiction. Complexity warrants more detail than provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0%, so description must explain parameters. Only explains direction_mode, allow_short, regime_override; leaves 6 of 9 parameters undocumented (risk, slippage_bps, wallet_address, interval_seconds, target_allocation, drift_threshold_pct). Insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Create a yield-farm strategy'. Distinguishes from sibling by explaining the rebalance executor difference and that it models yield farm as keeping target allocation via rebalance swaps, never external deposits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use vs strategy_rebalance_create and references strategy_dca_create for direction parameters. Lacks explicit when-not-to-use but offers useful alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_parameter_adjustmentA
Read-onlyIdempotent
Inspect

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, never advice, and nothing is changed by this call (PROPOSE flow: acting on an observation is your call via the strategy tools, where every policy/risk gate still applies).

Workflow: ORIENT -> DECIDE step -- review observations, then adjust via strategy tools if YOU decide to.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
strategy_idYes
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, non-destructive. Description adds that it returns historical data only, no advice, and that acting requires other strategy tools. Could mention data freshness or rate limits, but sufficient given annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with key purpose first, then additional details and workflow. Slightly long but every sentence adds value. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 params, output schema, many siblings), the description covers purpose, usage context, and behavioral traits comprehensively. Output schema covers return details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It implicitly identifies strategy_id and wallet_address as belonging to 'YOUR strategies', but does not explicitly describe each parameter (e.g., strategy_id, wallet_address, caller_id). Leaves some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it provides historical parameter observations for a strategy, compares outcomes, and returns ranked differences. Distinguishes from other tools by emphasizing it is a read-only, advisory-free call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says it is for the ORIENT->DECIDE step before taking action via strategy tools. Warns it is never advice and nothing is changed, clearly delimiting its role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

token_info
Read-onlyIdempotent
Inspect

Token metadata, price, liquidity, volume, holder count.

Provide token_address (mint) or a known symbol. Merges Helius (metadata) with Birdeye (market data).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
caller_idNo
token_addressNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

trade_equity
Destructive
Inspect

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 jurisdiction arg) and OFAC-screened, and requires per-execution confirmation -- WITHOUT confirm=true it returns a quote + disclaimer and does NOT execute (no autonomous equity execution). With confirm=true it returns an UNSIGNED base64 tx to sign + broadcast; pass signed_transaction to broadcast a caller-signed tx. Value-bearing: past the daily free tier an x402 payment_header is required. ip = caller origin IP for the Reg S geo gate (US IP -> refused even with an attestation; an agent's Railway Singapore egress resolves to SG and passes). venue_hint (ENG-fc290438/ENG-00ebde90, MB#18215) is ADVISORY, never required -- equity routes via the issuer registry (one surface today); an unknown hint raises.

idempotency_key (ENG-7ded4fb8, optional): see jupiter_swap -- same replay-on-retry semantics, same key reused across build + broadcast.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNo
sideYes
amountYes
symbolYes
confirmNo
caller_idNo
venue_hintNo
jurisdictionNo
pay_in_crankNo
slippage_bpsNo
payment_headerNo
wallet_addressYes
idempotency_keyNo
allow_unverifiedNo
signed_transactionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

unstake_lst
Destructive
Inspect

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 payment_header).

idempotency_key (ENG-7ded4fb8, optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-unstaking.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYes
caller_idNo
lst_tokenYes
pay_in_crankNo
payment_headerNo
wallet_addressYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

update_agent_profileA
Idempotent
Inspect

Patch an agent profile's metadata (display_name, capabilities, endpoints).

metadata is a dict of writable fields; capabilities are validated if present.

ParametersJSON Schema
NameRequiredDescriptionDefault
metadataYes
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotent, non-destructive, and read-write behavior. The description adds that capabilities are validated if present, which is useful. However, it does not elaborate on auth requirements, rate limits, or side effects beyond a standard update.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, no filler. Each sentence adds value: the first states the operation and fields, the second adds detail about metadata and validation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return values are covered. However, the description lacks info on prerequisites (e.g., wallet_address must reference an existing profile), and the openWorldHint annotation is not explained. Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It clarifies that metadata is a dict of writable fields and that capabilities are validated. However, it fails to explain caller_id or any constraints on metadata fields, leaving gaps in understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Patch'), the resource ('agent profile'), and lists the specific editable fields (display_name, capabilities, endpoints). This differentiates it from creation (register_agent) and retrieval (get_agent_profile) tools, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, the description lacks context such as prerequisites (e.g., profile must exist) or exclusions (e.g., when not to use it).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_ticket_status
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYes
caller_idNo
ticket_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

venue_risk_comparison
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
venue_aYes
venue_bYes
caller_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

verify_token
Read-onlyIdempotent
Inspect

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. Returns verification_status (verified | unverified | suspicious | blocked), the reasons, non-blocking warnings, and the per-layer findings. Call this before swapping into an unfamiliar token (ENG-a39caa6d).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNo
caller_idNo
token_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

wallet_status
Read-onlyIdempotent
Inspect

Current state, policy summary, recent activity, total volume, and tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
caller_idNo
wallet_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources