Marlin is a stablecoin-native billing platform. Rather than processing traditional fiat payments through a bank network, every transaction settles directly on Solana using one of three supported stablecoins. Because all three tokens share the same six-decimal precision, the same amount encoding rules apply across the board.Documentation Index
Fetch the complete documentation index at: https://yanhgming.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Supported tokens
Marlin supports USDC, PYUSD, and USDG on both Solana mainnet and devnet.USDC
USD Coin — issued by Circle. The most widely used stablecoin on Solana.
PYUSD
PayPal USD — issued by PayPal. Regulated US dollar stablecoin.
USDG
Global Dollar — issued by the Global Dollar Network.
Mint addresses
Each token is identified by its SPL mint address on Solana:| Token | Network | Mint address |
|---|---|---|
| USDC | Mainnet | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| PYUSD | Mainnet | 2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo |
| USDG | Mainnet | 2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH |
| USDC | Devnet | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |
| PYUSD | Devnet | CXk2AMBfi3TwaEL2468s6zP8xq9NxTXjp9gjMgzeUynM |
| USDG | Devnet | Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr |
"USDC", "PYUSD", or "USDG") in your API requests.
How amounts work
All amounts in Marlin — on invoices, plans, and API responses — are expressed as integers in the token’s smallest unit, not as decimal strings. All three supported stablecoins use 6 decimal places.| Human-readable amount | amount value |
|---|---|
| $1.00 | 1000000 |
| $9.90 | 9900000 |
| $49.00 | 49000000 |
| $0.01 | 10000 |
10^6. To display a stored amount: divide by 10^6 and format to two decimal places.
The currency field
The currency field on an invoice or subscription plan is a string that maps to one of the supported token symbols: "USDC", "PYUSD", or "USDG". Marlin resolves this symbol to the correct mint address for the active cluster (mainnet or devnet) before constructing any on-chain transaction.
When you onboard as a merchant, you choose a default settlement mint for your account. All invoices and plans use this default unless you explicitly pass a
currency field to override it on a per-invoice or per-plan basis.Non-custodial settlement
Marlin never holds your funds. When a customer pays an invoice, the on-chain smart contract transfers tokens atomically in a single Solana transaction:- 99.5% of the invoice amount goes directly to your configured settlement wallet.
- 0.5% (50 basis points) goes to the Marlin protocol treasury.