Skip to main content
This is an enterprise-only feature. Please contact us to enable.
On iOS the hosted connect page contract is the same as the web, hosted inside a web view. The result comes back on a custom URL scheme instead of an https callback. The whole integration is one small Swift file, FireblocksConnectFlow.swift. Copy it, call it, read the result. For a fully native wallet list with message and transaction signing, see iOS headless.
Present with ASWebAuthenticationSession: it is built for “open web, return via a callback scheme,” runs ephemerally (no consent prompt, no stale-session lag), and needs no navigation glue. Use a WKWebView only if you need the flow embedded in custom UI.
FireblocksConnectFlow.swift

1. Register your URL scheme

Add your app’s custom scheme to Info.plist. It only has to match the scheme you pass to the flow.
Info.plist

2. Present the flow

Call FireblocksConnectFlow.present. It appends redirect_uri, a random nonce, and embedded=1 to the URL, opens the session, verifies the returned nonce, and hands you a typed result. Pass environmentId to target a different Dynamic environment.
ConnectButton.swift
Forward your app’s onOpenURL to FireblocksConnectFlow.handleCallbackURL($0). Most wallets return inside the session, but some (Phantom) finish in their own in-app browser and hand the result back via the scheme.
App.swift

3. Use the result

WalletConnection carries the same fields as the web callback (the nonce is already verified for you):
The embedded=1 flag tells the page it is inside a native container, so it opens wallets via their native scheme and avoids redirect protocols that would escape to Safari. Real wallet round-trips require a physical device. Wallets do not run in the Simulator.
Last modified on September 21, 2026