Take fiat from your users and issue QUSD, a fully deposit-backed dollar token, straight to their wallet. The coin is minted only after the payment settles, and each coin carries its own backing — 1:1 by construction.
A partner initiates a checkout for a dollar amount and a destination wallet address. The buyer pays through Swifin (card / bank). When Swifin confirms the payment, QUSD is minted to the destination address on the QVTX chain (or BNB Smart Chain). You never touch keys or funds — the buyer’s wallet receives the token directly.
USD in via Swifin → QUSD out to any address you name. USDT / USDC on BNB Chain are also accepted as the funding leg.
The settled fiat is folded into the mint’s identifier (ByteID) as the coin’s backing — recoverable, not held in an opaque pool.
Creating a checkout moves nothing. QUSD is issued only after Swifin’s authoritative confirmation that the payment settled.
Every mint is a real on-chain transaction with a public transaction hash your users can verify in the explorer.
Money first, coin second. A checkout is a payment page — it mints nothing. QUSD is minted only after Swifin’s server-side confirmation that the payment settled, and only once the settled fiat has been recorded as that coin’s backing leg. The mint is exactly-once: a locked settle step and a mint marker make a webhook and a status-poll converge on a single mint, even across a restart.
Two calls. Base URL https://qusd.quantvestrix.com.
# request { "address": "0x…", // destination wallet for the QUSD "chain_id": 42000, // 42000 (QVTX) or 56 (BNB Smart Chain) "amount": 100.00 // USD } # response { "onramp_id": "QVTX-AGA-…", // reference (ByteID) — use for status "checkout_url": "https://…swifin…", // send the buyer here to pay "amount_usd": 100.00, "mint": { "status": "PENDING_PAYMENT" } // nothing minted yet }
To fund with USDT or USDC instead of card, add "asset":"usdt" (or
"usdc"); the response returns the treasury address and exact amount to send on BNB Chain.
{
"onramp_id": "QVTX-AGA-…",
"amount_usd": 100.00,
"mint": {
"status": "MINTED", // PENDING_PAYMENT → MINTING → MINTED
"tx": "0x…", // on-chain transaction hash
"amount_minted": 100.0
}
}
A signed checkout.completed webhook can also drive settlement; polling
is sufficient on its own. Statuses are explicit — PENDING_PAYMENT, MINTING,
MINTED, OWED (paid, mint retrying), NOT_PAID.
The first live settlement — a real card payment that minted QUSD on-chain. Every field is public and checkable in the explorer.
| On-ramp reference (ByteID) | QVTX-AGA-b9097e55-e1d324a9-d1ea-B-8b49 |
| Amount | $1.00 USD → 1.000000 QUSD |
| Chain | QVTX Execution (42000) · canonical QUSD 0xc71b2B5c… |
| Backing | $1.00 SETTLED · Swifin payment → QVTX Treasury · ISO 20022 pain.001 |
| Mint transaction | 0x8f143f1b281c777fad5d2a4e83ce3badbcec2a8dac90e270d97383c7fa5b7853 |
| On-chain result | confirmed · block 716,573 |