Deposits from any chain

Let users deposit from anywhere your app does not live.

Uniport lets apps receive assets on their home chain while users pay from whatever chain they already use.

$ npm i uniport-sdk
No API keyMIT licensedReact 18+
DepositAction.tsx
1import { UniportButton } from "uniport-sdk";23export function DepositAction() {4  return (5    <UniportButton9    />10  );11}
destinationToken — what your app receives, and on which chain: USDC on Optimism.

Pay from 24 chains. Settle to the one your app lives on.

EthereumBaseOptimismArbitrumPolygonSolanaSuiNEARBitcoinAvalancheBNB ChainAptosTONTronStellarCardanoXRP LedgerDogecoinLitecoinBitcoin CashStarknetBerachainZcashScroll
The actual problem

Your app lives on one chain. Your users’ funds do not.

Most crypto apps still make users bridge before they can deposit, pay, or top up. That creates extra tabs, extra decisions, and a predictable drop-off point before the user reaches your product.

Uniport turns that into an app-native deposit flow. The app says what it wants to receive. The user chooses where they are paying from. Uniport handles the route between those two realities.

Without Uniport

  • User opens a separate bridge app or exchange
  • Manually picks source and destination chains
  • Waits, then comes back, if they come back at all
  • Your app has no idea any of this happened

With Uniport

  • Your app declares what it receives, and where
  • The user pays from the chain they already hold funds on
  • One quote, one deposit address, no bridge tab
  • Funds settle where your app asked for them
What Uniport gives developers

A funding primitive, not another generic bridge page.

01

Declare the settlement target

Your app chooses the recipient and destination token, such as USDC on Optimism, Base, or Sui.

02

Let the payer choose their source

Users fund from supported chains instead of being forced to bridge manually before using your app.

03

Keep orchestration off the frontend

Uniport’s hosted backend handles the quote and intent plumbing, so API keys and routing complexity stay out of app clients.

Integrate

One component turns any app action into a cross-chain deposit.

Account funding, balances, checkout: any flow where your app needs funds on one chain and users arrive with assets somewhere else.

  1. 1

    Install the SDK

    $ npm i uniport-sdk
  2. 2

    Render UniportButton with three props

    Where funds land, in what token, and what the button says.

  3. 3

    Ship it

    Your users pick a chain, get an exact quote, and pay. No backend of your own, no API key.

Read the quickstart
PropWhat it doesExample
recipient requiredYour address on the destination chain. Funds settle here."0x71C9…4e2B"
destinationToken requiredThe token and chain your app receives, named {chain}{SYMBOL}."optimismUSDC"
labelThe button text your users see."Deposit"

Nine more optional props cover a fixed amount, a prefilled refund address, the modal theme and the onSuccess / onError callbacks. All props

How it works

Four steps between your users’ chain and yours.

  1. Your app setsdestinationToken="optimismUSDC"
    01

    Set destination

    Your app chooses the token, chain, and recipient.

  2. Pay from
    EthereumSolana+22
    02

    User picks source

    The payer chooses where their assets are coming from.

  3. Send exactly1,251.84 USDCon Ethereum, to 0x8f3a…c21e
    03

    Quote returns

    Uniport gives an exact amount and deposit instructions.

  4. Your app receivesSettled1,250.00 USDCon Optimism, to 0x71C9…4e2B
    04

    App receives

    Funds settle where the app asked to receive them.

Where it fits

For apps that need deposits, not users lost in bridge tabs.

Account funding

Let users top up balances from assets they already hold.

label="Add funds"

Wallet top-ups

Give embedded or app wallets a source-chain flexible funding path.

label="Top up"

DeFi deposits

Accept liquidity without sending users away to bridge first.

label="Add liquidity"

Marketplace checkout

Receive the settlement asset while buyers pay from their chain.

label="Pay 48.00 USDC"

App onboarding

Turn first deposits into an in-app flow instead of a bridge task.

label="Fund account"

Something else?

If your app needs funds on one chain, it fits. Start with the quickstart

label="Deposit"
Supported chains

Built around the chains users already hold assets on.

Apps stay focused on their destination ecosystem while accepting deposits from every supported source network.

EthereumBaseOptimismArbitrumPolygonSolanaSuiNEARBitcoinAvalancheBNB ChainAptosTONTronStellarCardanoXRP LedgerDogecoinLitecoinBitcoin CashStarknetBerachainZcashScroll

63destination tokens

Name any of them as destinationToken: optimismUSDC, baseETH, solanaSOL, bitcoinBTC.

See every token
Questions

What developers ask first.

No. The SDK calls Uniport’s hosted backend, which keeps the routing API key server-side. Nothing secret ships in your client.

Launch with Uniport

Plug into any ecosystem from anywhere.

Uniport is a chain-abstraction SDK that lets any crypto app accept deposits from any supported chain.

Accept from24 chains
Settle toYour home chain
IntegrationOne component