ByAUJay
Stablecoin Reserve Transparency: Building Attestation‑Friendly Dashboards
A Practical Playbook for Designing Reserve-Transparency Dashboards
Creating reserve-transparency dashboards can be a game-changer for cutting down audit cycles, meeting the latest U.S. and EU regulations, and building trust with your enterprise clients. In this guide, we'll dive into the nitty-gritty of data models, specific APIs for different chains, attestation workflows, and effective control designs that your auditors will appreciate.
Key Areas We’ll Cover
- Data Models: Understand how to structure your data for maximum clarity and compliance.
- Chain-Specific APIs: Learn which APIs work best with different blockchain technologies.
- Attestation Workflows: Get the lowdown on the processes that will keep your records in check.
- Control Design: Discover how to create controls that not only look good on paper but actually help auditors feel confident in their assessments.
By the end of this playbook, you’ll be equipped with practical insights to ensure your dashboards are not just compliant, but also trusted by everyone involved.
Why this matters now
- In the U.S., the GENIUS Act officially went into effect on July 18, 2025. This law requires payment-stablecoin issuers to keep 100% liquid reserves and disclose these reserves publicly every month. This really cranks up the standards for dashboards, as they need to withstand both regulatory and investor scrutiny. Check it out here: (whitehouse.gov).
- Over in the EU, both ESMA and the European Commission are putting pressure on CASPs to get in line with MiCA’s stablecoin classifications (ARTs/EMTs) by the end of Q1 2025. The EBA has rolled out some fresh technical standards that lay out tougher liquidity requirements and “significant token” thresholds--each with specific percentages and metrics that your dashboard needs to reflect. More details can be found here: (esma.europa.eu).
- New York’s Department of Financial Services (DFS) is still leading the way by requiring monthly attestations that meet AICPA standards and T+2 redemption policies for USD-backed stablecoins. This has become a key reference point for what solid attestation evidence should look like. You can read more about it here: (dfs.ny.gov).
The bottom line is this: if your reserve dashboard isn’t “attestation-ready,” you’re going to slow down audits, raise eyebrows from regulators, and potentially shake the confidence of your counterparties.
What auditors really need to see (and how to show it)
Most stablecoin attestations in the U.S. follow the AICPA attestation standards, specifically SSAE. When examiners dive into the process, they typically focus on a few key things:
1) A complete, reconciled picture of liabilities
Alright, here's what you need to cover: the total outstanding tokens for each blockchain as of the attestation dates, which is the end of the month plus at least one randomly chosen business day. You can find more on this here.
How to compute on-chain:
- Ethereum (and other EVM chains): You’ll want to call the ERC-20
totalSupply(or check the Etherscan “tokensupply” API) and make sure to note the block height and timestamp. For example, you can use this GET request:GET /v2/api?module=stats&action=tokensupply&contractaddress=<token>&chainid=1Check out more details here.
- Historical snapshots: You can pull this info using Etherscan’s “tokensupplyhistory” by specifying the exact block number for each attestation day. More info on that can be found here.
- TRON (TRC-20): For TRON, you can use the TronScan
totalSupplyor the TronGrid/Tron dev API to triggertotalSupply(). Don’t forget to save the latest confirmed block. You can dive deeper into this here. - Solana (SPL): To get the token supply, use the
getTokenSupplyRPC for the mint and remember to store the slot and commitment level. More details are available here.
A Complete, Reconciled Picture of Assets
- Let’s break down your cash, T-bills, and repo balances by custodian or account. Don't forget to include any government money market fund positions you have. If you're using the Circle-style fund structure, make sure to link to the daily holdings file--like BlackRock’s USDXX. Also, grab a snapshot of the Weighted Average Maturity (WAM) and Weighted Average Life (WAL), along with those daily or weekly liquid assets. Check it out here: (blackrock.com).
- If you're doing NYDFS-style monthly attestations, you’ll want to prove that your reserve asset types and custody setups are in line with DFS's requirements. This includes having Treasury bills with less than three months to maturity, overnight Treasury repos, government money market funds that stay under the caps, and deposits that comply with concentration limits. More info can be found at (dfs.ny.gov).
3) Management Assertions and Independent Assurance Trail
- Make sure you have a secure, tamper-proof archive that includes on-chain supply snapshots, bank/MMF statements, trade confirmations, and your management's reserve reconciliation for each attestation date. Auditors will check both the end of the period and at least one random day in between. (dfs.ny.gov)
- Get ready for different types of exams: you might face an Examination (AT‑C; positive assurance) or an AUP (fact-finding) under SSAE, so make sure you plan your evidence accordingly. (aicpa-cima.com)
Pro tip: consider setting up an “Auditor Mode” in your dashboard. This should include read-only access, with views that are locked to specific periods, plus downloadable evidence packs (CSV/JSON + PDFs) linked to each control test.
A blueprint for an attestation‑friendly reserve dashboard
Design Your Data Model and Interfaces for Auditing
Getting your data model and interfaces right for how auditors test things is super important. Once you nail that down, the rest--like investor relations, business development decks, and exchange listings--becomes a whole lot simpler.
Key Components
- Data Model
- Start by defining the core entities you’ll need. This might include:
- Auditor: Details about who’s doing the auditing.
- Client: Information about the companies being audited.
- Financial Records: All relevant documents and data points.
- Policies and Procedures: The rules you follow during the audit process.
- Start by defining the core entities you’ll need. This might include:
- Interfaces
- Think about what your user interface needs to look like. You’ll want it to be:
- User-Friendly: Auditors should be able to navigate easily.
- Responsive: Make sure it works smoothly on different devices.
- Customizable: Different auditors might need different views or data.
- Think about what your user interface needs to look like. You’ll want it to be:
Workflow Diagram
Here's a simple representation of how data flows in your system:
[Auditor] → [Data Input] → [Data Model] → [Auditing Interface] → [Results]
Benefits
- Streamlined Processes: With a solid data model, everything else, from investor relations to business development decks, will benefit from smoother operations.
- Fewer Errors: A well-structured interface helps minimize mistakes during the auditing phase.
- Easier Reporting: Once the audit data is clean and accessible, generating reports for stakeholders becomes a piece of cake.
By focusing on how auditors test, you're laying a strong foundation for everything else down the line. It’s all about making life easier for everyone involved!
- Reserve-liability reconciliation model
- Entities:
- TokenSupplySnapshot: { chain, contract/mint, block_height (or slot), timestamp_utc, total_supply_raw, decimals, total_supply_ui }
- ReservePosition: { asset_type, issuer, CUSIP/ISIN, custodian, fair_value, currency, maturity, bucket (daily/weekly), haircut_policy }
- Reconciliation: { period_end_date, random_day_date, total_reserves_fv, total_liabilities_ui, excess_reserves, fx_basis_if_any }
- Keys:
- We're making sure our assertions meet regulatory standards (think GENIUS Act monthly public composition, NYDFS monthly AICPA exam, and MiCA liquidity buckets). (reuters.com)
2) Chain‑Aware Supply Capture
Ethereum/EVM:
- Primary: Make a direct RPC call to
totalSupplyat a block height close to 23:59:59 UTC. Don’t forget to cross-check this with Etherscan’stokensupplyandtokensupplyhistory. - Archive: If your node allows it, keep track of the block number along with the Merkle proof. You can always recompute later for re-performance testing. Check out the Etherscan docs for more info.
TRON:
- Primary: Use the TronScan endpoint for
token_trc20/totalSupply?address=…. - Secondary: Call
wallet/triggerconstantcontract totalSupply();and save the “confirmed block” metadata for later use. More details can be found in the TronScan docs.
Solana:
- Primary: Make a call to
getTokenSupplywithcommitment="finalized"and remember to save the slot info. For more on this, visit Solana’s documentation.
3) Reserve Data Capture
- Bank/Custodian:
- Get those SFTP/portal statements in machine-readable CSV and PDF formats; make sure to reconcile them with your general ledger (GL).
- Government MMF:
- Don't forget to grab daily holdings and liquidity metrics. For example, check out BlackRock USDXX, which shares fund size, WAM/WAL, and daily/weekly liquid assets. It's a good idea to keep a daily snapshot to back up your bucket tests. You can find more info on their site: blackrock.com.
- Repo:
- Keep track of your counterparties, collateral CUSIPs, haircut, and maturity dates. Make sure to tag them into daily/weekly buckets to comply with MiCA/DFS liquidity rules. More details can be found here: dfs.ny.gov.
4) Liquidity Bucket Engine (EU-Ready)
- Set up some straightforward rules to sort assets into “daily” and “weekly” maturity buckets. Make sure to stick to the thresholds: non-significant tokens vs significant ones (think ≥20%/≥40% for daily and ≥30%/≥60% for weekly). It’s important to show real-time compliance, plus have those back-tests ready to go. (ashurst.com)
- Don’t forget to add a “significant token” alert system! You’ll want to keep an eye on keys indicators like more than 10M users, over €5B in outstanding/reserves, more than 2.5M daily transactions, or hitting that €500M per day mark. Once you hit those numbers, you’ll need to start playing by the stricter rules. (natlawreview.com)
5) Attestation Calendar and SLA Tracker
- For U.S. public disclosures (GENIUS Act), set up monthly publication deadlines and automate the evidence packaging. When it comes to NYDFS, make sure to implement those monthly AICPA examinations and keep an eye on T+2 redemption performance metrics right on the dashboard. (reuters.com)
- In the EU, show the MiCA reporting schedule along with any updates from ESMA/EBA right in the compliance panel. Don’t forget to add links to the relevant RTS/Guidelines for easy access! (esma.europa.eu)
Chain‑specific implementation recipes
Here are some handy copy-paste calls along with the metadata you'll need so auditors can double-check your numbers.
1) Ethereum (Using USDC as an Example)
- Supply Snapshot (block-point in time):
- Check Etherscan: GET https://api.etherscan.io/v2/api?chainid=1&module=stats&action=tokensupply&contractaddress=0xA0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
- For historical data, just add
&action=tokensupplyhistory&blockno=to test on a random day. (docs.etherscan.io)
- Data to Save:
{ "block_number": "your_block_number", "block_timestamp_utc": "your_timestamp", "total_supply_raw": "your_supply", "decimals": "your_decimals", "rpc_node_id": "your_rpc_node_id", "etherscan_result_id": "your_result_id" }
2) TRON (USDT example)
- Current supply:
- Check it out on TronScan: GET totalSupply
- Another way to do it: Use the TronGrid/Tron dev API with
triggersmartcontractand setfunction_selector=“totalSupply()”. You can find more about it here.
- Persist: {confirmed_block, chain_time, total_supply_raw, decimals}
3) Solana (SPL)
- Current supply:
- JSON-RPC: method=getTokenSupply, params=["
", {"commitment": "finalized"}]
- JSON-RPC: method=getTokenSupply, params=["
- Persist: {slot, block_time_utc, amount, decimals, uiAmountString} (solana.com)
Sanity Checks:
- Make sure that the total supply for each chain matches your “circulating liabilities” after you account for any blacklisted or frozen tokens. This is especially important if your contract has features for issuer blacklisting (like USDC’s FiatToken, which comes with blacklist and pause functions). It’s a good idea to monitor and show freeze/blacklist events clearly so that auditors can easily verify the “in-circulation” numbers. You can check out more details on GitHub.
Example: mapping real issuers to dashboard signals
- USDC (Circle)
- Here’s what you should check out: monthly third-party assurance from a Big Four firm, weekly updates on reserves, and a breakdown of how cash and the Circle Reserve Fund (USDXX) are split, along with BlackRock's daily holdings. Don’t forget to visit Circle’s “Transparency & Stability” page for more info and the fund’s daily stats. You can find everything you need right here: circle.com.
- PYUSD (Paxos PayPal USD)
- Here’s what to keep an eye on: Paxos releases their monthly reserve reports, and you’ll want to compare those against independent monthly attestations. Just a heads-up--starting February 28, 2025, KPMG LLP will take over the examinations from Withum, and we can expect a monthly update in the style of NYDFS. Make sure to check out both the “self-reported” breakdown of monthly reserves and the CPA report artifacts. You can find more details over at paxos.com.
- USDT (Tether)
- Things to keep an eye on: the issuer’s regular assurance opinions from BDO, as well as a breakdown of management reserves (think Treasuries, gold, and bitcoin holdings). It’s also good to follow the circulation across different chains like TRON and Ethereum. Make sure to specifically track excess reserves and the levels of exposure to U.S. Treasuries, since these details are being shared more frequently now. Check out the latest updates over at (tether.io).
Pro tip: For every issuer, whip up a “delta vs last period” card that highlights the following:
- Changes in on-chain liabilities (broken down by chain),
- Shifts in reserve composition (especially the daily and weekly liquidity buckets),
- Any contract-level admin events (like pause or blacklist role changes on EVM tokens),
- SLA compliance (make sure to check if the monthly public report is posted on time, plus compare the CPA report date to its due date).
Don’t confuse PoR with a reserve attestation
Proof‑of‑Reserve oracles can be quite handy for certain assets, but a lot of these feeds rely on self-reported address lists, which might not give you the real deal when it comes to cryptographic proof of ownership. If you're thinking about adding PoR to your dashboard, be sure to point out any self-attestation risks. It’s super important to remember that PoR shouldn’t take the place of the AICPA-standard attestation for off-chain reserves. Check out the details here.
Controls and evidence your auditors will thank you for
- Immutable Evidence Vault
- Keep a secure archive of every monthly package, including snapshots, statements, confirmations, reconciliation workbooks, and management assertions, all stored in WORM-style storage with hash chains. Plus, make sure to create a SHA-256 manifest for each period.
- Maker-checker on reconciliation
- Each reconciliation and management assertion gets a two-person review, ensuring a second set of eyes. Plus, the dashboard’s audit trail shows approval timestamps and reviewers’ IDs for transparency.
- Random‑day test harness
- We precompute supply snapshots for each business day. So, when the CPA picks a random date, your dashboard can instantly show the exact chain state (block/slot), reserve positions, and reconciliation in just seconds.
- Liquidity Bucket Monitor
- Keep an eye on those MiCA liquidity percentages with some real-time rule checks and back-tested trendlines. You'll get alerts if adding a longer-dated T-bill would mess with the “weekly” bucket. (ashurst.com)
- Redemption Performance Widget
- Keep an eye on those T+2 metrics from start to finish (think request time, KYC status, fiat wire initiation, and completion). Plus, you can export the exceptions log (complete with reasons) to help you demonstrate compliance in a way that’d make NYDFS proud. (dfs.ny.gov)
- Public‑facing JSON
- Every month, we’ll publish a machine-readable “Reserve Attestation JSON.” Here are some fields we suggest including:
{
"period_end_utc": "2025-11-30T23:59:59Z",
"random_day_utc": "2025-11-12T23:59:59Z",
"circulating_supply": [
{"chain": "ethereum", "contract": "0x...", "block": 21033456, "totalSupply": "56234567890123", "decimals": 6},
{"chain": "tron", "contract": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", "block": 65432100, "totalSupply": "53456789012345", "decimals": 6},
{"chain": "solana", "mint": "So111...", "slot": 288776543, "amount": "123456789000", "decimals": 6}
],
"reserve_positions_fv_usd": [
{"type": "us_tbill", "cusip": "912796Z46", "maturity": "2026-01-15", "fair_value": 4200000000, "bucket": "weekly"},
{"type": "repo_overnight", "counterparty": "GSCO", "fair_value": 1100000000, "bucket": "daily"},
{"type": "gov_mmf", "fund": "USDXX", "fair_value": 65966300000, "bucket": "daily"}
],
"excess_reserves": 6800000000,
"liquidity_buckets": {"daily_pct": 64.2, "weekly_pct": 92.5},
"management_assertion_sha256": "b6fbf2...c0",
"attestation_report": {
"firm": "Example LLP",
"engagement": "SSAE examination",
"report_hash": "a84d...f1"
}
}
Handling blacklists, freezes, and multi‑chain mints
A bunch of fiat-backed tokens come with pause and blacklist features. Your dashboard needs to:
- Keep tabs on any changes to admin roles and show a real-time count of blacklisted and frozen balances for each chain.
- Make sure to line up “totalSupply” with what’s “circulating (transferable)” when tokens are on hold.
- Highlight contracts that have issuer-admin functions in risk disclosures for enterprise users. (For instance, USDC’s FiatToken contracts use blacklist, pauser, and masterMinter roles--so keep that in mind while planning.) (github.com)
For multi-chain issuance, here's what you need to do:
- Keep a solid list of canonical chains and their mint addresses, and have a governance process in place for adding or removing chains as necessary.
- Make sure to track and reconcile burns and mints between bridges and native mints.
- Share the supply changes for each chain so that exchanges and custodians can easily verify their inventory updates.
Real examples of dashboard KPIs that matter to decision‑makers
- Time-to-attestation (TTA): This one’s all about the median number of business days it takes from the end of a period to when we get a published, CPA-signed report. The goal? We’re aiming for 10 days or less after the month wraps up, whenever that’s possible.
- “Unsealed variance”: Think of this as the total of any corrections made to reserve lines after the first report went out. Ideally, this should be close to zero.
- Liquidity headroom: Here, we’re looking at the percentage above what we need for our daily and weekly buckets (thanks, MiCA!) and the cash-on-hand days based on our usual redemption rates. For more details, check out this Ashurst article.
- Redemption SLA: This tracks the percentage of redemptions that are completed within T+2, which is based on NYDFS guidelines. It’s important to showcase the monthly distribution and highlight any outliers, along with their root causes. You can read more at the NYDFS site.
- U.S. disclosure SLA: This refers to our commitment to post the monthly public reserve composition by or before the deadline set in our policy (that’s the expectation under the GENIUS Act). For the latest updates, have a look at this Reuters article.
Emerging best practices we see winning in 2025
- Weekly pre-close: Don’t just wait for the month-end to get everything sorted. It’s way easier to reconcile weekly so that when month-end rolls around, you’re simply moving forward.
- Dual-source liabilities: Always pull your supply data from both RPC calls and an indexer (like Etherscan, TronScan, or Solana RPC), and keep an eye out for any discrepancies. Check out the details here: docs.etherscan.io.
- Public fund rails: Whenever you can, try to keep a big chunk of your reserves in a regulated government money market fund that has daily public holdings (think USDXX) for better transparency and operational liquidity. More info here: blackrock.com.
- PoR with disclaimers: If you’re sharing Chainlink Proof of Reserve feeds, make sure to show the feed’s configuration (like whether wallets are self-attested or cryptographically verified) and include an ownership statement from the issuer to avoid giving anyone a false sense of security. Details can be found at: docs.chain.link.
- Auditor sandbox: Set up a limited number of auditor accounts with direct API access to your snapshots, hash manifests, and reconciliation endpoints. Also, make it easy for them to export evidence with just one click, in line with AICPA exam sections. Here’s more on that: aicpa-cima.com.
Regulatory mapping cheat sheet (2025)
- U.S. (federal): The GENIUS Act requires 100% liquid reserves, monthly public composition, and AML/BSA responsibilities for issuers. Make sure your dashboard is set up to publish a compliant composition file each month and be ready to show any AML-related freezes or burns whenever someone asks. (whitehouse.gov)
- New York DFS (state): You've got a monthly AICPA exam on your plate, plus there are restrictions on reserve assets and a T+2 redeemability requirement. Your “Compliance” tab should reflect real-time alignment with DFS rules about asset types and keep track of your monthly attestation status. (dfs.ny.gov)
- EU (MiCA): The rules for ARTs and EMTs have kicked in. ESMA has pushed for CASP compliance by the end of Q1 2025, and the EBA RTS is laying out liquidity buckets and thresholds for significant tokens. Be sure to display those bucket percentages, keep an eye out for significant-token early warnings, and provide links to the current RTS guidelines you’re following. (esma.europa.eu)
Putting it together: a 90‑day build plan
- Days 1-15
- Data contracts: Wrap up the schemas for TokenSupplySnapshot, ReservePosition, and Reconciliation.
- Chain connectors: Create RPC and explorer API adapters for Ethereum/EVM, TRON, and Solana, including some nifty retry/backfill logic. Check out the details here: (docs.etherscan.io).
- Evidence vault: Get WORM storage up and running, hash those manifests, and implement a “freeze” for each period.
- Days 16-45
- Reserve integrations: We’ve got SFTP and portal collectors lined up, plus an ingestor for USDXX daily holdings and a maturity bucket engine to tackle MiCA/DFS rules. You can check it out here: (blackrock.com).
- Reconciliation UI: This includes views broken down by day and by period, a maker-checker workflow, and features for handling exceptions.
- Days 46-75
- Auditor Mode: This features a read-only UI, options for downloading evidence packs in CSV, JSON, or PDF formats, a random-day test generator, and the ability to publish public JSON artifacts.
- Compliance Panel: This shows live updates for the GENIUS Act monthly disclosures, the NYDFS attestation schedule, and details on MiCA buckets/thresholds. (reuters.com)
- Days 76-90
- Chaos drills: run through scenarios like missed bank files, RPC outages, and stale oracle feeds. Make sure your alerts and runbooks are straightforward and easy to follow.
- Pre-close: conduct a practice attestation cycle with your auditor. This will help you speed up those first-month timelines.
Final thought
In 2025, just having "an attestation" won’t cut it anymore. Decision-makers are looking for dashboards that allow them to easily verify regulator-grade claims--whether that’s on-chain, in bank statements, or in third-party reports--without going through a lengthy email back-and-forth for months. Focus on creating solutions for auditors first, and you’ll establish the trust that your customers and partners really want.
7Block Labs is here to help you transform this blueprint into a fully functional, auditor-approved system in less than three months. You’ll get everything you need, including chain connectors, reserve ingestors, reconciliation logic, and an Auditor Mode that comes along with your first monthly report.
Like what you're reading? Let's build together.
Get a free 30-minute consultation with our engineering team.
Related Posts
ByAUJay
Building 'Private Social Networks' with Onchain Keys
Creating Private Social Networks with Onchain Keys
ByAUJay
Tokenizing Intellectual Property for AI Models: A Simple Guide
## How to Tokenize “Intellectual Property” for AI Models ### Summary: A lot of AI teams struggle to show what their models have been trained on or what licenses they comply with. With the EU AI Act set to kick in by 2026 and new publisher standards like RSL 1.0 making things more transparent, it's becoming more crucial than ever to get this right.
ByAUJay
Creating 'Meme-Utility' Hybrids on Solana: A Simple Guide
## How to Create “Meme‑Utility” Hybrids on Solana Dive into this handy guide on how to blend Solana’s Token‑2022 extensions, Actions/Blinks, Jito bundles, and ZK compression. We’ll show you how to launch a meme coin that’s not just fun but also packs a punch with real utility, slashes distribution costs, and gets you a solid go-to-market strategy.

