2024 Releases
Last updated
Was this helpful?
Last updated
Was this helpful?
Adds support for AppData folder backups with GDrive
Adds support for wallet customization in the dapps
Removes multiple deprecated constructors, fields and methods from main user facing classes
Fixes incorrect signature being sent to Dapp browser
Changed mpc.backup()
method, it now returns a object with key and a callback that you the consumers must call to complete the backup
Adds unit tests for GDrive related classes
Adds support for AppData folder backups with GDrive
Changes createWallet
to return non-optional eth and Solana addresses & recover wallet non-optional ETH address EIP-6963 Support in the Dapp Browser
Adds wallet_getCapabilities
method to the provider
Throws errors for isWalletOnDevice
instead of returning false for errors
Adds chainId
as optional field to Portal Class.
Fixes compatibility with Lido sdk provider
Removed the ability for the Javascript to continue running after the WebView is closed
Added evaluateTransaction
method for both EVM and Solana
Added buildTransaction
method for both EVM and Solana
Added getNFTAssets
method to get NFT assets by chainId
Added getAssets
method to get assets by chainId
Added isWalletBackedUp
method to check if the user has backed up their wallet
Added isWalletRecoverable
method to check if the user can recover their wallet
Added availableRecoveryMethods
method that returns a list of available recovery methods based on the user's backups
Deprecated personalSign
, getBalances
, getNFTs
, and simulateTransaction
Add portal.getRpcUrl(forChainId)
Add buildTransaction
methods for ETH & SOL
Add getNFTAssets
method to get NFT assets by chainId
Add getAssets
method to get assets by chainId
Enhance the errors to have a proper localizedDescription
Fix for the GET Transactions API response.
Add buildTransaction
methods for ETH & SOL
Add getNFTAssets
method to get NFT assets by chainId
Add getAssets
method to get assets by chainId
Remove SolanKt library from Portal SDK
Added isWebSocketAllowed()
function
Fixes cross-SDK recovery
Fixes cross-SDK recovery
Fixes cross-SDK recovery
Fixes cross-SDK recovery
Fixes some typing issues with the chainId
when using the Portal Swaps implementation.
Android support is available again
Breaking change to PortalKeychain.metadata
to be instance member & thread-safe.
Fixes the Portal.isWalletBackedUp()
bug.
Breaking change to handle the unauthorized session to throw PortalRequestsError.unauthorized
instead of a generic error
Fix Gdrive backup current activity null bug
Moves the PasskeyStorage
and GoogleStorage
class initializations out of the Portal initialization path.
These Storage adapters will now be initialized when their respective portal.configureXxxxxxxxStorage()
functions are invoked
Added support for rawSign
PortalConnect Update
Adds emitGetSessionRequest()
to Connect class
Allows customers to retrieve previous session requests from dApps.
This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request. Read more on and .
Adds thread safe access to client
Adds evaluate transaction function using evaluate endpoint
Refer to the for more details
Adds sol_getTransaction
RPC request
PortalConnect Update
Adds emitGetSessionRequest()
to Connect class
Allows customers to retrieve previous session requests from dApps.
This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request. Read more on and .
Fix chainId
in signing request callback
Fix relyingPartyId
default overwrites in passkey backup
Adds PortalHttpUnauthorizedException
to throw when user token expires or is invalid
Fixes an issue when signing after recovering
Fix eject error handling
Default rpc urls
Webview made public
Add canUsePasskeys()
helper method
Add default value for RPC Config in Portal constructor
Add canUsePasskeys()
helper method to Portal class
Add wallet lifecycle methods ()
Disable logs in production builds with R8/proguard enabled apps.
Add Backup with Portal support
Hot-Fix: recovering bug after solana generate with no backup.
Fixes solana share is erased when recovering
GDrive upgrades and bug fixes
Solana migration support for pre-multi wallet sdk versions ()
Solana Eject ()
Solana migration support for pre-multi wallet sdk versions ()
Solana Eject ()
Includes chainId
on the payload provided to all Provider.request()
approval hooks
Resolves issues with featureFlag
propagation during backup and recovery
Resolves issues with continuation.resume()
falling through
Adds support for Backup with Portal
Resolves an issue with signing share lookup when upgrading from 3.0.x to 3.1.x
New Features:
Solana Support! (details )
Eject for ed25519
(Solana) (details )
Raw Signature (details )
Chain Agnostic Provider pass any chain the portal.request
method to interact with that chain without worrying about switching the chain on the portal object.
Breaking changes:
Generate returns addresses (eip155
and solana
)
Portal connect instance manages its own chainId
Gateway config uses new network format of Namespace:reference
ie. eip155:1 for mainnet
Note: RN version 4.0.0 currently only supports iOS. Android support will follow along soon!
PortalConnect Update
Adds emitGetSessionRequest()
to Connect class
Allows customers to retrieve previous session requests from dApps.
This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request. Read more on and .
Tracking SDK version on requests to Portal
PortalConnect Update
Adds emitGetSessionRequest()
to Connect class
Allows customers to retrieve previous session requests from dApps.
This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request. Read more on and .
Tracking SDK version on requests to Portal
PortalConnect Update
Adds emitGetSessionRequest()
to Connect class
Allows customers to retrieve previous session requests from dApps.
This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request. Read more on and .
Tracking SDK version on requests to Portal
Fixed GDrive bug
No longer creates an empty folder if a user attempts to recover with the incorrect gmail account.
PortalWebView
is now a proper View and can be used and controlled independently without using a fragment
PortalWebViewFragment
now uses this new PortalWebView
fragment while providing the same old functionality so no changes are needed on consumers' side.
Stabilize multi-wallet support
Add send Solana helper function SDK API requests now also send the exact SDK version
SDK now fully supports minification and have all the consumer proguard rules inside it.
Consumers of the SDK don't need to worry about Portal SDK proguard/R8 rules.
Remove Context from the Keychain constructor Multiple SDK bug fixes
Fix R8 Build failure
Add more missing Progaurd rules
Removes unnecessary featureFlags.optimzed
flag
Update error handling
Captures the SDK version for server-side logging during MPC operations
Updated swiftformat
rules
Fixed crash while setting self.events[event] = event
Added test case for PortalConnect.swift
Created new class for EventBus
unit test
Removed apiKey constraint
Added support for updating RPC URL on chain changed
Resolves once listener bug
Resolves disconnect event emit bug
Adds check to params for requests
apiKey
is now a private variable
Adds count check to params for requests
Publish v3 version of the sdk to maven
Bump maven version name
Make PortalErrorCodeTypes
public
Fixes codes is not a class member field so it is not accessible once the class has been initialized
Resolves once listener bug
Resolves disconnect event emit bug
Resolves once listener bug
Resolves disconnect event emit bug
Adds check to params for requests
apiKey
is now a private variable
Adds count check to params for requests
GDrive share recovery issue due to cached access token
Fix broken auto-approve feature
Fixes issues with the Google auth prompt not firing properly
Replaces our Google oAuth implementation with the GSI library to address Google Drive permissions issues.
Added ActivityResultManager
internally to the sdk
This is a breaking change that removes the need for you to call our sdk in the onActivityResult
to receive results from Gdrive backup.
This also removes the need to pass the context into the GoogleStorage and PasskeyStorage objects.
This is all utilizing ActivityLifeCycleCallbacks
Fixed a crash in storedClientBackupShare
Improved PasskeyStorage
Removed callbacks and added proper coroutines
Added a field preferImmediatelyAvailableCredentials
to allow for configuring this option
Added a check to error if the android device does not have the required android API version to run passkeys
Solana Support
Adds a helper sendSol
function
Adds a createSolanaRequest
function
Adds all of the Solana RPC methods to our Provider
Adds the following Solana signing methods
sol_signAndConfirmTransaction
sol_signAndSendTransactio`
sol_signMessage
sol_signTransaction
Increase the min deployment version to iOS 15
Adds the solanaSwift
library as a dependency
Add missing consumer proguard rules
Update SDK to use latest Android libraries
Fix a passkey flow crash
This release includes major changes to our Web SDK, and specifically it includes support for Solana!
We also completely rewrote the documentation for the Web SDK, so we recommend reviewing them from the beginning as you upgrade to 3.0.0!
Added portal.sendSol
Renames portal.ejectPrivateKey
to portal.eject
, also fixes eject functionality new Portal(config)
, config excludes chainId
, changes property gatewayConfigto rpcConfig
Added portal.getEip155Address
Added portal.getSolanaAddress
Added portal.checkSharesOnDevice
Added portal.doesWalletExist
Added portal.isWalletOnDevice
portal.ethEstimateGas
now has chainId
as the first argument, added deprecation warning
portal.ethGasPrice
now has chainId
as the first argument, added deprecation warning
portal.ethGetBalance
now has chainId
as the first argument, added deprecation warning
portal.ethSendTransaction
now has chainId
as the first argument, added deprecation warning
portal.ethSign
now has chainId
as the first argument, added deprecation warning
portal.ethSignTransaction
now has chainId
as the first argument, added deprecation warning
portal.ethSignTypedData
now has chainId
as the first argument, added deprecation warning
portal.ethSignTypedDataV3
now has chainId
as the first argument, added deprecation warning
portal.ethSignTypedDataV4
now has chainId
as the first argument, added deprecation warning
portal.personalSign
now has chainId
as the first argument, added deprecation warning
portal.getBalances
now has chainId
as the first argument
Removed portal.getBackupShareMetadata
(in favor of portal.getClient
)
Removed portal.getSigningShareMetadata
(in favor of portal.getClient
)
portal.getNFTs
now has chainId
as the first argument
portal.getTransactions
now has chainId
as the first argument
portal.simulateTransaction
now has chainId
as the first argument
portal.getQuote
now has chainId
as required
portal.getSources
now has chainId
as required
portal.getRpcUrl
now has chainId
as an optional argument
Fix Json parsing type issues for HTTP requests
Made gas field optional/nullable in transaction params
Changed the EMM endpoints for v1 to v1/sdk
Adds multi-wallet support (a prerequisite for Solana support!)
portal.backup()
is now returning a BackupResponse type, so this release includes a breaking change.
Passkey + Enclave Storage
Check out the docs to learn more.
Public NPM packages
You no longer need an npm token to use the react native sdk 🙂
Fixes WebView's wallet_switchEthereumChain
handler for Base (and any chainId greater than 255).
Adds support for development in Xcode 15.3
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.
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
Removes portal.legacyRecover
(deprecated)
Removes WalletConnect v1 implementation (deprecated)
Removes portal.legacyRecover
(deprecated)
Removes WalletConnect v1 implementation (deprecated)
Updated binary
Removes portal.legacyRecover
(deprecated)
Fixes a bug that prompted users for permission to access the local network.
Added the featureflag.isMultiBackupEnabled
if present to storedClientBackupShare
and storedClientBackupShareKey
requests
Adds isMultiBackupEnabled
to featureFlags and attaches it to metadata when calling MPC Client binary methods.
MPC Binary Release for version: 4.0.28
Added .getBackupShareMetadata()
to get backup shares' details for a user.
Added .getSigningShareMetadata()
to get signing shares' details for a user.
Configurable relying party for Passkeys
Set your own domain as the relying party for your passkeys!
Added .getBackupShareMetadata()
to get backup shares' details for a user.
Added .getSigningShareMetadata()
to get signing shares' details for a user.
Added .getBackupShareMetadata()
to get backup shares' details for a user.
Added .getSigningShareMetadata()
to get signing shares' details for a user.
3X Performance optimizations for all MPC operations!!!
Adds support for multi-backup. (Details to follow next week!)
Configurable relying party for Passkeys Resolves session management for local development
Added .getBackupShareMetadata()
to get backup shares' details for a user.
Added .getSigningShareMetadata()
to get signing shares' details for a user.
Adds support for multi-backup. (Details to follow later this week!)
Updated staging domains for example app.
Adds support for multi-backup.
Updated staging domains for example app.
Adds support for multi-backup.
Updated staging domains for example app.
Fix for Google Drive permission cancellation during backup.
Support for client attestation when using the optimized: true
feature flag
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
Addition of eject support to eject an MPC wallet's private key
Support for client attestation when using the optimized: true
feature flag
Support for client attestation when using the optimized: true
feature flag
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
Adds support for switching chains in the PortalWebView.
Fixes a bug with transaction rejection.
Adds support for switching chains in the PortalWebView.
This release includes access to the Passkeys via our Web SDK!
Fixes bug with webview switch chain Passkey + Enclave Storage (Alpha) check out the docs to learn more
Fixes bug with webview switch chain support
Eject feature available via the portal.mpc.ejectPrivateKey
function.
Fixes bug with request approvals and rejections the PortalWebView
Eject feature available via the portal.mpc.ejectPrivateKey
function.
This release includes access to the Eject Feature via our 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.
Eject feature available via the portal.ejectPrivateKey
function
This release includes access to the Eject Feature via our 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.
Eject feature available via the portal.ejectPrivateKey
function
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.
Fixes auto-connect to Aave in the PortalWebView
.
Added convenience methods for ethGetBalance
, ethEstimateGas
, and ethGasPrice
.
Updated example apps to use the Sepolia chain instead of Goerli by default.
Passkey + Enclave Storage (Alpha)
Multi-backup is here in all SDKs! Read how to get started using it with the .
Multi-backup is here in all SDKs! Read how to get started using it with the .