Skip to main content
Before Flow can quote or move anything, it needs a wallet, an exchange account, or an address on the other side of the transfer. That is the connection, and Flow supports more than one kind.

The kinds

A wallet or an exchange account connects the same way whether a flow is involved or not. Adopt either with no transfer attached. A deposit address doesn’t work that way: Flow generates one as part of a flow, so it has no standalone form.

Wallets

A wallet the user already owns: MetaMask, Phantom, Rainbow, a Ledger. These are externally owned accounts, and they differ from embedded wallets, which Dynamic creates and the user does not have to install. There are two routes to connecting one. The choice is about where the wallet UI lives rather than what the user ends up with: You can use both. Native in your main app, hosted where building a picker is not worth it or where you cannot add an SDK. Supported wallets lists which wallets work on which chains, and the standards behind them.

Exchange accounts

The user authorises an exchange account rather than a wallet. Standalone, that authorisation lets you read balances and send a direct withdrawal; as part of a flow, it pays from the balance held there instead. No on-chain wallet is involved and the user signs nothing either way. See Exchange connections for which exchanges, how authorisation works, and what you can do once an account is connected.

Deposit addresses

The one option that connects nothing. Flow generates a unique address per transaction, and the user sends funds to it. That suits a payer coming from a centralised exchange, a cold wallet, or any context where connecting is impractical. The inbound transfer is detected automatically. Show the address as a QR code, or let the user copy it. Because nothing is connected and nothing is signed, a deposit-address transfer skips the prepare, sign, and broadcast steps of the lifecycle. Supported on BTC, SOL, EVM, and TRON.

Choosing

A connection is chosen per transfer rather than per product, so you can offer several and let the user pick. The practical split: wallet connections when your users are crypto-native and arrive with a wallet, exchange connections when they keep funds on an exchange rather than on-chain, and a deposit address as the fallback that works from anywhere without asking anyone to connect.

Next

Conversion

What happens when the connected source holds something other than what you settle in.

Lifecycle Walkthrough

How a connection becomes a settled transfer.
Last modified on September 21, 2026