What’s new?

New updates and improvements to Portal.

Follow us on social medias

Feature updates

Apr 21, 2024

Passkeys and Enclave Storage for React Native SDK

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

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

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

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

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

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!

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

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

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

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!

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!

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!

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!

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!

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!

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!

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!

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

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!

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!

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

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!

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!

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

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!

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!

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 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

Want to stay updated? Subscribe below to keep in touch.

Design pattern lines in green and blue that convey connectivityDesign pattern lines in pink and yellow that convey connectivity