Fund flows are kind of a pain. Everyone does them, everyone does them differently, and even if you are doing them you probably change your format all the time.
As stablecoins are getting embedded more and more into everything, I feel like I’m doing a funds flow or 2 a day. When a Fintech pops up and wants a funds flow all they really want is this diagram. Something like this if they are adding stablecoins as a option for making global payouts, for example, maybe even using Modern Treasury.
sequenceDiagram
title: Funds Flow (Medium, CSF v1.4.5) – USD to USDC with Exchange (Modern Treasury + Brale)
participant Business as Modern Treasury Customer
participant MT as Modern Treasury (Instructions Only)
participant Brale as Brale (Exchange & Settlement)
participant Solana as Solana Blockchain
participant Recipient as Recipient Wallet
Business-->>MT: [DATA] Instruction: Pay $1,000 to Recipient (USD)
MT-->>Brale: [DATA] Instruction Forwarded
Brale->>Brale: [EXCHANGE] USD to USDC
Brale->>Solana: Transfer USDC Solana $1,000
Solana->>Recipient: Confirm ReceiptWe came up with a framework to use at Brale, and it’s turned out to be quite useful. It’s called the Commons Stablecoin Format, and it’s simply a set of rules to give a LLM so it doesn’t have to think about what format to use. We paste the CSF JSON into GPT and prompt it with something like: ‘Create a funds flow for a USD wire input converting to USDC on Solana.’ It follows the format every time.
All funds flows are generated using Mermaid, which is super light and fast. You can see me generating a funds flow here:
Funds flows just show how things fit together — but everyone has their own mental model, which usually leads to yet another custom format, so the Brale team came up with a standard we could plug into any LLM to help us quickly knock out stablecoin funds flows. In working on our new stablecoin API, this has helped in countless conversations.
We quickly realized this was kind of a superpower and baked in some of the standards (that are, to be fair, very brale centric) into the Commons Stablecoin Format, which is designed to be a standard set of rules for generating funds flows, like the one above. Here is the full set.
From there, the standard kicks out mermaid diagrams about as fast as you can copy and paste them. Which is great, because it means you don’t need to spend 10 years in a fintech, bank, or whatever to start having a decent funds flow. You can also typically take screenshots of other funds flows and ask your favorite LLM to kick one out in the CSF format, which it’s actually quite good at.
Standardization in the flow
There are a few very basic things here that make the funds flow a bit easier to read built off the value layer concepts (1,2).
- ValueType – What is being transferred (e.g., USD, USDC, SBC)
- TransferType – How it moves (e.g., ACH, Wire, Ethereum, Canton)
- Exchange – Input of one ValueType+TransferType and output of one ValueType+ TransferType.
I’ve written a lot about that idea in the past but no one really put it to work in product until the last iteration of Brale API updates. The standard has been pulled into the CSF where transfers always show ValueType, TransferType, Amount. I.e. SBC Base 100, or USDC Ethereum 100, or USD Wire 100.
Like a schematic, it’s just much easier to read when it’s consistent in its labeling.
Varying levels of detail in the standard:
- Light – Simplified transaction flows focusing on core steps.
- Medium – Includes fund finality, compliance tracking, and exchange validation.
- Heavy – Comprehensive flow tracking, including error handling.
Getting Things Started
Whether it’s an bank-funded stablecoin issuance or an on-chain settlement across multiple blockchains, CSF enables better understanding. Here is another prompt for a offchain transfer, funding a onchain distribution in stablecoins.
"A third-party fintech initiates an offchain USD transfer to fund an onchain stablecoin distribution (e.g., USDC on Solana) to a recipient wallet."
sequenceDiagram
title: Funds Flow (Medium, CSF v1.4.5) – Third-Party Fintech USD to USDC Distribution
participant Business as Fintech Customer
participant Fintech as Fintech Platform (Instructions Only)
participant Exchange as Stablecoin Issuer / Settlement Platform
participant Solana as Solana Blockchain
participant Recipient as Recipient Wallet
Business-->>Fintech: [DATA] Instruction: Pay $5,000 to Recipient (USD)
Fintech-->>Exchange: [DATA] Instruction Forwarded
Business->>Exchange: Transfer USD Wire $5,000
Exchange->>Exchange: [EXCHANGE] USD to USDC
Exchange->>Solana: Transfer USDC Solana $5,000
Solana->>Recipient: Confirm Receiptand another one where it’s the reverse, onchain going offchain.
sequenceDiagram
title: Funds Flow (Medium, CSF v1.4.5) – Onchain USDC Funding to Offchain USD Wire Distribution
participant Business as Customer Wallet
participant Fintech as Fintech Platform (Instructions + Compliance)
participant Exchange as Stablecoin Platform / Settlement Partner
participant Bank as Bank Network
participant Recipient as Recipient Bank Account
Business->>Exchange: Transfer USDC Solana $5,000
Exchange-->>Fintech: [DATA] Receipt Confirmation + Payout Instruction
Fintech-->>Exchange: [DATA] Instruction: Convert & Wire USD
Exchange->>Exchange: [EXCHANGE] USDC to USD
Exchange->>Bank: Transfer USD Wire $5,000
Bank->>Recipient: Confirm ReceiptThe framework is open-source and available for adoption and contribution on GitHub. It’s already something I use everyday at Brale and we hope it saves your teams some time.
You can find the CSF spec and example prompts on GitHub — feel free to fork it, use it, or contribute.