Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.privy.io/llms.txt

Use this file to discover all available pages before exploring further.

The release notes for our Java SDK.
0.54.0

Added

  • AuthorizationSigner functional interface for external signing via KMS, HSM, or hardware wallets. Use AuthorizationContext.addSigner() or AuthorizationContext.withSigner() to register signers.
  • New signTransaction and sendTransaction overloads on PrivyEthereumService that accept UnsignedEthereumTransaction (union of standard and Tempo transactions). Existing overloads for UnsignedStandardEthereumTransaction are preserved for backward compatibility.
  • Spark Protocol support (Bitcoin/Lightning L2) with ~65 new classes including SparkNetwork, SparkBalance, lightning invoice support, and RPC methods.
  • Intent system with IntentType, IntentAuthorization, and intent lifecycle webhook payloads.
  • Wallet action webhooks for transfer, swap, earn deposit, earn incentive claim, earn withdraw lifecycles, and yield webhooks.
  • Tempo transaction (type 118) support with UnsignedTempoTransaction, TempoCall, TempoAAAuthorization, and TempoFeePayerSignature.
  • AccessList type for Ethereum access lists.
  • EthereumSendCallsCall, EthereumSendCallsRpcInput, and EthereumSendCallsRpcResponse for batched calls.
  • Export RPC methods: ExportPrivateKeyRpcInput/Response and ExportSeedPhraseRpcInput/Response.
  • New RawSignInput, RawSignInputParams, RawSignBytesParams, RawSignHashParams types replacing the deleted RawSignRequest/RawSignRequestParams.
  • ABI and smart contract types: AbiParameter, AbiSchema, EthereumTypedDataInput, TypedData.
  • Wallet action step types: WalletActionStep, WalletActionType, and chain-specific variants.
  • Wallet asset types: WalletAsset, WalletEthereumAsset, WalletSolanaAsset.
  • New fields: referenceId and experimentalDataSuffix on EthereumSendTransactionRpcInput; walletId on EthereumPersonalSignRpcInput and EthereumSignTransactionRpcInput.

Breaking changes

Wallets
  • Wallets.update() now takes a single WalletUpdateRequest object instead of multi-parameter overloads.
  • Wallets.export() now takes a single WalletExportRequest object instead of multi-parameter overloads.
  • WalletUpdateRequest.requestBody() renamed to walletUpdateRequestBody().
  • WalletUpdateRequestBody moved from operations to components package.
  • WalletUpdateRequestBody.additionalSigners() changed from List<WalletAdditionalSignerItem> to List<AdditionalSignerItemInput>.
  • Wallet.additionalSigners() changed from List<WalletAdditionalSigner> to List<WalletAdditionalSignerItem>.
  • WalletAdditionalSigner deleted, replaced by WalletAdditionalSignerItem.
  • UserOwner and PublicKeyOwner deleted, replaced by OwnerInputUser and OwnerInputPublicKey.
Wallet RPC
  • WalletRpcRequest.requestBody() renamed to walletRpcRequestBody().
  • WalletRpcResponse.oneOf() removed; use walletRpcResponse() returning Optional<WalletRpcResponse> from the components package.
  • WalletRpcRequestBody and WalletRpcResponseBody moved from operations to components package.
  • RawSignRequest and RawSignRequestParams (in operations) deleted, replaced by RawSignInput/RawSignInputParams in components.
  • Ethereum transaction field wrapper classes (e.g., EthereumSendTransactionRpcInputChainId, ...GasLimit, ...Value) removed and replaced with UnsignedStandardEthereumTransaction + Quantity.
  • EthereumSignTransactionRpcInputParams.transaction() and EthereumSendTransactionRpcInputParams.transaction() type changed from UnsignedStandardEthereumTransaction to UnsignedEthereumTransaction. Use UnsignedEthereumTransaction.of(transaction) to wrap existing instances.
Policies
  • Policies.update() now takes a single PolicyUpdateRequest object.
  • Policies.createRule() now takes a single CreateRuleRequest object.
  • Policies.deleteRule() now takes a single DeleteRuleRequest object.
  • PolicyCreateRequestBody.rules() now accepts List<Rule> instead of List<PolicyRuleRequestBody>.
  • PolicyChainType deleted, replaced by WalletChainType.
  • PolicyDeleteResponse.object() renamed to successResponse().
Key quorums
  • KeyQuorums.update() now takes a single KeyQuorumUpdateRequest object.
  • KeyQuorumCreateRequestBody and KeyQuorumUpdateRequestBody moved from operations to components package.
  • Builder methods renamed: .requestBody() to .keyQuorumCreateRequestBody() / .keyQuorumUpdateRequestBody().
Transactions
  • Transaction.status() changed from StatusEnum to TransactionStatus.
Webhooks
  • FundsDepositedWebhookPayload/FundsWithdrawnWebhookPayload asset sub-types consolidated into WalletFundsAsset union.
0.53.0

Changed

  • BREAKING: Status changed from an enum (BROADCASTED, CONFIRMED, etc.) to a oneOf union class (StatusOk | StatusDisabled | StatusClosed). This completely changes the Status type and its API surface.
  • BREAKING: Transaction.status() return type changed from Status (enum) to StatusEnum (new enum). The old Status type is now a different class entirely.
  • BREAKING: RawSignRequestParams changed from a concrete class with bytes(), encoding(), hashFunction() fields to a oneOf union of Hash | Bytes. The builder and all field accessors are removed.
  • BREAKING: RawSignRequestParamsUnion deleted; RawSignRequest.params() now returns RawSignRequestParams (which is the new oneOf type) instead of RawSignRequestParamsUnion.
  • BREAKING: UserLinkedAccountUnlinkRequestBody.type() changed from Type (deleted enum) to LinkedAccountType (new enum).
Field Type Changes on Linked Account Models
  • BREAKING: LinkedAccountCurveSigningEmbeddedWallet.recoveryMethod() changed from LinkedAccountCurveSigningEmbeddedWalletRecoveryMethod to EmbeddedWalletRecoveryMethod.
Constructor Signature Changes
  • BREAKING: WalletBalanceRequest constructor: asset and chain parameters changed from @Nonnull to @Nullable. The short-form constructor now only takes walletId. Return types of asset() and chain() changed from direct values to Optional<>.
  • BREAKING: RawSignResponse constructor now requires a method parameter (new required field).
  • Multiple linked account embedded wallet constructors now include imported and delegated as required boolean parameters instead of optional Boolean.
0.52.4

Changed

  • Better handling for parallel RPC requests
0.52.3

Changed

  • More debug logging
0.52.2

Changed

  • Use enhanced JSON mapper for authorization requests
0.52.1

Changed

  • Additional logging to help debug session expiration
0.52.0

Added

  • Passkey auth
  • Email auth
0.51.0

Added

  • System policies
  • Additional signer export
  • Policy APIs
  • Policy rule APIs
0.50.0
Initial release of the Java SDK. See the quickstart guide for more details on how to get started.