Skip to main content
Real Time Funding is in beta and available in both sandbox and production.
When a card authorization comes in for a user whose tenant is enabled for Real Time Funding, Rain pulls the full authorization amount from the user’s associated wallet into their Rain collateral contract before the authorization is approved. To use Real Time Funding, your tenant must be enabled by Rain, the user must have a wallet associated with their Rain account, and the wallet must hold sufficient balance of a supported asset on a supported chain and have approved the Rain operator to spend it.

Supported Chains

Real Time Funding supports the chains listed below. Additional chain support is actively being developed.

Sandbox

Production

Supported Assets

The supported asset depends on the chain. The user’s wallet must hold — and approve the Rain operator to spend — the asset listed for the chain you are using. Additional assets will be added as the feature exits beta.

Sandbox

Production

Plasma uses USDT0, not USDC. A wallet funded with USDC cannot be pulled from on Plasma, and a wallet funded with USDT0 cannot be pulled from on Arbitrum or Base. Fund and approve the asset that matches the chain.

Prerequisites

Before Real Time Funding can run for a card, the following must be true:
  • Your tenant is enabled for Real Time Funding. Contact Rain to request enablement.
  • The user has a wallet address on the supported chain(s) associated with their Rain account.
  • The user’s wallet holds the supported asset for that chain and environment.
  • The user’s wallet has approved the Rain operator to spend that asset on their behalf.

Funding the User Wallet

The user’s associated wallet must hold the supported asset for the chain you are using. Send that asset to the wallet using the token address from the Supported Assets tables above. The wallet also needs the chain’s native token to pay gas — ETH on Arbitrum and Base, XPL on Plasma.

Getting Testnet Funds (Sandbox)

In sandbox, get Arbitrum Sepolia or Base Sepolia USDC from the Circle faucet.
1

Open the faucet

2

Select the network

Choose Arbitrum Sepolia or Base Sepolia as the network and USDC as the token.
3

Enter the wallet address

Paste the wallet address associated with the Rain user.
4

Request tokens

Submit the request and wait for the transaction to confirm. The USDC will appear in the wallet balance.
For Plasma Testnet, get XPL for gas from the a Plasma testnet faucet, then contact Rain to have testnet USDT0 sent to the user’s wallet.

Approving the Rain Operator

The user wallet must approve the Rain operator address to transfer the chain’s supported asset on its behalf. We recommend approving the maximum uint256 value (115792089237316195423570985008687907853269984665640564039457584007913129639935) so the user does not need to re-approve before each authorization.

Operator Addresses

The operator address is the same across all chains within an environment.

Approve via Block Explorer

Use this flow if the user is approving manually from a wallet they control directly (for example, MetaMask).
1

Open the token contract on the block explorer

Navigate to the token contract on the block explorer for the chain you are using:To use a different supported asset (once available), substitute its token address into the same URL pattern.
2

Connect the user's wallet

Open the Contract tab, select Write Contract, and click Connect to Web3. Connect the wallet that is associated with the Rain user.
3

Call approve

Locate the approve function and enter:
  • spender — the Rain operator address for your environment (see above).
  • value — the amount to approve, in the token’s native units. We recommend uint256 max: 115792089237316195423570985008687907853269984665640564039457584007913129639935.
4

Submit and confirm

Click Write, confirm the transaction in the connected wallet, and wait for it to be mined.

Approve Programmatically

Use this flow to script the approval as part of an automated onboarding step. Swap TOKEN_ADDRESS and the RPC URL for the chain you are targeting — the approval call is the same for USDC and USDT0.
approveOperator.ts
Make sure the wallet loaded from USER_WALLET_PRIVATE_KEY is the wallet associated with the user’s Rain account, and that it holds enough of the chain’s native token to pay gas before you run the script.

What Happens at Authorization

Once the user’s wallet is funded and the operator is approved, no further action is required. When an authorization comes in for one of the user’s cards:
  1. Rain pulls the full authorization amount in the chain’s supported asset from the user’s associated wallet using the operator’s transferFrom allowance. The pull happens regardless of any spending power the user already has.
  2. The pulled funds land in the user’s Rain collateral contract.
  3. The authorization proceeds against the topped-up collateral.
If the wallet does not hold enough of the supported asset, the allowance is insufficient, or any step of the pull fails, the authorization is declined.

What’s Next

Supported Chains and Tokens

See the full list of chains and tokens supported across the Rain platform.

Transaction Lifecycle

Learn how authorizations and settlements flow through the system.

Managing Collateral

Understand how collateral funds card authorizations and settlements.