Android
You can find the latest updates for the Portal Android SDK below.

https://github.com/portal-hq/portal-android/blob/main/CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
Possible Types of changes include:
- Added
- Changed
- Deprecated
- Removed
- Fixed
- Security
## 5.2.0
- Added MPC Enclave Sign Support
- Changed `Keychain` class to make it thread safe.
- Added ReceiveTestnetAsset and sentAsset helper functions to `Portal` class.
- Fixed a case where the error response was not being parsed correctly for HTTP 400 responses.
- General SDK code improvements
## 5.1.0
- Upgrade SDK to use the latest MPC binary
- Added `id` field to error objects coming from MPC (e.g., MPCError, PortalError)
- Changed the message format to include `id` as its part in error objects coming from MPC
- Deprecated the `code` field from error objects coming from MPC as it will be removed in future releases
- Made both `data` and `error` optional as in future updates of backend only one of these will be present in MPC responses and not both.
## 5.0.0 - 2024-12-06
- Added support for AppData folder backups with GDrive
- Added support for wallet customization in the dapps.
- Removed multiple deprecated constructors, fields and methods from main user facing classes
- Fixed 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.
- Added unit tests for GDrive related classes.
## 3.3.1 - 2024-11-08
- Removed the ability for the Javascript to continue running after the WebView is closed.
## 4.2.0 - 2024-10-31
- 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
## 4.1.7 - 2024-10-22
- Added function isWebSocketAllowed() function
## 4.1.6 - 2024-10-16
- Fixes cross-SDK recovery
## 4.1.5 - 2024-09-11
- Fix Gdrive backup current activity null bug
- Improve overall usage and handling of activity to avoid crashes
## 4.1.4 - 2024-09-09
- This version 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
## 4.1.3 - 2024-08-29
- 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 [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Fix chainId in signing request callback
- Fix `relyingPartyId` default overwrites in passkey backup
- Adds `PortalHttpUnauthorizedException` to throw when user token expires or is invalid
## 3.3.0 - 2024-08-15
- Add `canUsePasskeys()` helper method
## 4.1.2 - 2024-08-14
- Add default value for RPC Config in Portal constructor
- Add `canUsePasskeys()` helper method to Portal class.
- Add wallet lifecycle methods ([docs](https://docs.portalhq.io/guides/android/manage-wallet-lifecycle-states))
- Disable logs in production builds with R8/proguard enabled apps.
## 3.2.9 - 2024-08-14
- Disable logs in production builds with R8/proguard enabled apps.
## 4.1.1 - 2024-08-05
- Fixes solana share is erased when recovering
## 3.2.8 - 2024-08-01
- GDrive upgrades and bug fixes
## 4.1.0 - 2024-07-31
- Solana migration support for pre-multi wallet sdk versions. (Android v3 and iOS v3.0.x) [docs](https://docs.portalhq.io/resources/multi-wallet-migration-guides)
- Solana Eject ([iOS docs](https://docs.portalhq.io/guides/ios/eject-a-wallet), [android docs](https://docs.portalhq.io/guides/android/eject-a-wallet))
## 4.0.3 - 2024-07-11
- 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 [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- 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.
## 3.2.7 - 2024-07-11
- 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 [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- 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.
- Webview updates
- `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.
## 3.2.6 - 2024-07-08
- `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.
## 4.0.2 - 2024-06-26
- Stablize 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
## 3.2.5 - 2024-06-25
- Fix R8 Build failure
- Add more missing Progaurd rules
## 3.2.4 - 2024-06-25
- Bump maven version to 3.2.3
- Ignore R8 lint warnings
- Upgrade sample app AGP to latest version
## 3.2.3 - 2024-06-25
- Add missing proguard rules reported by customer
## 3.2.2 - 2024-06-17
- 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
## 4.0.1 - 2024-06-10
- GDrive share recovery issue due to cached access token
- Fix broken auto-approve feature
## 3.2.1 - 2024-06-10
- GDrive share recovery issue due to cached access token
- Change EvenBus higher order functions input lambdas return type to Unit instead of Void
## 3.2.0 - 2024-05-25
- 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. details here
- Added a check to error if the android device does not have the required android API version to run passkeys
## 3.0.9 - 2024-05-18
- Add missing consumer proguard rules
- Update SDK to use latest Android libraries
- Fix a passkey flow crash
## 3.0.8 - 2024-05-10
- Fix Json parsing type issues for HTTP requests
- Made gas field optional/nullable in transaction params
## 3.0.7 - 2024-03-22
- 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.
## 3.0.6 - 2024-03-15
- 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
## 3.0.5 - 2024-03-08
- Removes portal.legacyRecover (deprecated).
- Removes WalletConnect v1 implementation (deprecated).
## 3.0.1 - 2024-02-17
- Added .getBackupShareMetadata() to get backup shares' details for a user.
- Added .getSigningShareMetadata() to get signing shares' details for a user.
## 3.0.0 - 2024-02-10
- Adds support for multi-backup.
- Updated staging domains for example app.
- Fix for Google Drive permission cancellation during backup.
## 2.1.1 - 2024-01-27
- Adds support for switching chains in the PortalWebView.
## 2.1.0 - 2024-01-20
- Eject feature available via the portal.mpc.ejectPrivateKey function.
## 2.0.13 - 2023-12-09
- Added convenience methods for ethGetBalance, ethEstimateGas, and ethGasPrice.
- Updated example apps to use the Sepolia chain instead of Goerli by default.
## 2.0.12 - 2023-12-01
- Support for page loading callbacks in WebView
## 2.0.11 - 2023-11-18
- Adds support for setting a custom nonce to Android.
- Makes the PortalWebView.webView and PortalWebView.webViewContentIsLoaded properties public in Android.
## 2.0.10 - 2023-11-10
- Added auto-connect functionality for the following dApps in the mobile WebViews:
- Aave (https://app.aave.com/)
- Arbitrum Bridge (https://bridge.arbitrum.io/)
- Compound Finance (https://app.compound.finance/?market=usdc-mainnet)
- Convex Finance (https://www.convexfinance.com/stake)
- MakerDAO (https://app.spark.fi/)
- Optimism Gateway (https://app.optimism.io/bridge/deposit)
- Rarible (https://rarible.com/)
- RocketPool (https://stake.rocketpool.net/)
- Uniswap (https://app.uniswap.org/#/swap)
- summer.fi (https://summer.fi/)
## 2.0.9 - 2023-11-04
- 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.
## 2.0.8 - 2023-10-27
- 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.
- Introduced PortalWebView.
- Alpha release of Password/PIN Backups.
## 2.0.7 - 2023-10-21
- Resolves issues with WalletConnect when dApps exclude requiredNamespaces fields in their session proposal.
- Improved memory management for WalletConnect WebSocket connections
## 2.0.4 - 2023-09-30
- Optimization: Introduce an optional featureFlag into the Portal instance. Set optimized: true for a 10x speed boost for generate, backup, and recover!
- Added UserRecoverableGDriveException in the Gdrive storage class. This exception streamlines the process of catching user permission or authentication issues.
## 2.0.3 - 2023-09-22
- Enhanced MPC & API call tracking.
- Refreshed binary.
## 2.0.2 - 2023-09-15
- Fixed issue passing chainId from Portal Connect Server.
## 1.1.5 - 2023-09-15
- Fixed issue passing chainId from Portal Connect Server.
## 2.0.2 - 2023-09-09
- Portal Connect
- Adds a addChainsToProposal method. This will allow you to add all the chains in your gateway config to the proposal that you get from a dapp when you approve the connection. Docs for iOS and Android
- Adds error codes. Docs
## 2.0.0 - 2023-09-02
- 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.
## 1.1.4 - 2023-08-25
- Adds support for transaction simulation
## 1.1.3 - 2023-08-11
### Added
- Request using `portal.api.storedClientBackupShareKey` on `backup` and `recover` following successfully saving the client backup share encryption key to the user's backup method.
### Changed
- Updated MPC binary.
## 1.0.1 2023-06-11
### Added
- Adds support for `connect.on('portal_dappSessionRequested', eventHandler)` event handlers to manage approval flows for Portal Connect sessions
- Adds support for `connect.on('portal_dappSessionRequestedV1', eventHandler)` event handlers to manage approval flows for Portal Connect sessions
- Adds support for `connect.emit('portal_dappSessionApproved', data)` event emitting to approve Portal Connect sessions
- Adds support for `connect.emit('portal_dappSessionRejected', data)` event emitting to reject Portal Connect sessions
### Fixed
- Improves support for delivery of signatures to dApps through Portal Connect
- Improves support for delivery of signing rejections to dApps through Portal Connect
- Improved stability support for WebSocket connections in Portal Connect, including automatic reconnection on timeouts and WebSocket failures
## 1.0.0 - 2023-06-09
### Added
- `portal.keychain.validateOperations`: Checks if you can write, read, and delete from keychain.
- validation checks for Keychain before running generate and recover.
- validation checks for the selected backup method before running backup and recover.
- `portal.api.storedClientBackupShare`.
- `portal.api.storedClientSigningShare`.
- wallet modification in-progress checks before running generate, backup, and recover.
### Changed
- Bump from v3 to v4 for default MPC version in classes.
- `portal.mpc.generate` & `portal.mpc.recover` use `portal.api.storedClientSigningShare` when keychain completes storage
## 0.9.2 - 2023-06-02
### Added
- Improved error messaging
- 0x Swaps integration
- Extensions to `portal.api`: `getNFT`, `getBalance`, `getTransactions`
### Security
- Internal mpc binary improvement
## 0.8.4 - 2023-04-21
### Added
- Support for `signTypedData_v3` and `signTypedData_v4`
- Support for `EIP-1559` transactions
### Changed
- v3 of MPC server
Last updated
Was this helpful?