← Overview

Rain

On-chain card issuing that settles to Visa in stablecoins.

What it is

Rain is a vertically integrated card-issuing platform and payment processor that lets companies ship Visa cards which spend directly from on-chain stablecoin collateral. As a Visa Principal Member, Rain issues, authorizes, and settles cards itself — partners (wallets, neo-banks, enterprises, remittance firms) embed Rain's API instead of building card infrastructure or sourcing a separate BIN sponsor. Its defining feature: Rain brings authorization logic and settlement on-chain and settles its obligations to Visa natively in USDC, 7 days a week, 365 days a year — including weekends and holidays when traditional bank-wire settlement is closed.

How it works

  1. A partner integrates Rain's full-stack issuing API to spin up a branded Visa card program (custodial or non-custodial wallets).
  2. The end user deposits stablecoins into a smart contract they own and control; that collateral backs a credit line, so the user spends without selling.
  3. At point of sale, Rain authorizes the transaction in real time against the on-chain collateral and fronts the fiat to the merchant over the Visa network (175M+ merchant locations).
  4. Rain then settles its obligation to Visa in USDC on-chain, and programmatically draws down / repays against the user's stablecoin collateral.
  5. Because receivables are tokenized, Rain borrows stablecoins from capital partners to fund the float and repays them programmatically via smart contracts — closed-loop, on-chain credit-card receivable financing.

Differentiators

  • Visa Principal Member — issues, authorizes, and settles directly, so partners skip a separate bank/BIN sponsor.
  • Native USDC settlement to Visa 365 days/year, vs. pre-funded fiat float that idles on weekends.
  • Authorization and settlement logic run on-chain against user-owned smart-contract collateral (self-custody preserved).
  • Omni-chain: native settlement across ~10 networks and multiple stablecoins (USDC, USDT, DAI, PYUSD).
  • Tokenized receivables unlock programmatic, smart-contract-powered capital financing — lower cost of capital for credit programs.

Business model

Interchange share on card spend + issuing/processing fees per card and per transaction + subscription fees for expense/program-management software (Brex/Ramp-style). Also captures spread on the tokenized-receivable financing it intermediates.

Depends on

  • Visa (network + principal membership)
  • Third National (issuing bank per Visa license)
  • Stablecoin issuers (Circle/Tether/etc.)
  • Supported chains (Ethereum, Base, Solana, Stellar, Tron, …)
  • Card processor (Paymentology) and capital/lending partners

Risks

  • Interchange and card/credit regulation vary sharply by region, capping where programs can launch.
  • Collateral volatility + on-chain liquidation risk if a non-USD-pegged asset is used as backing.
  • Reliance on Visa membership and the sponsoring bank — a status change would be existential.
  • Capital-markets dependency: the receivable-financing model needs lenders willing to fund float at attractive rates.
Deep dive

Architecture & mechanics

Real-time authorization & on-chain USDC settlement

Rain's edge is collapsing the card-money and on-chain-money flows into one loop. Authorization and settlement logic run on-chain against user-owned smart-contract collateral, and Rain settles its net obligation to Visa in USDC.

  • Collateral: each end user deposits stablecoins into a smart contract they own and control; it backs a credit line rather than pre-funding a fiat float account.
  • Authorization: at the swipe, Rain decisions in real time against that on-chain collateral and fronts fiat to the merchant over Visa.
  • Settlement: Rain pays Visa natively in USDC on-chain, 7 days/week, 365 days/year — including weekends/holidays when fiat-wire settlement windows are closed.
  • Float financing: receivables are tokenized, so Rain borrows stablecoins from capital partners and repays programmatically via smart contracts — 'closed-loop' on-chain receivable financing.
  • Omni-chain + asset-agnostic: native settlement across ~10 chains (ETH, Base, Polygon, Optimism, Avalanche, Arbitrum, ZKsync, Solana, Stellar, Tron) and multiple stablecoins (USDC, USDT, DAI, PYUSD).

The Visa Principal Member advantage

