SaaS Stablecoin Endpoints
These endpoints handle Stablecoins as a Service (SaaS) operations: minting SaaS tokens from USDC deposits, and redeeming SaaS tokens back to USDC with cross-chain relay via CCTP.
Branded stablecoin endpoints (
/branded/*) only support EVM chains. Solana EIDs are not accepted.
GET /branded/fetchAddress
Get a deterministic deposit address for branded stablecoin operations.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
asset | address | Yes | Branded token contract address |
beneficiary | address | Yes | Destination wallet address |
targetEid | u32 | Yes | LayerZero Endpoint ID (EVM only) |
Response
{
"ok": true,
"deploymentAddress": "0x...",
"params": {
"asset": "0x...",
"beneficiary": "0x...",
"targetEid": 30332
}
}GET /branded/processDeposit
Process a USDC deposit for a branded token. Mints frxUSD, mints the branded token, and sends it cross-chain via the token's CrossChainRouter. No CCTP relay job is created.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
asset | address | Yes | Branded token contract address |
depositAddress | address | Yes | Address returned by /branded/fetchAddress |
beneficiary | address | Yes | Destination wallet address |
targetEid | u32 | Yes | LayerZero Endpoint ID (EVM only) |
Response
{
"ok": true,
"createFraxNetDepositTx": "0x...",
"contractAlreadyDeployed": false,
"processDepositTx": "0x...",
"depositAddress": "0x...",
"asset": "0x...",
"usdcAmount": "1000000"
}GET /branded/processRedemption
Redeem a branded stablecoin back to frxUSD, then to USDC, and relay the USDC to the destination chain via CCTP.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
asset | address | Yes | Branded token contract address |
depositAddress | address | Yes | Address returned by /branded/fetchAddress |
beneficiary | address | Yes | Destination wallet address |
targetEid | u32 | Yes | LayerZero Endpoint ID (EVM only) |
Response
{
"ok": true,
"createFraxNetDepositTx": "0x...",
"contractAlreadyDeployed": false,
"processRedemptionTx": "0x...",
"depositAddress": "0x...",
"asset": "0x...",
"brandedTokenAmount": "1000000",
"cctpRelay": {
"status": "pending_attestation",
"jobId": "0x...",
"destDomain": 13
}
}Branded Deposit Flow (USDC → Branded Token)
- Call
/branded/fetchAddressto get the deposit address - Send USDC to the deposit address on Ethereum via CCTP
depositForBurnfrom the source chain - Call
/scheduleCCTPRelayto relay the CCTP message to Ethereum - Poll
/jobStatusuntilcomplete - Call
/branded/processDepositto mint frxUSD, mint the branded token, and send it cross-chain
Branded Redemption Flow (Branded Token → USDC)
- Call
/branded/fetchAddressto get the deposit address - Approve and bridge branded tokens from the source chain to the deposit address on Ethereum via the
CrossChainRouter - Wait for LayerZero settlement (~1-5 minutes)
- Call
/branded/processRedemptionto redeem the branded token to frxUSD to USDC, and relay USDC via CCTP - Poll
/jobStatusuntil USDC arrives (~20+ minutes)