Solana Transactions API examples
The Solana Transactions API returns transaction-level data on Bitquery V1 — fee payer, signer, transaction fee, success or failure, instruction and inner-instruction counts, signature, and full block context — across the entire historical chain. Use it for fee analysis, wallet activity reporting, audit and reconciliation, operations dashboards, and as a complement to the Solana transfers API when you need transaction-level metadata rather than per-transfer rows.
Looking for parsed instructions, program IDs, or DEX swap decoding? Those have moved to the V2 Solana Instructions API — see also V1 vs V2.
Use cases at a glance
- Fee analysis and capacity planning — transactions in a date range, paid by a specific fee payer
- Wallet activity and operations — a wallet's signed transactions in a window
- Audit and reconciliation — pair with transfers to attach fees, success status, and signer to every booked movement
- Failure analytics and debugging — filter to failed transactions
- Sponsored transactions — find transactions where fee payer ≠ signer
Get Solana transactions in a date range
Fetch Solana transactions within a precise UTC time window. Returns fee payer, instruction counts, success flag, and transaction signature for each transaction. Run query.
Variations: Adjust the time range as needed. Add signer: {is: "..."} to filter by wallet. Use success: {is: true} to exclude failed transactions, or success: {is: false} to focus on failures. Add limit/offset and sort for pagination and ordering.
query MyQuery {
solana {
transactions(
time:{since:"2025-07-25T00:00:00Z" till:"2025-07-25T01:00:00Z"}
options: {limit: 10, desc: ["transactionIndex", "block.height"]}
) {
block {
hash
height
timestamp {
iso8601
}
}
feePayer
instructionsCount
innerInstructionsCount
recentBlockHash
signature
success
transactionFee
transactionIndex
}
}
}
Solana transactions for a wallet (signer) in a date range
Get all transactions signed by a specific wallet within a time window using the signer filter. Returns instruction counts, fees, success status, and block details. Useful for wallet activity reports, billing reconciliation, and per-user analytics. Run query.
Variations: Change the signer address and time range. Add feePayer: {is: "..."} if the fee payer differs from the signer. Use success: {is: false} to find failed transactions. Combine with the transfers API to attach the actual SOL/SPL movements.
query MyQuery {
solana {
transactions(
time: {since: "2025-07-19T01:00:00Z" till:"2025-07-19T21:00:00Z"}
options: {limit: 100, desc: ["transactionIndex", "block.height"]}
signer: {is: "9vKgXDW6N3S4QDdqswq7m9U9eWp839HanvQ7RhUTtKZ1"}
) {
block {
hash
height
timestamp {
iso8601
}
}
feePayer
instructionsCount
innerInstructionsCount
recentBlockHash
signature
success
transactionFee
transactionIndex
}
}
}
Failed Solana transactions in a window
Filter to failed Solana transactions only. Useful for debugging stuck workflows, monitoring contract or relayer health, and surfacing user error patterns. Open in IDE.
Variations: Add signer: {is: "..."} to focus on a single wallet, or feePayer: {is: "..."} to track relayer/protocol fee-payer failures. Adjust the time window for incident postmortems.
{
solana(network: solana) {
transactions(
time: {since: "2025-07-25T00:00:00Z", till: "2025-07-25T01:00:00Z"}
success: {is: false}
options: {limit: 50, desc: ["block.height", "transactionIndex"]}
) {
block {
height
timestamp { iso8601 }
}
signer
feePayer
transactionFee
instructionsCount
innerInstructionsCount
signature
success
}
}
}
Distinguish fee payer from signer
Find transactions where the fee payer is different from the signer — common for sponsored transactions, relayer architectures, and dapp-funded user flows. Useful for cost attribution, treasury controls, and protocol-fee analytics.
Variations: Replace the feePayer address with your relayer or treasury wallet. Combine with transfers to attribute net flow to the funded users.
{
solana(network: solana) {
transactions(
time: {since: "2025-07-01", till: "2025-07-31"}
feePayer: {is: "FeePayerWalletAddressHere"}
success: {is: true}
options: {limit: 100, desc: ["block.height", "transactionIndex"]}
) {
signer
feePayer
transactionFee
signature
instructionsCount
block { height timestamp { iso8601 } }
}
}
}
Related Resources
- Solana transfers API examples — full historical SOL and SPL transfer rows, including bulk export to S3 + Parquet
- Solana address API examples — wallet balance and multi-address lookups
- Solana schema overview
- Solana transactions schema
- Solana Coinpath schema
- V1 vs V2 API and cloud data — where Solana instruction- and DEX-level data lives
- Getting started with the GraphQL IDE