Analysts
Research large movements, mints and burns without wading through every small transfer. Start from the feed, open a transfer, and take the transaction hash to Etherscan or your own tools.
Reading transfer detailsStablecoin Whale Monitor records large stablecoin transfers after 6 block confirmations, keeps them for 7 days, and links each one to its on-chain record so you can verify it yourself.
The indexer reads Transfer logs from the USDC and USDT contracts 6 blocks behind the chain tip and records every transfer of 100,000 tokens or more.
Narrow the feed by token, a higher minimum amount, or one address on either side of the transfer. Each view has its own link you can share.
Open a transfer for the exact amount, raw base units, block, log index and the time it was recorded. Look up a transaction to see all of its qualifying transfers.
Every transaction, address and block links to Etherscan, so you can check each record against the chain yourself.
Research large movements, mints and burns without wading through every small transfer. Start from the feed, open a transfer, and take the transaction hash to Etherscan or your own tools.
Reading transfer detailsFollow an address you care about. The address filter matches the sender or the receiver, and the link keeps the filter, so a teammate opens exactly the same view.
Filtering by addressRead the same records from a small read-only JSON API with exact decimal amounts, raw base units, cursor pagination and a health endpoint that reports freshness.
API referenceA transfer appears in the monitor after the confirmation buffer plus the indexer and API refresh intervals. That is usually under three minutes after its block, not instantly.
The monitor runs on the same public endpoints you can call. Responses are JSON from the same origin as the site. No key is required.
GET /api/transfers newest first, filter by token, minimum amount or address, 1 to 50 per pageGET /api/transfers/{txHash} every retained qualifying transfer in one transactionGET /api/health index freshness and chain progresscurl "https://swm.josephdara.com/api/transfers?token=USDT&minimumAmount=250000&limit=1"
{
"items": [{
"chain": "ethereum", "chainId": 1,
"token": "USDT",
"tokenContract": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"from": "0x818319478da6bd0c621de49f145fda9988c79fc3",
"to": "0x5526f7eaed46725a2a7b860dcd6c8a1f8b46287c",
"amount": "2750000.5",
"rawAmount": "2750000500000",
"threshold": "100000",
"blockNumber": 26248680,
"blockTimestamp": "2026-10-22T13:52:59.000Z",
"logIndex": 257,
"transactionHash": "0xced9041d…6fd287db7",
"transactionStatus": "success",
"transferType": "normal",
"detectedAt": "2026-10-22T13:54:41.512Z"
}],
"nextCursor": "eyJrZXkiOiIxOjB4Y2VkOTA0…",
"total": 312,
"counts": { "USDC": 0, "USDT": 312 },
"refreshedAt": "2026-10-22T14:02:31.204Z"
}Hash and cursor shortened for display. Real responses return full values.
An indexer on a single Cloud Run worker pool instance and a read-only API on Cloud Run, behind one HTTPS load balancer with the static site.
Events land as deterministic NDJSON objects in a private Cloud Storage bucket. The checkpoint advances only after its range is written.
Cloud Armor rate limits the API per IP, the API accepts traffic only from the load balancer, and TLS 1.2 is the minimum.
One service account per workload, the RPC URL in Secret Manager, Terraform for infrastructure, and approval-gated deploys of immutable image digests.