Skip to main content
Glama

dex_tx_send_raw_transaction

Destructive

Broadcast a signed tx to the chain. [write] Requires user confirmation after transfer preview and prior signing via dex_wallet_sign_transaction. Solana: pass last_valid_block_height from dex_tx_get_sol_unsigned; an expired blockhash is rejected before the upstream send. account_id/address are auto-filled from the login session when omitted.

Input Schema

NameRequiredDescriptionDefault
memoNoMemo (history_data.memo)
chainYesChain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config before calling upstream.
nonceNoNonce (history_data.nonce)
addressNoSender wallet address (history_data.address); optional when logged in — resolved from session wallet for the chain
networkNoNetwork name
mcp_tokenNoMCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403
signed_txYesSigned transaction data. For EVM chains: hex string (0x prefix added automatically). For other chains (e.g. Solana): use chain-specific format
account_idNoAccount ID (for history_data); optional when logged in — resolved from session
token_addrNoToken contract address (history_data.token_addr)
token_nameNoToken name (history_data.token_name)
trans_timeNoTransaction time ISO8601 (default: now)
trans_typeNoTransaction type (history_data.trans_type)
action_typeNoAction type (history_data.action_type)
trans_balanceNoDisplay amount (history_data.trans_balance)
trans_gas_feeNoGas fee display (history_data.trans_gas_fee)
token_short_nameNoToken symbol, e.g. USDT (history_data.token_short_name)
trans_balance_usdNoUSD value (history_data.trans_balance_usd)
trans_oppo_addressNoCounterparty address, e.g. recipient (history_data.trans_oppo_address)
trans_min_unit_amountNoAmount in smallest unit (history_data.trans_min_unit_amount)
trans_min_unit_gas_feeNoGas fee in smallest unit (history_data.trans_min_unit_gas_fee)
last_valid_block_heightNoSolana: lastValidBlockHeight returned by dex_tx_get_sol_unsigned or the blockhash fetch. Broadcast is rejected when the chain height has passed it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / last_valid_block_height
      Added value: +{
      +  "description": "Solana: lastValidBlockHeight returned by dex_tx_get_sol_unsigned or the blockhash fetch. Broadcast is rejected when the chain height has passed it.",
      +  "type": "number"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / account_id / description
      Previous value: -"Account ID (for history_data)"New value: +"Account ID (for history_data); optional when logged in — resolved from session"
    • changedInput schema / properties / address / description
      Previous value: -"Sender wallet address (history_data.address)"New value: +"Sender wallet address (history_data.address); optional when logged in — resolved from session wallet for the chain"
  3. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare it a destructive, non-idempotent, open-world write, so the safety profile is covered; the description adds genuine extra behavior: the blockhash-expiry rejection that happens before the upstream send, the human-confirmation gate, and session-based auto-fill of account_id/address. It offers good context without describing the response format.

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?

Four sentences, front-loaded with the core action and then the prerequisites, the Solana caveat, and the session behavior in descending priority. No filler or restated schema text.

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 21 parameters and no output schema, yet the description never says what a successful broadcast returns (hash, status, receipt) or how failures beyond blockhash expiry surface. Prerequisites and chain quirks are covered well, but the missing return/failure picture leaves a real gap for a write tool with no output schema.

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 100% schema coverage the baseline is 3, but the description goes beyond it by explaining the semantics of last_valid_block_height (source tool and rejection-on-expiry behavior) and that account_id/address are resolved from the login session when omitted. That is real meaning added on top of the schema text.

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?

States a specific verb and resource: 'Broadcast a signed tx to the chain', which pins the pre-condition (already signed) and names dex_wallet_sign_transaction as the tool that precedes it. It does not explicitly disambiguate from the sibling dex_tx_swap_submit, so it falls just short of full sibling differentiation.

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?

Gives the ordering constraints clearly: use only after a transfer preview + user confirmation and prior signing via dex_wallet_sign_transaction, plus a chain-specific rule for Solana (pass last_valid_block_height from dex_tx_get_sol_unsigned). No explicit when-not-to-use case is stated, so it is strong context without exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.