Most card programs rent access through a BIN sponsor; Rain is itself a Visa Principal Member, which compresses the stack and the economics.

  • Direct issuance: Rain issues, authorizes, and settles itself (cards issued by partner bank Third National under Rain's Visa license) — partners don't source a separate sponsor.
  • Acceptance: cards work at 150M+ (Rain cites up to 175M+) Visa merchant locations worldwide on day one.
  • Pilot status: Rain participates in Visa's stablecoin-settlement program, settling card obligations in USDC rather than only fiat.
  • Speed-to-market: a partner ships a compliant card program via API instead of spending 12–18 months assembling sponsor bank + processor + network access.

Interchange & capital economics

Rain monetizes like a vertically integrated issuer-processor, with an extra on-chain financing layer that most card platforms don't have.

  • Interchange: a share of the merchant interchange on every transaction is the core revenue line.
  • Platform fees: per-card / per-transaction issuing + processing fees, plus subscription fees for expense/program management (Brex/Ramp analog).
  • Capital efficiency: USDC settlement frees working capital that fiat T+1/T+2 cycles tie up; tokenized receivables let Rain borrow + repay float programmatically, lowering cost of capital for credit programs.
  • Lender side: capital partners get 'superior collateral' (on-chain, programmatically repaid) — turning the float into a financing product, not just a cost.

Regulatory & regional risk

  • Card-issuing, credit, and interchange rules differ sharply by jurisdiction, gating which geographies a program can serve (Rain reports activity across 100+ countries, but per-program coverage varies).
  • Dependence on Visa membership + the sponsoring bank (Third National): a change in either is existential to the model.
  • Collateral/credit risk: volatility or de-peg of backing assets and on-chain liquidation mechanics must hold up under stress.
  • Capital-markets dependency: the receivable-financing engine needs ongoing lender appetite to fund float at attractive rates.
Builder's track

How it's built

Architecture

Rain is the issuer-processor AND a Visa Principal Member, so it owns the full path: card issuance, real-time authorization, and settlement — no external BIN sponsor in the loop (cards are issued by partner bank Third National under Rain's Visa license). The novel piece is that authorization logic and settlement run on-chain. Each end user gets a smart contract they own and control, holding stablecoin collateral. When a swipe hits the Visa network, Rain authorizes against that collateral in real time and fronts fiat to the merchant; it then settles its net obligation to Visa in USDC on-chain, daily/365. Receivables are tokenized, so Rain borrows stablecoins from capital partners to fund the float and repays programmatically via smart contracts. The stack is omni-chain (native settlement on ~10 networks) and asset-agnostic across major stablecoins.

Integration shape

Partners integrate a developer-first, full-stack issuing API that supports both custodial and non-custodial wallets and operates natively across multiple chains. A program covers KYC/KYB + compliance, card creation (virtual/physical), collateral/credit-line setup tied to the user's smart contract, real-time authorization controls, and webhooks for transaction/settlement events. Public API reference is access-gated (docs.rain.xyz requires an access code), so exact endpoint names below are conceptual and marked [verify].

API surface

POST /cardholders (KYC/KYB)
Onboard an end user or business, run identity/compliance, create the cardholder record. [verify exact path]
POST /collateral-accounts
Provision the user-owned smart-contract account and register the stablecoin collateral / credit line backing it. [verify]
POST /cards
Issue a virtual or physical Visa card bound to a cardholder + collateral account; set spend controls/limits. [verify]
Authorization webhook / decisioning
Real-time auth events Rain evaluates against on-chain collateral; partner may apply program-level approve/decline rules. [verify]
GET /transactions
Retrieve authorizations, captures, and on-chain USDC settlement records for reconciliation. [verify]
Webhooks (events)
Subscribe to card lifecycle, authorization, settlement, and collateral/repayment events — treat these as source of truth. [verify]
Settlement / repayment ledger
Programmatic draw-down + repayment against collateral and capital-partner stablecoin float, recorded on-chain. [verify]

Minimal integration

Conceptual flow: onboard a cardholder, register on-chain collateral, issue a Visa card, then react to an authorization webhook. Endpoint shapes are illustrative — confirm against Rain's gated docs.

import { Rain } from '@rain/sdk'; // conceptual — confirm package name

const rain = new Rain({ apiKey: process.env.RAIN_API_KEY });

// 1. Onboard the cardholder (KYC/KYB handled by Rain)
const holder = await rain.cardholders.create({
  type: 'individual',
  email: 'user@rails.app',
});

// 2. Register the user-owned smart-contract collateral account.
//    The user deposits USDC into a contract THEY control; it backs the credit line.
const collateral = await rain.collateralAccounts.create({
  cardholderId: holder.id,
  chain: 'base',            // ethereum | base | polygon | solana | stellar | tron ...
  asset: 'USDC',            // also USDT | DAI | PYUSD
  contractAddress: '0xUserOwnedSmartContract...',
});

// 3. Issue the Visa card bound to that collateral.
const card = await rain.cards.create({
  cardholderId: holder.id,
  collateralAccountId: collateral.id,
  type: 'virtual',          // or 'physical'
  spendLimit: { amount: 5000_00, interval: 'monthly' },
});

// 4. Real-time authorization webhook: Rain authorizes against on-chain
//    collateral, fronts fiat to the merchant, then settles to Visa in USDC.
export async function onWebhook(event: RainEvent) {
  switch (event.type) {
    case 'authorization.created':
      // optional program-level approve/decline on top of Rain's collateral check
      break;
    case 'settlement.completed':
      // USDC settled on-chain to Visa; reconcile + repay capital float
      break;
  }
}

Build notes

  • Self-custody is the design center: collateral lives in a smart contract the END USER owns — Rain authorizes against it but does not custody it.
  • Settlement is the headline: Rain pays Visa in USDC on-chain daily/365, so float isn't stranded over weekends/holidays the way fiat-wire settlement is.
  • Treat webhooks (authorization + settlement events) as the source of truth for reconciliation; the on-chain settlement record is the ledger of record.
  • Region availability is gated by card/credit + interchange regulation — confirm supported geographies per program with Rain.
  • [verify exact endpoint names, SDK package, and auth scheme — Rain's API reference at docs.rain.xyz is access-code gated and not public.]