LogoLogo
SupportGithubSign InGet Access
  • Introduction
  • GETTING STARTED
    • SDK Quick Start
    • API Quick Start
  • Guides
    • Web
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Web authentication methods
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Configure a custom subdomain
      • Eject a wallet
      • Using the EIP-1193 Provider
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • iOS
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Manage ERC20 tokens
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
          • Passkey + Enclave Storage
        • Recover a wallet
      • Troubleshooting Tips
      • Feature Flags
    • Android
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • React Native
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • Enclave MPC API
      • Create a client
      • Create a wallet
      • Send tokens
      • Sign Ethereum transactions
      • Sign Solana transactions
      • Sign Tron transactions
      • Sign Stellar Transaction
      • Concurrent Transactions
      • Back up a wallet
      • Eject a wallet
  • Reference
    • iOS
      • createWallet
      • backupWallet
      • recoverWallet
      • ejectPrivateKeys
      • registerBackupMethod
      • setGDriveConfiguration
      • setPasskeyConfiguration
      • setPasskeyAuthenticationAnchor
      • setPassword
      • availableRecoveryMethods
      • doesWalletExist
      • isWalletBackedUp
      • isWalletOnDevice
      • isWalletRecoverable
      • getBalances
      • getAssets
      • getNftAssets
      • getTransactions
      • sendSol
      • evaluateTransaction
      • buildEip155Transaction
      • buildSolanaTransaction
      • getWalletCapabilities
    • Android
      • Reference Documentation
    • React Native
      • @portal-hq/core
      • Storage adapters
        • Cloud storage
          • @portal-hq/gdrive-storage
          • @portal-hq/icloud-storage
        • Mobile storage
          • @portal-hq/keychain
          • @portal-hq/mobile-key-values
    • Enclave MPC API
      • V1 endpoints
    • Client API
      • V3 endpoints
      • V1 endpoints
    • Custodian API
      • V3 endpoints
      • V1 endpoints
    • Swaps API
      • V3 endpoints
      • V1 endpoints
  • Resources
    • Flutter
      • iOS
      • Android
    • Error codes
      • Overview
      • MPC errors
      • Network errors
      • General errors
      • Encryption errors
      • Portal Connect errors
    • Portal's MPC architecture
    • Authentication and API Keys
    • Self-Managed Backups
    • Alert Webhooks
    • Wallet lifecycle
    • Backup options
      • Password/PIN
      • GDrive
      • iCloud
      • Passkey + Enclave
    • WalletConnect metadata
    • Advanced security scanning
    • Account abstraction
    • Security firewall
    • Eject
    • Security
    • Blockchain support
    • Chain ID formatting
    • Testnet faucets
    • Going to Production
    • Rate Limits
    • Multi-backup migration guide
    • Multi-wallet migration guides
      • Migrating from Android SDK v3.x.x to v4.x.x
      • Migrating from iOS SDK v3.0.x to v3.2.x
  • Support
    • Changelog
      • Android
      • iOS
      • React Native
      • Web
      • Past Releases
        • 2024 Releases
        • 2023 Releases
    • Celo Hackathon Hub
    • Glossary
Powered by GitBook
On this page

Was this helpful?

  1. Support
  2. Changelog

Android

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

PreviousChangelogNextiOS

Last updated 2 months ago

Was this helpful?

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