Querying Contracts
Thexyz program query command reads contract state without submitting a transaction. Queries are free and instant.
Usage
Arguments
| Argument | Description |
|---|---|
contract | Contract address |
message | JSON query or @file.json |
Basic Query
Options
| Flag | Description | Default |
|---|---|---|
--raw | Compact JSON (no formatting) | false |
--node | RPC endpoint | config |
Query Formats
Inline JSON
With Parameters
From File
Output Formats
Pretty (Default)
Raw (Compact)
--raw for piping to other tools:
Common Query Patterns
Single Value
Address Parameter
Paginated List
With Start After
CW20 Token Queries
Token Info
Balance
Minter
All Accounts
Scripting
Extract Value
Monitor State
Conditional Logic
Query vs Execute
| Aspect | Query | Execute |
|---|---|---|
| State Change | No | Yes |
| Transaction | No | Yes |
| Gas Cost | Free | Paid |
| Speed | Instant | Block time |
Error Handling
Contract Not Found
Invalid Query Message
QueryMsg enum for valid query names.
Query Error from Contract
Troubleshooting
Unknown query variant
Unknown query variant
Check your contract’s QueryMsg:Note: Rust
GetCount becomes JSON get_count (snake_case).Invalid JSON
Invalid JSON
Validate your query:
Empty response
Empty response
The contract may return empty for non-existent data. Check if the item exists first.