Check a batch payout before you send it
Paste your batch, or drop its file: a Safe CSV Airdrop file, a Disperse list, an exchange's batch withdrawal or a sheet of payees and amounts. Every address is checked for hidden characters, letters from another alphabet, its checksum and OFAC's sanctions list, and compared with every other address in the batch, so one made to look like another payee's shows up, the trick called address poisoning. It reads the amounts and the tokens too, and gives the file back with a verdict on each row.
The check runs in this page, and nothing you paste is kept. This page may count the visit and a click on Try it on your bills, by its address. What you paste or type is never sent. OFAC's SDN list as of Oct 28, 2026.
- 1. Your batch
- 2. Columns
- 3. What it found
Copy the rows with their column names. In a Disperse list, each line is an address and an amount.
No batch to hand? Try one with made-up payees.
How it works
- It reads the file the way Vestiarion's bill import reads a list, and Safe's CSV Airdrop and Disperse lists as they are. It finds the address, name, amount and token columns by their names, and you can change any match.
- Each address gets the address checker's rules: hidden characters, letters from another alphabet that look like Latin ones, its length, its EIP-55 checksum, OFAC's list, and addresses that are not a wallet, such as a burn address or a USDC contract.
- Every address is compared with every other in the batch. Two that share at least 3 digits at each end, or 5 at one, are made to look alike, and both rows are told to stop: one of the two is very likely not the payee's. A long batch holds such pairs by chance, though: 5,000 addresses hold about two dozen sharing 5 digits at an end. So when a batch its size would hold a pair like it by chance more than once in 100 batches, both rows are to look at instead, saying how often chance does it. Two that share 4 digits at an end are rows to look at.
- It points out the same address on two rows, and one name with two addresses. Paste the addresses you have paid before, and each row is compared with them too.
- Each amount must be a number above zero, with no more decimals than its token has: 6 for USDC and EURC, 18 for a chain's own coin. An amount at least 100 times the median of the token's other amounts is one to look at. Each token's amounts are added up exactly.
- A token contract that is USDC or EURC on a chain Vestiarion knows is named. One made to look like it is a stop, and any other contract is one to look at.
- You can download your batch back, with a last column saying what was found on each row.
What it does not do
- It does not know who owns an address. Nothing found means none of these checks found anything on a row, not that the address is the payee's: confirm a new one with the payee, on a call or to a contact you already had.
- It does not look up ENS names, balances or an address's history, or exposure through mixers: it matches addresses on OFAC's list directly.
- It checks EVM (0x) addresses only, and the first 5,000 rows of a batch. It converts no amount.
- It does not pick what to pay, and sends nothing. For one address, use the address lookalike checker; for a vendor list's names, the OFAC vendor check; for an invoice whose bank details or wallet changed, the invoice details check.
What Vestiarion does with payouts
Vestiarion checks each payee's payout address against OFAC's list and the payee's past addresses, and holds any payment whose address changed until a person confirms it, before it pays. It is an AI agent for bills and payments, and every step is signed into a ledger anyone can verify.
In shadow mode it decides on your real bills while you keep paying them as you do now.