| Tool |
Summary |
get_transaction |
Read one Sui transaction’s sender, status, gas, balance changes, decoded actions and event fields; no hand-written GraphQL is needed to read event values. |
get_transactions |
Read 1-50 transaction digests in one call instead of repeated get_transaction calls. |
query_events |
Query events by type, sender, emitting module or time/checkpoint range. |
query_transactions |
Query raw transactions by sender, affected address or object, Move function, or time/checkpoint range. |
- Title: Get transaction
- Profile:
core (default)
- Annotations:
openWorldHint: true, readOnlyHint: true
- Metadata:
anthropic/maxResultSizeChars: 500000
Read one Sui transaction’s sender, status, gas, balance changes, decoded actions and event fields; no hand-written GraphQL is needed to read event values. It identifies protocols from calls and events (including wrappers), and unnamed packages by their curated publishing key; protocols_unchecked marks unread publishers. It shows address-balance deposits and withdrawals, requested withdrawals and gas source; non-sender object deliveries (coins separately when no other object moved); sender-owned capabilities mutated without transfer; and router coin round trips with cost from pool events, or null with a reason. High-bit u256 event numbers get signed readings; full detail also gives two’s-complement readings of high-bit u64/u128/u256 pure values. Use detail:‘full’ for inputs with declared types and object versions, resolved command arguments and Result origins, and every changed object’s ID, type and version by kind. Summary may fold or cap event rows past ~20k chars, retaining events emitted by called non-framework packages; omitted reports reductions. Full detail lists all events in pages: follow events_page.next_call. For command-only or pre-sign inspection use decode_ptb; for exploit profit, state deltas and anomaly leads use analyze_attack_tx.
| Parameter |
Type |
Required |
Description |
digest |
string |
yes |
Transaction digest (Base58) |
max_event_field_bytes |
integer (0 to 500000) |
no |
Decoded event-field byte cap; unset decodes every event. Set only to bound fields knowingly; skips are reported. 0 skips decoding. |
detail |
summary | full |
no |
‘summary’ (default): object counts, no inputs/commands; ~20k chars of deliveries/transfers/balance changes, prioritizing all capabilities and, for SUI/verified coins, sender changes and largest credits/debits. omitted reports the rest. ‘full’: all rows plus typed inputs, resolved arguments and objects by kind; commands page at ~30k chars, non-framework Move calls first. |
commands |
array of integer (at least 0) (at most 100 items) |
no |
Command indices to list with detail:‘full’, e.g. [3, 7], instead of the first page. Where attributable, events narrow to emitting calls and objects to commands taking them or returning their type; events_omitted and object_changes_omitted report exclusions. |
event_offset |
integer (at least 0) |
no |
Where the full-detail event page starts (after any commands narrowing); pages are ~40k chars and events_page.next_call carries the next offset. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: Get transactions
- Profile:
core (default)
- Annotations:
openWorldHint: true, readOnlyHint: true
- Metadata:
anthropic/maxResultSizeChars: 500000
Read 1-50 transaction digests in one call instead of repeated get_transaction calls. Returns sender, status, timing, balance changes, ordered Move targets, decoded event fields and protocols named as in get_transaction. Unread digests appear in not_found. Summary shares about 30k characters across transactions’ events, calls and balances, retaining sender balances; event_count and move_call_count give counts and omitted reports hidden rows. detail: ‘full’ removes display limits. For one transaction or more than 50 events, use get_transaction, which pages events to the end.
| Parameter |
Type |
Required |
Description |
digests |
array of string (1 to 50 items) |
yes |
Transaction digests, Base58 (1-50). Duplicates are collapsed. |
detail |
summary | full |
no |
‘summary’ (default): events, calls and balances share about 30k characters across the batch. ‘full’: every fetched row. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: Query events
- Profile:
forensics
- Annotations:
openWorldHint: true, readOnlyHint: true
Query events by type, sender, emitting module or time/checkpoint range. Event fields are decoded; no hand-written GraphQL is needed. Use a protocol’s own events to measure its flow: whole-PTB balance changes can over-attribute it. For one known transaction, use get_transaction. Pages default to newest first and report order, timestamp bounds and the resolved window. Continue with next_cursor as cursor, preserving order and filters; short service pages are filled to limit, and scan names the continuation if the read budget stops first. Event types use their struct’s defining package ID: upgraded IDs are rewritten and event_type_resolution reports it. Module filters follow the network’s emitting-ID cutover, using the original ID before it and the called version afterward, merging both for crossing windows. module_scope reports the scope and other version IDs; after cutover, one ID covers only that version. Framework packages upgraded in place keep one ID covering the lineage.
| Parameter |
Type |
Required |
Description |
event_type |
string |
no |
Filter by event type (e.g. 0x2::coin::CoinBalanceChange) |
sender |
string |
no |
Filter by transaction sender |
module |
string |
no |
Emitting module or package, e.g. 0x2::coin or 0x2. The window selects original or called-version ID across the network cutover. module_scope reports scope; other_version_ids lists versions a post-cutover ID misses. |
after_checkpoint |
string | number |
no |
Events after this checkpoint number (exclusive), or at/after this ISO 8601 time (inclusive). |
before_checkpoint |
string | number |
no |
Events before this checkpoint number (exclusive), or at/before this ISO 8601 time (inclusive). |
order |
newest | oldest |
no |
‘newest’ (default) starts at the most recent event in range and pages back; ‘oldest’ starts at the earliest and pages forward. |
limit |
integer (1 to 50) |
no |
Max results (default 20, max 50) |
cursor |
string |
no |
next_cursor from the previous page. Pass the same order and filters. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: Query transactions
- Profile:
core (default)
- Annotations:
openWorldHint: true, readOnlyHint: true
Query raw transactions by sender, affected address or object, Move function, or time/checkpoint range. Only one of affected_address, affected_object and function is allowed. Prefer get_transaction_history for readable wallet activity. Pages default to newest first and report order, timestamp bounds and resolved window; pass next_cursor as cursor with the same order and filters. Short service pages are filled to limit within a read budget; scan reports exhaustion and the continuation call. Continue while has_next_page, even with no transactions. A function filter covers only the named package version; function_scope names other versions and all_versions:true merges the whole lineage. Rows wait for each stream’s next rows or exhaustion to establish global order. It matches any PTB containing the call, even one leg among several protocols. Whole-PTB balance changes therefore over-attribute protocol volume. Use include_functions to inspect every Move call, and query_events for a protocol’s own flow.
| Parameter |
Type |
Required |
Description |
sender |
string |
no |
Filter by sender address |
affected_address |
string |
no |
Filter by affected address (sender, sponsor, or recipient). Mutually exclusive with affected_object and function. |
affected_object |
string |
no |
Filter by affected object ID. Mutually exclusive with affected_address and function. |
function |
string |
no |
Filter by Move function (e.g. 0x2::coin::transfer or 0x2::pay). Mutually exclusive with affected_address and affected_object. |
after_checkpoint |
string | number |
no |
Transactions after this checkpoint number (exclusive), or at/after this ISO 8601 time (inclusive). |
before_checkpoint |
string | number |
no |
Transactions before this checkpoint number (exclusive), or at/before this ISO 8601 time (inclusive). |
order |
newest | oldest |
no |
‘newest’ (default) starts at the most recent match and pages back; ‘oldest’ starts at the earliest and pages forward. |
limit |
integer (1 to 50) |
no |
Max results (default 20, max 50) |
cursor |
string |
no |
next_cursor from the previous page. Pass the same order and filters. |
include_functions |
boolean |
no |
List every Move call to expose multi-protocol PTBs. With function, adds total_calls and matched_calls at the filter’s function/module/package granularity, for the named version or all_versions. |
all_versions |
boolean |
no |
With function, merge calls through all lineage versions (default false: named version only). |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |