Secondary-market sanctions sweeps for token issuers
What is a secondary-market sanctions sweep?
A secondary-market sanctions sweep, sometimes called token holder screening, is checking every wallet that holds or moves your stablecoin or token against sanctions lists, including wallets that never became your customers.
Stablecoin and token issuers run sweeps because their tokens pass from wallet to wallet well beyond the customers they onboarded, so a listed wallet can hold them without the issuer ever dealing with it.
Goldsky keeps each holder’s balance of your token current in your database, so your database can check every holder whenever the list changes, and screens each new transfer against your list; the list, the review and any freeze stay with your team and your token contract.
Who runs a secondary-market sanctions sweep?
Stablecoin issuers, banks and fintechs with their own branded stablecoin, and the issuance platforms that run tokens for them.
How a sanctions sweep of your token’s holders works
This chart runs from a sanctions list update to a freeze on a listed address, where your token contract supports one, with the holder check and the transfer screen side by side. Your setup may differ.
Update the sanctions list
The sweep checks holders against the list, so a new listing is what usually starts one.
Your sanctions data provider supplies newly listed addresses, and your loading job writes them, in one address format, to the table your screening reads. A listing that waits for someone to copy it over by hand leaves listed holders unchecked until then.
Your token moves between any two wallets
Holders change every day, and any transfer can put your token in a listed wallet.
Anyone holding the token can send it on without asking you, including to a wallet that’s on the list or about to be. Transfers in the newest blocks can still be replaced for a short time (a reorg), so one seen once isn’t final.
Keep each holder’s balance in your database
Handled by Goldsky TurboTo know who holds your token right now, you need every transfer that has moved it, added up per wallet and kept current.
The history has to start at the token’s first block and then follow each new block, so balances add up to the supply. A gap leaves some holders with wrong balances and others missing entirely, and the newest blocks can still be replaced for a short time (a reorg), so a transfer from a replaced block has to come back out of the balance.
With Goldsky, a Turbo Pipelines pipeline that starts from the
Keep running balances in your database (opens in a new tab)earliestblock reads your token’s past transfers and then each new one, and itspostgres_aggregatesink, which writes to a Postgres database, keeps a runningsumper wallet of what it received minus what it sent. When a reorg removes a transfer, the sink takes it back out of the balance, as long as the pipeline’s SQL keeps the_gs_opcolumn.Screen each new transfer
Handled by Goldsky TurboThe holder check runs when the list changes, so a listed wallet sending or receiving your token in between has to be caught when it happens.
The sender and the recipient of every transfer of your token are compared with the same list, and a match raises an alert with the transaction, the amount and which side matched. Alerts go out when a transfer is seen, before it’s final, so the receiver has to apply a correction if a reorg later removes the transfer.
Goldsky’s Turbo Pipelines can check both sides of every transfer of your token against a dynamic table with
Match addresses with dynamic tables (opens in a new tab)dynamic_table_check()and post each hit to your case tool through a webhook sink. Insert a newly listed address and the running pipeline starts matching it.Check every holder against the list
A holder is any wallet with a balance above zero, and each one has to be compared with the list.
Each time the list changes, your database joins the wallets that hold a balance to it. Because the balances follow the chain block by block, a check runs against today’s holders rather than an old copy.
Decide the action on each hit
A match tells you a listed wallet touched your token; what to do about it is a policy decision.
Your compliance team confirms the match, records its reasoning and decides whether to freeze, report or take no action, under your policy and the rules that apply to you. Freezing the wrong address locks a holder out of their funds, so each decision needs a named approver, and a proposed FinCEN and OFAC rule would have US issuers make the certifications of their anti-money laundering program available to FinCEN on request.
Freeze the listed address
A freeze stops a listed wallet from moving the token it holds.
Your token contract carries out the freeze where it has a freeze or blocklist function, and the freeze is itself a transaction recorded onchain. If the contract has no such function, a freeze isn’t available, and your policy has to say what happens instead.
What you control
- Your team
- Check every holder against the list
- Decide the action on each hit
- Your providers
- Screening provider
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 monitor transactions
- Compliance monitoringScreen wallets and transfers, watch for misuse of your assets and feed your AML and surveillance tools.
- Securities surveillanceScreen wallets and transfers, watch for misuse of your assets and feed your AML and surveillance tools.
- Crypto wallet screening and sanctions dataFlag transfers that touch sanctioned or high-risk addresses.
- Data for crypto AML transaction monitoringFeed complete transfer data to AML tools with lineage from the chain to the case.
- Unauthorized tokenization monitoringFind tokens that claim to represent your security without your consent.
- Smart contract and wallet monitoringWatch your contracts and wallets for attacks and unexpected changes.
- Blockchain forensics data feedGive investigators full history and traces across chains.
- VASP and counterparty due diligence dataProfile a VASP, issuer or counterparty by its onchain exposure before onboarding it and while the relationship lasts.
- Crypto source of funds and wealth checksTrace where a client’s onchain funds came from to document legitimate wealth at onboarding.
- Token listing due diligence for exchangesCheck a token’s supply, holders, liquidity and risky links before an exchange lists it, and after.
- Crypto scam and money mule detection dataFlag payments to scam-linked wallets and customer accounts that act as money mules.
- Crypto wallet monitoringGet an alert when a watched wallet makes a large transfer, crosses a balance limit, wakes after dormancy or pays an unknown counterparty.
- Address poisoning detectionFlag the zero-value, dust and fake-token transfers that lookalike addresses plant in a user’s history, and warn before anyone pays one.
- Onchain supervisory monitoring for regulatorsGive examiners one view of licensed firms’ onchain activity to test against what the firms report.
Use cases built the same way
- Wrapped bitcoin reserve monitoringCheck a wrapped bitcoin token’s supply on every chain against the BTC at its custodian’s reserve addresses, and alert on any gap.
- Confirm x402 and agent stablecoin paymentsConfirm stablecoin payments that AI agents make, often per request, and keep each agent within its spending limits.
- 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.
- 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.
Run a secondary-market sanctions sweep 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.