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 Go SDK. Refer to the package releases for additional details.
0.7.0

Added

  • Add Verify() on the webhook service for Svix signature verification and typed deserialization into a WebhookPayload discriminated union.
  • Add WithRequestOptions(...option.RequestOption) helper to forward per-call request options (e.g. option.WithHTTPClient, option.WithRequestTimeout) through wrapper methods to the generated client.
  • Add a default *http.Client with a request timeout when no custom client is configured.
  • Add DisableRequestExpiry option to opt out of automatically sending the privy-request-expiry header.
  • Add PrivyRequestExpiryOptions with DefaultMs, DefaultIntentMs, and Disabled fields on PrivyClientOptions.RequestExpiry. Intents endpoints (Rpc, Transfer, UpdateWallet, NewPolicyRule, DeletePolicyRule, UpdatePolicy, UpdatePolicyRule, UpdateKeyQuorum) now default to a 72-hour expiry.
  • Add a large set of typed webhook payload types for user, intent, wallet-action, transaction, earn, MFA, funds, and yield events.
  • API updates.

Deprecated

  • Top-level PrivyClientOptions.DefaultRequestExpiryMs in favor of RequestExpiry.DefaultMs.
  • Top-level PrivyClientOptions.DisableRequestExpiry in favor of RequestExpiry.Disabled.

Breaking changes

  • TokenTransferSource is now a TokenTransferSourceUnion discriminated union. Transfer calls must construct the source via OfNamedTokenTransferSource (e.g. USDC) or OfCustomTokenTransferSource (with an explicit asset_address).
  • Ethereum transaction fields and responses that previously returned UnsignedStandardEthereumTransaction now return UnsignedEthereumTransactionUnion. Code that type-asserted the concrete type must handle the union.
  • Default HTTP timeout. Clients that did not configure a custom HTTPClient now get one with a default request timeout. Override via option.WithRequestTimeout or a custom HTTPClient if long-running calls require more time.
0.6.0

Added

  • Allow configuring a default *http.Client via PrivyClientOptions.
  • API updates.

Breaking changes

  • Response structs are now globally suffixed instead of request structs. Type names throughout the SDK have been updated accordingly (e.g., EthereumSendTransactionRpcInputParam is now EthereumSendTransactionRpcInput).
0.5.0

Added

  • Add IntentService for manual approval workflows.
  • Add iter.Seq support for pagination.
  • API updates.

Fixed

  • Fix All() method for iteration.
  • Fix pagination and iteration.
0.4.0

Added

  • Support for privy-request-expiry header on wallet, policy, and key quorum methods. A default expiry of 15 minutes is applied automatically and can be customized via PrivyClientOptions.DefaultRequestExpiryMs or per-request with WithRequestExpiry.
  • New Apps service for app configuration and allowlist management.
  • New Webhooks, Analytics, and Aggregations services.
  • New Intents service for intent-based approval workflows.
  • Spark chain support via WalletChainTypeSpark.
  • API updates.

Breaking changes

  • RpcOption is now an interface type (RequestOption) instead of a function type. RpcOption is kept as a type alias. Code using the provided helpers (WithAuthorizationContext, WithIdempotencyKey) is unaffected, but custom RpcOption function literals will no longer compile.
  • WalletRpcParams body fields are now nested inside a WalletRpcRequestBody field of type WalletRpcRequestBodyUnionParam.
  • WalletRawSignParams body fields are now nested inside a RawSignInput field. The inner union type is renamed from WalletRawSignParamsParamsUnion to RawSignInputParamsUnion, with variants renamed from WalletRawSignParamsParamsHash/WalletRawSignParamsParamsBytes to RawSignHashParams/RawSignBytesParams.
  • WalletUpdateParams body fields are now nested inside a WalletUpdateRequestBody field.
  • KeyQuorumNewParams body fields are now nested inside a KeyQuorumCreateRequestBody field.
  • KeyQuorumUpdateParams body fields are now nested inside a KeyQuorumUpdateRequestBody field.
  • WalletRawSignResponse renamed to RawSignResponse.
  • PolicyDeleteResponse, PolicyDeleteRuleResponse, and KeyQuorumDeleteResponse consolidated into SuccessResponse.
  • RPC input types gained a Param suffix (e.g. EthereumPersonalSignRpcInput is now EthereumPersonalSignRpcInputParam).
  • WalletExportParamsEncryptionType renamed to HpkeEncryption (constant WalletExportParamsEncryptionTypeHpke is now HpkeEncryptionHpke).
  • PolicyNewParamsChainType replaced by WalletChainType (e.g. PolicyNewParamsChainTypeEthereum is now WalletChainTypeEthereum).
0.3.0

Added

  • Added wallet import utility via Wallets.Import with HPKE support.
  • Added GenerateAuthorizationSignaturesForRequest for creating authorization signatures for requests.
0.2.0

Added

  • Wallet export utility with HPKE support.
  • API updates.
0.1.1

Added

  • Support for child key quorum IDs.

Changed

  • DX on user creation is now simplified by having account Type be a constant that can be elided when building the struct.
  • Remove linked account input utils. Calls to LinkedAccountInputOfXYZ are now replaced with LinkedAccountXYZInput structs.
0.1.0
Initial release of the Go SDK. See the quickstart guide for more details on how to get started.