Skip to main content
A quick reference for the networks and currencies you can use. These are the values the API accepts today; more are added over releases.

Blockchain networks

An account is pinned to one network when it’s created, and its wallet lives there.
These are the chains the API supports; the chains available to your company are configured by Venly. Creating an account on a chain your company isn’t set up for returns 400 invalid-request with a message listing your supported chains — for example, “Chain ‘POLYGON’ is not supported by this company. Supported chains: [AVALANCHE, BASE]”.
On-ramp virtual bank accounts are provided through banking partners, and partner coverage rolls out per chain. Confirm availability for your chain with your Venly contact.

Stablecoins

Crypto balances, transfers, and permits use these assets (the asset field):

Ask the API instead of hard-coding

Which of these your tenant can settle in, and on which chains, is configuration. Read it at runtime:

Tenant assets

GET /supported-assets — every chain/asset pair enabled for you, with decimals and contractAddress.

Account readiness

GET /accounts/{accountId}/supported-assets — the same list, plus whether this account can move each asset yet.
Use the first to build an asset picker and the second to decide what to actually offer an end-user. An asset the tenant has enabled is not automatically usable by every account — see permits and allowances.
A symbol is not an asset. The same symbol on two chains is two different contracts with different capabilities, and support for gasless permits is a property of the contract on a given chain — not of the symbol. Never assume a symbol behaves the same everywhere, and read contractAddress from the API rather than hard-coding it.

Naming an asset explicitly

Because a tenant can hold the same symbol on more than one chain, a fiat currency no longer always identifies a single asset. Where it doesn’t, fiat transfers need an explicit chain + asset pair. Send chain and asset together — one without the other is rejected with chain-and-asset-required-together. Omitting both where the currency is ambiguous is rejected with ambiguous-asset rather than the API guessing a chain for you.
Sending chain + asset is always allowed, even when the currency is unambiguous. If you’d rather not branch on tenant configuration, just always send them.

Fiat currencies

Fiat-denominated operations (fiat transfers, pay-in sessions) accept:
Virtual bank accounts support EUR (provisioning a EUR_SEPA IBAN) and USD (provisioning a USD_ACH account). The USD lane additionally requires your tenant to be onboarded for it with an approved KYB recording. GBP is accepted for other fiat-denominated operations but not yet for bank-account provisioning.
Pay-outs currently settle over the US_ACH rail, which requires USD.

How fiat converts to crypto

Fiat-denominated operations resolve to a stablecoin and settle on-chain. You name the target stablecoin — for example targetCryptocurrency on a virtual bank account, or the asset a pay-in session converts to. A fiat transfer reports the conversion it used in its fiatOrigin block (currency, amount, exchange rate).

Next steps

Wallets & balances

Per-asset balances on an account’s wallet.

Transfers

Move these assets between accounts.