Skip to main content

Use Case

Enable users to onramp fiat into stablecoins on various chains. This works via spinning up virtual IBANs in the names of customers which are tied to automatic onramping rules. Examples:
  • Create a vIBAN 1 which turns EUR to USDC on Solana address 1
  • Create a vIBAN 2 which turns EUR to USDC on Arbitrum address 1
  • Create a vIBAN 3 which turns EUR to EURC on Arbitrum address 2

Example Flow

1
Max sets up a vIBAN 1 with an autoramp which turns EUR to USDC on Solana address 3DkN…BV4Lm
2
Max triggers a EUR 1000 transfer from their banking app
3
Iron will monitor the vIBAN 1; as soon as funds arrive, 1100 USDC are delivered to 3DkN…BV4Lm
4
Max can at any time transfer more funds into this vIBAN 1 and they autoramp to USDC. It is persistent.

Prerequisites

Before creating an onramp autoramp, you must register the recipient wallet address for your customer. The wallet in recipient_account must already be linked via the Crypto Addresses API. This is required for Travel Rule compliance — all wallet addresses interacting with Iron must be registered before they can be used in any flow.
The wallet address you provide in recipient_account must match a wallet you’ve already registered via the Crypto Addresses API.
Steps:
  1. First, register a wallet address (self-hosted or hosted) for your customer
  2. Then, create an onramp autoramp using the registered wallet address as the recipient

Implementation

Follow these example steps to create an autoramp logic for EUR to USDC on Ethereum.

Request

curl -X POST "https://api.sandbox.iron.xyz/api/autoramps" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "IDEMPOTENCY-KEY: <your-idempotency-key>" \
  -H "X-API-Key: <your-api-key>" \
  -d '{
    "source_currencies": [{
      "type": "Fiat",
      "code": "EUR"
    }],
    "destination_currency": {
      "type": "Crypto",
      "token": "USDC",
      "blockchain": "Ethereum"
    },
    "recipient_account": {
      "type": "Crypto",
      "blockchain": "Ethereum",
      "address": "myholdings.eth"
    },
    "customer_id": "123e4567-e89b-12d3-a456-426614174000",
    "source_is_third_party": false
  }'

Response

{
  "id": "f8f9a8c7-d8b1-4f1a-8f15-7e6c8a1a8e50",
  "status": "Authorized",
  "deposit_rails": [
    {
      "type": "Iban",
      "id": "abc12345-defg-6789-hijk-9876543210",
      "iban": "DE89370400440532013000",
      "name": "Max Mustermann",
      "bic": "COBADEFFXXX",
      "bank_name": "Good Bank",
      "bank_country": "Germany",
      "currency": {
        "code": "EUR"
      }
    }
  ],
  "created_at": "2025-01-20T12:34:56Z"
}
The deposit_rails array contains the payment details. The legacy deposit_account field is deprecated.
Now you are ready to show the user their custom Iron IBAN which will be auto-connected to this onramp rule. Please note that vIBANs are named. No specific deposit instructions are required.