NEAR Connect iOS supports all wallets in the near-connect manifest, providing seamless integration with the full NEAR wallet ecosystem.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/frol/near-connect-ios/llms.txt
Use this file to discover all available pages before exploring further.
Wallet Compatibility
All wallets supported by the underlying@hot-labs/near-connect JavaScript library work out of the box—no additional configuration needed.
| Wallet | Type | Status | Notes |
|---|---|---|---|
| HOT Wallet | Native app (Telegram) | Tested | Deeplinks to Telegram app |
| Intear Wallet | Web app | Tested | Opens in-app browser |
| MyNearWallet | Web app | Tested | Opens in-app browser |
| Meteor Wallet | Web app | Tested | Opens in-app browser |
New wallets added to the near-connect manifest automatically become available without requiring updates to your app or the NEAR Connect iOS library.
Wallet Types
Web Wallets
Web-based wallets are hosted web applications that handle authentication and transaction signing in a browser environment. How they work:- When the user selects a web wallet from the selector, near-connect calls
window.open()to create a popup - NEAR Connect iOS intercepts this and creates a new
WKWebViewpopup - The popup loads the wallet’s web interface
- After authentication or transaction approval, the wallet redirects back to the bridge page with result data
- The popup is automatically closed and removed
- No app installation required
- Works immediately on any device
- Wallet updates don’t require app updates
- Universal compatibility across platforms
- Requires internet connection
- May be subject to Cloudflare or other web protections
- User must trust the in-app browser environment
Native App Wallets
Native app wallets are standalone iOS (or cross-platform) applications installed on the user’s device. How they work:- User selects a native wallet from the selector
- near-connect generates a deep link URL (e.g.,
tg://,near://) - NEAR Connect iOS detects the custom URL scheme and opens it with
UIApplication.shared.open() - The wallet app launches, shows its native UI, and processes the request
- After approval, the wallet redirects back to your app or the web bridge with result data
- Native iOS UI and performance
- Can work offline (depending on wallet implementation)
- Better integration with device security (biometrics, secure enclave)
- More control over UX
- User must have the wallet app installed
- Deeplink URL schemes must be properly configured
- App-to-app communication depends on URL callbacks
Special Case: HOT Wallet (Telegram)
HOT Wallet is a NEAR wallet built into Telegram as a mini-app. It’s a hybrid approach:- Launched via deep link:
https://t.me/...ortg://... - Runs in the Telegram app’s embedded browser
- Leverages Telegram’s authentication and security
- Returns to your app via callback URL
HOT Wallet requires the Telegram app to be installed. If it’s not, the deep link will fail silently or prompt the user to install Telegram from the App Store.
Connecting to Specific Wallets
You can programmatically connect to a specific wallet by ID:"hot-wallet"- HOT Wallet (Telegram)"my-near-wallet"- MyNearWallet"meteor-wallet"- Meteor Wallet"intear-wallet"- Intear Wallet
Wallet Feature Support
Different wallets support different features. NEAR Connect iOS handles feature detection automatically via the near-connect library.Common Features
All listed wallets support:- ✅ Wallet connection - Basic account authentication
- ✅ NEAR transfers - Sending tokens to other accounts
- ✅ Smart contract calls - Invoking contract methods
- ✅ Transaction signing - Signing and broadcasting transactions
Optional Features
| Feature | HOT | MyNearWallet | Meteor | Intear |
|---|---|---|---|---|
| NEP-413 Message Signing | ✅ | ✅ | ✅ | ⚠️ Varies |
| Sign and connect (combined) | ✅ | ⚠️ Varies | ⚠️ Varies | ⚠️ Varies |
| NEP-366 Delegate Actions | ⚠️ Varies | ⚠️ Varies | ⚠️ Varies | ⚠️ Varies |
When a wallet doesn’t support an optional feature like
connectAndSignMessage(), NEAR Connect iOS gracefully falls back to basic sign-in without the message signature.Handling Fallbacks
The library automatically handles cases where a wallet doesn’t support advanced features:Example: Connect and Sign Message
NEARWalletManager.handleEvent():
Network Support
All wallets support both mainnet and testnet. The network is configured when initializing the manager:- Which wallet environments are shown in the selector
- Which RPC endpoints are used for queries (
rpc.mainnet.near.orgvsrpc.testnet.near.org) - Where transactions are broadcast
Changing the network after accounts are connected will disconnect the current session, as wallet sessions are network-specific.
Session Persistence
Connected wallet sessions persist across app launches:- ✅ Account ID (e.g.,
"user.near") - ✅ Public key (if provided by wallet)
- ✅ Wallet ID (which wallet was used)
- ❌ Private keys (always remain in the wallet)
NEAR Connect iOS is non-custodial. Your app never has access to private keys—all signing happens inside the wallet, whether web-based or native.
Disconnecting Wallets
Disconnecting works the same for all wallet types:- Calls
window.nearDisconnect()in the JavaScript bridge - Clears the near-connect session state
- Sets
currentAccounttonil - Removes the stored account from UserDefaults
Adding Custom Wallets
If you’re building a custom NEAR wallet or want to integrate a wallet not in the manifest, you can:- Submit to the near-connect manifest: Open a PR to near-connect-ios repository
- Fork and modify: Clone the near-connect library and add your wallet to the manifest locally
- Use direct connection: If your wallet follows NEAR wallet standards, use
connect(walletId:)with your custom wallet ID
Security Considerations
Web Wallets
- Run in
WKWebViewwith standard WebKit sandboxing - Use
WKWebsiteDataStore.default()to enable cookies (required by some wallets) - Custom user agent to ensure compatibility:
Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 ...) - HTTPS-only for production wallets (near-connect enforces this)
Native Wallets
- Deep link validation ensures only registered URL schemes are opened
- Callback URLs are verified by near-connect before processing
- Private keys remain in the native app’s secure storage (Keychain, secure enclave, etc.)
Bridge Security
- The persistent WebView only loads the bundle’s local HTML file
- JavaScript is loaded from the official near-connect CDN with integrity checks
- Message handlers only accept messages from the trusted bridge page
- All wallet operations require user approval in the wallet UI
For production apps, always test wallet integration thoroughly on both mainnet and testnet, with both web and native wallet types.