Stablecoin redemption spike alerts
What it is
Stablecoin redemption spike alerts tell an issuer when redemption requests in a single 24-hour period pass 10% of a coin’s outstanding supply; risk teams also call this redemption monitoring.
Under the OCC’s rule for payment stablecoin issuers, crossing that level means notifying the OCC within 24 hours, so treasury and compliance need to know as soon as it happens and have the figures ready.
Goldsky decodes every burn on every chain and streams it to your database, while the requests your redemption system logs before tokens are burned, the rolling 24-hour rule, the alert and the notice stay with your team.
You can build it two ways: stream every burn into your database with Turbo Pipelines and run the 24-hour rule there, or index burns in a hosted subgraph that keeps redemption totals and pushes each change to your backend.
Who it’s for
Payment stablecoin issuers and the platforms that issue coins for other brands, along with their treasury and compliance teams.
How a stablecoin redemption spike alert works
The diagram follows redemptions from holders burning tokens on the chain to your team’s notice to the OCC. Your setup may differ.
Ways to set up stablecoin redemption spike alerts
Streaming lands one row per burn in your database, where your SQL sums any 24-hour window across chains; the subgraph keeps redemption totals on each chain and pushes each change to your backend by webhook, which adds the chains together.
- Best for
- Many chains, with the 24-hour rule in your own SQL
- Products
- Turbo
- What you run
- The destination: your database, queue or bucket, or a Postgres database Goldsky hosts
- What you write
- Pipeline YAML and SQL; TypeScript transforms when needed
- Where your data lives
- In your own database or systems
- How results reach you
- Pushed to you
- Best for
- A few EVM chains, totals pushed to your backend
- Products
- Subgraphs
- What you run
- Nothing; Goldsky runs indexing, storage and the API
- What you write
- A schema and mapping handlers, or a no-code or low-code config for simple contracts
- Where your data lives
- Hosted by Goldsky
- How results reach you
- You query; changes are pushed
| Usual setupOption 1: Stream to your database | Option 2: Hosted subgraph | |
|---|---|---|
| Best for | Many chains, with the 24-hour rule in your own SQL | A few EVM chains, totals pushed to your backend |
| Products | Turbo | Subgraphs |
| What you run | The destination: your database, queue or bucket, or a Postgres database Goldsky hosts | Nothing; Goldsky runs indexing, storage and the API |
| What you write | Pipeline YAML and SQL; TypeScript transforms when needed | A schema and mapping handlers, or a no-code or low-code config for simple contracts |
| Where your data lives | In your own database or systems | Hosted by Goldsky |
| How results reach you | Pushed to you | You query; changes are pushed |
Holders redeem tokens
A holder cashes out by redeeming tokens with the issuer, and the redeemed tokens are burned.
Each burn lowers supply on the chain where it happens, and a run on the coin shows up as many burns across chains at once. For a short time the newest blocks can still be rewritten, so a burn seen once isn’t final yet.
Decode every burn
Handled by Goldsky TurboEach redemption has to become a record with its amount, chain, time and transaction before it can be counted.
Every chain the coin is on has to be covered, with amounts kept at full precision. A chain left out makes the 24-hour total look smaller than it is.
With Goldsky, one Turbo Pipelines pipeline can read your token’s burns on each chain, from its burn events or from the curated transfers dataset where the recipient is the zero address, and combine the chains with
Read burns from EVM sources (opens in a new tab)UNION ALL.Stream each redemption to your database
Handled by Goldsky TurboThe 24-hour rule is a query, so every redemption has to be a row in a database it can read.
Rows need a stable ID, so a repeated delivery overwrites instead of counting twice. Carrying the supply at the burn’s block on each row gives the rule the figure it’s measured against.
Turbo Pipelines writes each burn to a database table keyed on
Set up the Postgres sink (opens in a new tab)id, and_gs_eth_callcan add the token’stotalSupply()at the same block to the row.Correct redemptions undone by a reorg
Handled by Goldsky TurboSometimes a chain replaces its newest blocks (a reorg), and a burn you counted can disappear.
The 24-hour total has to follow the chain, or a reorg can push it over the threshold on burns that didn’t happen.
Reorg corrections come through Turbo Pipelines as updates and deletes, and a database sink with a
How reorgs reach your sinks (opens in a new tab)primary_keyapplies them to the same rows.Check the rolling 24-hour total
The rule is about a window, so something has to add up the last 24 hours again and again.
Run a query on a schedule that sums the redemption requests your redemption system logged over the last 24 hours, checked against the burns across chains, divides by outstanding supply measured the way your policy and counsel set, and alerts your team when it passes 10%. The rule counts requests received, and burns can come later, so burns alone can miss a breach in progress. How often it runs sets how late you can hear about a breach.
Notify the OCC within 24 hours
Once redemptions pass the threshold, the issuer has 24 hours to tell the OCC.
Treasury and compliance confirm the figures, then file the notice with the redemptions behind it. Waiting for the next daily report to spot the breach can use up most of that time.
What to know about streaming redemptions to your database
- Goldsky lands the rows; the rolling 24-hour sum, the threshold and the alert run in your database and scheduler.
- How soon you hear about a breach depends on how often your query runs.
- Tables keyed on the row ID take reorg corrections as updates and deletes, so a burn a reorg undoes drops out of the sum.
- The same rows support the notice: the query that fired can list every redemption behind it.
Holders redeem tokens
A holder cashes out by redeeming tokens with the issuer, and the redeemed tokens are burned.
Each burn lowers supply on the chain where it happens, and a run on the coin shows up as many burns across chains at once. For a short time the newest blocks can still be rewritten, so a burn seen once isn’t final yet.
Define the redemption records
The subgraph has to know which events are burns and how to add them up.
The schema sets the records, such as one per burn and one per hour of redemptions, and the mappings fill them in. Hourly records let your backend sum any 24 hours without reading every burn.
Index every burn and keep the totals
Handled by Goldsky SubgraphsEach burn has to be counted as soon as it’s indexed, so the totals stay current.
Indexing starts at the contract’s deployment block, so redemption history is complete. A start block set too late leaves the totals short with no error.
Goldsky Subgraphs runs your mappings on each chain, deployed with
Deploy a subgraph to Goldsky (opens in a new tab)goldsky subgraph deploy, and keeps each index current as new blocks arrive.Push each change to your backend
Handled by Goldsky SubgraphsYour backend needs to hear about new redemptions without querying every chain on a timer.
Each change has to arrive with enough detail to tell a new burn from a rollback after a reorg (the chain replacing its newest blocks). A backend that treats a rollback as a new burn counts it twice.
Subgraph webhooks send an
Set up subgraph webhooks (opens in a new tab)INSERT,UPDATEorDELETEpayload for each entity change, and each version carries ablock_rangethat marks rollbacks.Check the rolling 24-hour total
The rule is about a window, so something has to add up the last 24 hours again and again.
Your backend sums the redemption requests your redemption system logged over the last 24 hours, checked against the burns across every chain, divides by outstanding supply measured the way your policy and counsel set, and alerts your team when it passes 10%. The rule counts requests received, and burns can come later, so burns alone can miss a breach in progress. If one chain’s webhooks stop arriving, the burn figures look smaller than they are, so watch for gaps too.
Notify the OCC within 24 hours
Once redemptions pass the threshold, the issuer has 24 hours to tell the OCC.
Treasury and compliance confirm the figures, then file the notice with the redemptions behind it. Waiting for the next daily report to spot the breach can use up most of that time.
What to know about watching redemptions with a subgraph
- Each chain has its own subgraph, so your backend adds the chains together for the 24-hour total.
- Your mapping code decides how redemptions are bucketed, and changing it means deploying and indexing again.
- The webhook sends every change, and a rollback after a reorg arrives as a change to the record’s
block_range, which your backend has to apply. - The rule, the threshold and the alert run in your backend.
What you control
- Your team
- Check the rolling 24-hour total
- Notify the OCC within 24 hours
Security and deployment
- SOC 2 Type IIIndependently audited security controls.
- Dedicated infrastructureSingle-tenant options for production workloads.
- Data residencyCloud, on-premises or co-located.
More use cases that track supply and reserves
- Proof of reserves for stablecoinsKeep a per-chain record of mints, burns and supply, and check it against reserves.
- Stablecoin mint and redemption monitoringRecord every mint and redemption of a stablecoin as it happens, on every chain.
- Continuous proof of reservesCompare onchain supply with reported reserves on a schedule, then publish the ratio or alert on a gap.
- Daily stablecoin supply by chain for PS-01 reportsKeep the daily per-chain supply, issued, redeemed, issuer-held, frozen and lost figures that feed the weekly OCC PS-01 report.
- Month-end stablecoin supply for reserve reportsProduce the month-end supply across all chains that the monthly reserve report and its examination need.
- MiCA daily usage cap for stablecoinsTrack the quarterly average of daily transactions and their value against the 1M transactions and €200M a day limits, and warn well before an issuer must stop issuing.
- Supply data for stablecoin issuance platformsGive an issuance platform one view of supply across every coin and chain it runs.
- Stablecoin depeg and manipulation alertsAlert the issuer when its coin trades off peg in its own pools or pool activity looks like manipulation, on every chain it runs on.
- Tokenized money market funds in stablecoin reservesTrack stablecoin reserves held as tokenized money market fund shares and check them against the reserve record.
Use cases built the same way
- Confirm x402 and agent stablecoin paymentsConfirm stablecoin payments that AI agents make, often per request, and keep each agent within its spending limits.
- Sponsored gas spendTotal the gas you pay for your users per user, paymaster and day, watch the paymaster’s deposit and check the provider’s bill.
- Keep tokenized stocks backed one to oneCheck token supply on every chain against the shares or fund units held in custody, and alert on any gap.
- Crypto market surveillance for tokenized securitiesWatch trading in tokenized securities for manipulation and other market abuse.
Set up stablecoin redemption spike alerts with Goldsky
We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.