Stablecoin Payments API
Bitquery's Stablecoin Payments API exposes real-time and historical payment flows for USDT, USDC, FDUSD, EURC, DAI, TUSD, USDS, USD1, USDD and other major stablecoins across Solana, Ethereum, Tron, BSC, Base, Arbitrum, Polygon and more — through a single GraphQL endpoint. This page focuses on payment-oriented use cases (incoming/outgoing transfers, merchant detection, address monitoring, AML/compliance). For related capabilities, see the Stablecoin Transfers API, Stablecoin Balance API, Stablecoin Trades API, Stablecoin Reserve API and Stablecoin Price API.
All examples below are runnable in the Bitquery IDE. Streams are delivered over WebSocket / Kafka subscriptions; historical queries use the same schema over HTTP. For pre-built stablecoin dashboards (top tokens, flows, market activity), browse the DEXrabbit Stablecoins dashboard.
Stablecoin Payment API Examples
1. Listening to All USDT and USDC Payments on Solana
This GraphQL stream provides live USDT and USDC stablecoin transfers on Solana.
🔗 Stream Example 🔗 API Example
subscription {
Solana {
Transfers(
where: {
Transfer: {
Currency: {
MintAddress: {
in: [
"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
]
}
}
}
}
) {
Transfer {
Amount
AmountInUSD
Sender {
Address
Owner
}
Receiver {
Address
Owner
}
Currency {
Symbol
Name
MintAddress
}
}
Instruction {
Program {
Method
}
}
Block {
Time
Height
Slot
}
Transaction {
Signature
Signer
Fee
FeeInUSD
FeePayer
}
}
}
}
2. Multi-Chain Stablecoin Payments
Listen to stablecoin payments across all major blockchains. The Mempool option lets you detect a payment before it is confirmed — useful for instant merchant UX.
| Blockchain | API | Stream | Mempool |
|---|---|---|---|
| Tron | API | Stream | Mempool |
| Ethereum | API | Stream | Mempool |
| BSC | API | Stream | Mempool |
| Base | API | Stream | Not Available |
Mempool feeds are produced by simulating transactions on top of the current block.
3. Listening to USDT Payments on Tron (stream)
This subscription streams USDT (TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t) transfers on Tron — the highest-volume stablecoin payments network globally.
subscription {
Tron(network: tron) {
Transfers(
where: {Transfer: {Currency: {SmartContract: {is: "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}}}}
) {
Transaction {
Hash
}
Transfer {
Amount
Currency {
Name
Symbol
}
Receiver
Sender
}
}
}
}
4. Stablecoin Payments For a Specific Address (Tron)
Listen to USDT sent or received by address TUTQj7VJ1QjR3t2GJByvrP25yZNFcj38VJ. This is the canonical "merchant/treasury wallet monitor" pattern — fan-out one subscription per wallet and route hits to your payments backend.
subscription {
Tron {
Transfers(
where: {any: [{Transfer: {Sender: {is: "TUTQj7VJ1QjR3t2GJByvrP25yZNFcj38VJ"}}}, {Transfer: {Receiver: {is: "TUTQj7VJ1QjR3t2GJByvrP25yZNFcj38VJ"}}}], Transfer: {Currency: {SmartContract: {is: "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"}}}}
) {
Transaction {
Hash
}
Transfer {
Amount
AmountInUSD
Sender
Receiver
}
}
}
}
For the equivalent on Solana, see the Stablecoin Transfers API → Stablecoin received and sent by an address.
5. Stablecoin Payments For a Specific Address (BSC)
Filter incoming USDT and USDC payments to a single BSC receiver across both stablecoin contracts in one subscription.
subscription {
EVM(network: bsc) {
Transfers(
where: {
Transfer: {
Receiver: { in: ["0x443fa7bbf35c09ee0ebb5e15f1ea3f0704b89d04"] }
Currency: {
SmartContract: {
in: [
"0x55d398326f99059ff775485246999027b3197955"
"0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d"
]
}
}
}
}
) {
Block {
Time
Number
}
Transfer {
Sender
Receiver
Amount
AmountInUSD
Currency {
Name
Symbol
SmartContract
}
}
Transaction {
Hash
From
To
}
}
}
}
6. Stablecoin Payments Stream on Ethereum
A single-contract USDC payments stream on Ethereum mainnet. Swap the SmartContract for 0xdAC17F958D2ee523a2206206994597C13D831ec7 to get USDT, or extend with an in: [...] list to multiplex stablecoins.
subscription {
EVM(network: eth) {
Transfers(
where: {Transfer: {Currency: {SmartContract: {is: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}}}}
) {
Transaction {
Hash
}
Transfer {
Amount
Currency {
Name
Symbol
}
Receiver
Sender
Type
}
}
}
}
For the full transfer schema (mint/burn detection, Type, dataset selection), see the Stablecoin Transfers API.
Compliance & Risk Checks
For AML/KYC and risk monitoring, you can analyze a payment counterparty's lifecycle on the asset — first and last activity dates, total change count, and current balance — in a single query.
The Holders cube does not break activity down by direction. For separate inbound and outbound counts or amounts, aggregate the Transfers cube by Transfer.Sender / Transfer.Receiver instead.
{
EVM(dataset: archive, network: eth) {
Holders(
date: "2025-08-25"
where: { Currency: { SmartContract: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } },
Holder: {
Address: { is: "0x72187db55473b693ded367983212fe2db3768829" }
}
}
) {
Holder {
Address
}
Balance {
UpdateCount
FirstChangeTime
LastChangeTime
Amount
}
}
}
}
To verify the live balance of a payer/payee on any chain, see the Stablecoin Balance API (Solana, Ethereum and Tron examples included).
Confirming the Sender's Solvency Before Settlement
Before releasing goods or off-ramping a stablecoin payment, you may want to verify the sender actually held the asset at the moment of transfer. Use the Stablecoin Balance API to fetch a wallet's current stablecoin balance per chain. For supply-side checks (e.g. confirming an issuer mint backed an inbound payment), use the Stablecoin Reserve API.
Payment Analytics
1. First-Time Stablecoin Receivers
Identify addresses receiving stablecoins for the first time on a given date — useful for new-customer attribution and onboarding analytics.
{
EVM(dataset: archive, network: eth) {
Holders(
limit: { count: 1000 }
date: "2025-08-25"
where: { Currency: { SmartContract: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } }, BalanceUpdate: { FirstDate: { is: "2025-08-25" } } }
) {
Holder {
Address
}
}
}
}
2. Last-Time Stablecoin Receivers
Identify addresses that last received USDT on a specific date — useful for churn detection and dormant-wallet analysis.
{
EVM(dataset: archive, network: eth) {
Holders(
orderBy: { descending: Balance_Amount }
limit: { count: 1000 }
date: "2025-08-25"
where: { Currency: { SmartContract: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } }, BalanceUpdate: { LastDate: { is: "2021-01-01" } } }
) {
Holder {
Address
}
Balance {
FirstChangeTime
LastChangeTime
Amount
}
}
}
}
3. Top Stablecoin Holders
Find top holders of USDT on Ethereum, with current balance and activity history (first change, last change, total change count). For directional inflow/outflow totals, aggregate the Transfers cube by sender and receiver. The Stablecoin Balance API covers the same pattern on Solana.
{
EVM(dataset: archive, network: eth) {
Holders(
orderBy: [{ descending: Balance_Amount }]
limit: { count: 100 }
date: "2025-08-25",
where: { Currency: { SmartContract: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } } }
) {
Holder {
Address
}
Balance {
UpdateCount
FirstChangeTime
LastChangeTime
Amount
}
}
}
}
Pricing Stablecoin Payments Accurately
For high-value or cross-border payments, even a 20–50 bps deviation from the peg materially changes settlement value. Use the Stablecoin Price API to:
- Stream the latest price of USDT/USDC/DAI/USDS at 1-second intervals.
- Compare prices across chains to mark the payment to its true on-chain rate.
- Monitor peg health per DEX/market to catch a depeg before it hits your treasury.
For depeg detection at the trade level (alerting when any trade prints outside 0.95–1.05), see the Stablecoin Trades API → Depeg tracking streams.
Asset-Specific Guides
For deep-dives on a single asset (price + payments + trades + reserves + balances curated together), see USDT API.
Why Use Bitquery for Stablecoin Payments?
- Real-time streams (WebSocket & Kafka) for instant detection.
- Mempool visibility on Tron, Ethereum and BSC for pre-confirmation UX.
- Webhook support to integrate with your payment systems.
- Compliance-focused APIs for AML/KYC and risk analysis.
- Multi-chain coverage across Solana, Ethereum, Tron, BSC, Base, Arbitrum, Polygon and more.
Bitquery enables faster, compliant, and scalable stablecoin payment solutions for businesses, fintechs, and governments.