What’s new?
New updates and improvements to Portal.
Feature updates
Apr 21, 2024
Passkeys and Enclave Storage for React Native SDK
React Native 3.0.6:
- Passkeys + Enclave Storage: Check out the docs to learn more.
- Public NPM Package: Developers no longer need NPM Auth token to use the SDK
See on twitter
Apr 12, 2024
Fix WebView Chain Switching Handler
iOS 3.0.7:
- Fixes WebView's wallet_switchEthereumChain handler for Base (and any chainId greater than 255).
See on twitter
Apr 10, 2024
Added Xcode 15.3 development support for iOS SDK
iOS 3.0.6:
- Adds support for development in Xcode 15.3
See on twitter
Mar 22, 2024
Adds optional field to Google Storage Class
Android 3.0.7:
- Adds optional field to Google Storage class: signoutAfterUse. This will sign the user out of their google account that was used to run backup or recover. It requires the user to select the google account each time they run google backup or recover.
See on twitter
Mar 15, 2024
Passkeys Backup Added to Android SDK
Android 3.0.6:
- Adds support for Passkeys backup. You can read more about setting up Passkey backups in the Android Backup Methods guide in our docs
- Updates to README
See on twitter
Mar 8, 2024
Deprecate legacy Portal Recover and WalletConnect v1
iOS 3.0.5:
- Removes portal.legacyRecover (deprecated)
- Removes WalletConnect v1 Implementation (deprecated)
Android 3.0.5:
- Removes portal.legacyRecover (deprecated)
- Removes WalletConnect v1 Implementation (deprecated)
React Native 3.0.4:
- Removes portal.legacyRecover (deprecated)
Web 1.0.4:
- Updated binary
See on twitter
Feb 16, 2024
Web SDK Level Up: Multi-Backup Support and 3X Faster Operations!
iOS 3.0.1, Android 3.0.2, React Native 3.0.1, Web 1.0.1:
- Added .getBackupShareMetadata() to get backup shares' details for a user.
- Added .getSigningShareMetadata() to get signing shares' details for a user.
Web 1.0.1:
- 3X Performance optimizations for all MPC operations!!!
- Adds support for multi-backup. Read more about it here
- Configurable relying party for Passkeys
- Resolves session management for local development
Web 3.0.1:
- Configurable relying party for Passkeys.
- Set your own domain as the relying party for your passkeys! See the docs
See on twitter
Feb 12, 2024
Multi-Backup Support Added for React Native
React Native version 3.0.0:
- Adds support for multi-backup. Read more about it here
- Updated staging domains for example app.
See on twitter
Feb 9, 2024
Multi-Backup Support Added for iOS and Android SDKs
Swift version 3.0.0:
- Adds support for multi-backup. Read more about it here
- Updated staging domains for example app.
Kotlin version 3.0.0:
- Adds support for multi-backup. Read more about it here
- Updated staging domains for example app.
- Fix for Google Drive permission cancellation during backup
See on twitter
Feb 2, 2024
Client Attestation and Changing Chains on dApps in WebView Support
iOS 2.1.2, Android 2.1.2, React Native 2.1.2, and Web 0.1.2:
- Support for client attestation when using the optimized: true feature flag
All Mobile SDKs:
- Support for changing chains on a dApp in the WebView from the app Provider. This allows for the setChainId or updateChain functions in your app to also control the chain of a PortalWebView
See on twitter
Jan 31, 2024
Jan 2024: Exciting New Features (Passkeys Storage, Eject Feature), WebView Feature Expansion and Sepolia Testnet Support Added!
Release Highlights
Passkeys Backup & Recovery Release Added to iOS and Web SDK
- iOS 2.0.16: Passkey + Enclave Storage (Alpha). Check out the docs to learn more.
- Web 0.1.1: Passkey + Enclave Storage (Alpha). Check out the docs to learn more.
You can also visit web-demo.portalhq.io to see Passkey Backup and Recovery action.
Eject Feature Launched Across SDKs
Eject enables users to choose to migrate from MPC (with two key shares) to their own non-custodial wallet with a single private key. You can learn more about the Eject Feature on our docs.
React Native 2.1.0, iOS 2.1.0, Android 2.1.0, Web 0.1.0:
- Eject feature available via the portal.mpc.ejectPrivateKey function.
Expanded Portal WebView Auto-connect Feature
iOS 2.1.0: Fixes bug with request approvals and rejections the PortalWebView.
React Native version 2.0.14: Fixes auto-connect to Aave in the PortalWebView.
iOS 2.0.18:
- Fixes auto-connect to Aave in the PortalWebView.
- Adds other PortalWebView improvements:
- Adds support for opening new tabs in the same view.
- Fixes a force unwrap bug.
- Improves script inject point for more reliable auto-connect.
- Removes session persistence between sessions by default, but can be configured to be enabled.
React Native 2.0.12:
- Improved auto-connect functionality for Aave in the WebView
- Sunsetting the @portal-hq/components package in favor of @portal-hq/webview: This does not remove our published @portal-hq/components package, but this package will not be maintained in the future, so please update your local package to use @portal-hq/webview if you’re currently using the React Native WebView
Sepolia Testnet Support
React Native 2.0.12:
- Added support for Sepolia testnet, enhancing multi-chain and testing capabilities.
See on twitter
Dec 31, 2023
Dec Updates: WebView & Web3Provider Upgrades!
Release Version Highlights
Android 2.0.13. Web 0.07:
- Added convenience methods for ethGetBalance, ethEstimateGas, and ethGasPrice.
- Updated example apps to use the Sepolia chain instead of Goerli by default.
iOS 2.0.14, Android 2.0.12:
- Support for page loading callbacks in WebView.
React Native 2.0.12:
- Improved WebView dApp support for auto-connect.
See on twitter
Nov 20, 2023
Nov Updates: SPM & Custom Nonce support, and more!
Release Version Highlights
iOS 2.0.11:
- Adds support for SPM directly in the PortalSwift repo
- Makes the PortalSwift repo public to work better with CI tools. Please note that while the PortalSwift repository has tags for older versions of the SDK, only 2.0.11 and greater will actually support SPM, so please keep this in mind when upgrading your project.
Android 2.0.11, iOS 2.0.13, React Native 2.0.11:
- Adds support for setting a custom nonce to iOS and Android.
- Makes the PortalWebView.webView and PortalWebView.webViewContentIsLoaded properties public in iOS and Android.
- Updates dependencies in React Native.
See on twitter
Nov 3, 2023
Cross-device wallet syncing now available!
Release Version Highlights
Native Android 2.0.9, Native iOS 2.0.10, React Native 2.0.10, Web 0.0.5:
- Users can now create multiple signing shares across all of the Portal SDKs. For example, a user can create a wallet on an iOS device and continue using that wallet on your web app!
- Use portal.provisionWallet (or portal.recoverWallet) to enable your users to create multiple signing shares across all of the Portal SDKs. Read more here
- Improved auto-connection for Native iOS WebView.
See on twitter
Oct 30, 2023
Swaps support added for Web!
Common SDK Updates:
- Enhanced portal.getTransactions to support optional arguments: limit, offset, order, and chainId.
- Transactions from portal.getTransactions now include metadata.blockTimestamp and chainId. Read more here.
- Added support for allowanceTarget in Swap quotes.
Web 0.0.4
- New helper methods for getBalances, getTransactions, and getNFTs. Read more here.
- Introduced Swaps support.
See on twitter
Oct 27, 2023
New Modular Backup Methods on React Native and Android: Password and PIN!
Release Version Highlights
Common SDK Updates:
- Enhanced portal.getTransactions to support optional arguments: limit, offset, order, and chainId.
- Transactions from portal.getTransactions now include metadata.blockTimestamp and chainId. Read more here.
- Added support for allowanceTarget in Swap quotes.
Native iOS 2.0.9: No specific updates.
Native Android 2.0.8
- Introduced PortalWebView. Read more here.
- Alpha release of Password/PIN Backups.
React Native 2.0.9
- Alpha release of Password/PIN Backups.
See on twitter
Oct 20, 2023
New Modular Backup Method on iOS & Web: Password and PIN!
Release Version Highlights
All SDK versions: Resolves issues with WalletConnect when dApps exclude requiredNamespaces fields in their session proposal.
iOS 2.0.8
- The alpha release of our Password/PIN Backups is now included.
- Improved memory management for WalletConnect WebSocket connections.
Android 2.0.7: Improved memory management for WalletConnect WebSocket connections.
React Native 2.0.8: Improvements to setup components.
Web 0.0.1:
- Sets max-age on Web SDK cookies.
- Improved logging.
- The alpha release of our Password/PIN Backups is now included.
See on twitter
Oct 14, 2023
Web SDK is now 10x faster!
Release Version Highlights
Web 0.0.1-rc2m: We are so excited to announce significant performance improvements on the Web SDK!
- Sign times should now be roughly 10x faster and Generate and Backup are now 50% faster
- Introduced portal.getTransactions and portal.getClient methods
- Client Management: Added backupStatus and signingStatus to portal.getClient
- Types Update: Revised types for the /clients/me endpoint
iOS2.0.7: No unique updates.
Android2.0.6: No unique updates.
React Native2.0.7: No unique updates.
See on twitter
Oct 7, 2023
October Weekly Highlights
Release Version Highlights
All SDK versions: Added backupStatus and signingStatus in portal.api.getClient & portal.client returned values. Updated types for /clients/me endpoint.
iOS 2.0.6: No unique updates.
Android 2.0.5: No unique updates.
React Native 2.0.6:
- Made portal.updateChain async.
- Typo fix in portal_signature.
- Received event.Coding style unified via linters.
Web 0.0.1: No unique updates.
See on twitter
Sep 30, 2023
10x speed boost for Generate, Backup, and Recover!
Release Version Highlights
All SDK versions: Introduce an optional featureFlag into the Portal instance. Set optimized: true for a 10x speed boost for generate, backup, and recover!
iOS 2.0.5: Correction: Changed eth_sendTransaction to eth_signTypedData.
Android 2.0.3: New: Added UserRecoverableGDriveException in the Gdrive storage class. This exception streamlines the process of catching user permission or authentication issues.
React Native 2.0.3: No unique changes for this release.
Web 0.0.1-rc2l: Security Update: Transitioned from static Paillier key usage to dynamic Paillier key retrieval.
See on twitter
Sep 16, 2023
Added support for new RPC methods!
Release Version Highlights
All SDK versions: Resolves issues with WalletConnect when dApps exclude requiredNamespaces fields in their session proposal and fixed issue passing chainId from Portal Connect Server.
iOS 2.0.3: Added support for the following RPC methods:
- eth_getBlockByNumber
- eth_getBlockTransactionCountByHash
- eth_getBlockTransactionCountByNumber
- eth_getLogseth_getTransactionByBlockHashAndIndex
- eth_getTransactionByBlockNumberAndIndex
- eth_getBlockByHash
- eth_getTransatctionByHash
- eth_getUncleByBlockHashAndIndex
- eth_newBlockFilter
- eth_newFilter
- eth_uninstallFilter
- net_listening
- web3_clientVersion
- web3_sha3
iOS 1.1.10: No unique updates.
Android 1.1.5: No unique updates.
Android 2.0.2: No unique updates.
React Native 2.0.2: Updated Portal UI components.
See on twitter
Sep 2, 2023
September Weekly Highlights
Release Version Highlights
iOS 2.0.0, Android 2.0.0, React Native 2.0.0:
- Recovery Update: Breaking Change: The recover function now solely updates signing shares, returning the wallet address similar to generate. Earlier versions updated both signing and backup shares, with potentially confusing error handling. For those wanting the older method, use the new legacyRecover function.
- PortalConnect Enhancements: Boosted reliability with a new ping interval and advanced reconnection logic.
See on twitter
Aug 30, 2023
Query on-chain wallet data with a simple API call!
Release Version Highlights
iOS 0.2.4, Android 0.9.2, React Native 0.3.7: The following three additions to portal.api will enable you to query the blockchain for user wallet data with these simple API calls:
- getNFT: You can retrieve a list of NFTs owned by the wallet.
- getBalance: Retrieves the balance of all ERC20 tokens the wallet owns.
- getTransactions: Returns a list of transactions of the wallet.
You can find these API methods in documentation for React Native, iOS and Android.
React Native 0.3.7: Progress callbacks for MPC operations added to enable developers to check in on the status of each MPC operation.
See on twitter
Aug 26, 2023
Introducing Transaction Simulation!
We are excited to introduce Transaction Simulation on Portal so you can protect your users from accidental or malicious transactions on the blockchain! Support for api.simulateTransaction() function is now available starting iOS 1.1.8, Android 1.1.4 and React Native 1.1.3.
Other August highlights include:
React Native 1.1.3: Adds support for backupMethod when calling storedClientBackupShare().
iOS 1.1.6, Android 1.1.3, React Native 1.1.2:
- Tracking backup storage method used by a client.
- Refreshed MPC binary.
React Native 1.1.1: Adds setChainId function to the PortalConnect class.This enables switching the active chain on a dApp from the wallet.
See on twitter
Jul 22, 2023
July Highlights
Release Version Highlights
iOS 1.1.0, Android 1.1.0, React Native 1.1.0:
- PortalConnect now manages its own Provider instance to prepare for wallet_switchEthereumChain support.
- PortalConnect is no longer initialized via PortalConnect(portal) class. Instead use Portal.createPortalConnectInstance(). This is a breaking change required to support the Provider update listed above.
- PortalConnect now manages session state internally. All calls to PortalConnect.connect(uri) that already have an active session will be ignored to prevent errors with existing WebSocket connections.
- Enabled disconnect from PortalConnect.
- Helper methods have been added to the Portal class for the following:
- MPC: createWallet, backupWallet, recoverWallet
- Provider: emit, ethSendTransaction, ethSign, ethSignTransaction, ethSignTypedData, on, personalSign, request
- Keychain: deleteAddress, deleteSigningShare
- PortalConnect: createPortalConnectInstance
React Native 1.0.5: Keys values stored in KeyChain with clientId to support multiple clients on one device.
See on twitter
Jun 12, 2023
Wallet Safeguarding Support Published!
Release Version Highlights
iOS 1.0.0, Android 1.0.0, React Native 1.0.0:
Updates: Support for Wallet Safeguarding
- Manages the state of the wallet during state-changing MPC Operations to track the wallet lifecycle
- Requires use of portal.api.storedClientBackupShare after backup or recover
- Adds client side check if already running a state-changing MPC Operations and prevents concurrent calls
- Adds additional verification to ensure cloud storage is available before running backup
Breaking Changes
- After running portal.mpc.backup or portal.mpc.recover and successfully saving the returned backup cipher text to your backend, you must call portal.api.storedClientBackupShare in order to correctly update the state of the wallet.
You can find more details in our iOS, Android or React Native backup and recover docs, but a summarized version of the new flow and the required change below:
Backup
1. Generate an encrypted client backup share using portal.mpc.backup.
2. Send the resulting backup share to your API and store it.
3. (NEW REQUIREMENT) Call portal.api.storedClientBackupShare to notify Portal that the encrypted client backup share was saved successfully.
Recover
1. Retrieve the encrypted client backup share from your API.
2. Get a new encrypted client backup share from running portal.mpc.recover.
3. Send the new backup share to your API and store it.
4. (NEW REQUIREMENT) Call portal.api.storedClientBackupShare to notify Portal that the client backup share was saved successfully.
For more details on the lifecycle of a Portal Wallet Lifecycle docs.
See on twitter
May 30, 2023
Introducing Swaps powered by 0x!
We're excited to announce our native swaps integration with 0x protocol. With this integration you can enable swaps through the Portal SDK and access these features:
- Enable swaps for your users across thousands of tokens on all ETH and EVM-compatible blockchains;
- Tap into aggregated liquidity across DEXs with one simple integration;
- Set and take fees onchain by charging a spread on each transaction, instantly generating revenue;
- Build your own user interface on top of Swaps into your app;
- Curate the types of tokens you choose to make available to your users
Available across React Native, iOS and Android SDKs.
See on twitter
May 6, 2023
Wallet Connect support for iOS and Android SDKs!
Wallet Connect v1 and v2 support is added for iOS 0.2.0 and Android 0.9.0! You can find documentation on Wallet Connect support here for iOS, Android and React Native.
Portal's Wallet Connect support benefits developers in a few key ways:
Automatic patches and upgrades
Portal's implementation pushes all third-party integrations such as WalletConnect to the server. This design ensures Portal can patch breaking changes and upgrades from the third party provider before they become issues for developers.
No dependencies
Because WalletConnect is integrated directly into the Portal SDK, a developer only needs to implement the functionality as per Portal documentation. In addition, if an organization determines they want to use WalletConnect later in their development cycle, the integration is just as simple and doesn’t require any reworking of the code.
See on twitter