
Taking actions with a wallet
To take an action (such as a transfer or swap) with a wallet in Privy, there are two approaches.| Integration | Functionality | Recommended for |
|---|---|---|
| Wallet action APIs | Execute common onchain flows such as transfers, swaps, DeFi, and more via a simple, intuitive interface. Privy handles the onchain complexity. | Most use cases |
| Low-level RPC | Compute raw signatures and execute EVM and SVM JSON-RPC requests. Requires developers to construct their own transaction payloads and facilitate multi-transaction flows. | Custom use cases and lower-level flows |
Available actions
The current set of abstracted wallet actions APIs includes the endpoints below. All endpoints begin with the route/v1/wallets/{wallet_id}/, followed by the slug.
| Action | Slug | Description |
|---|---|---|
| Transfer | transfer | Executes a transfer of stablecoins (USDC, USDT, USDB, EURC) or native tokens (ETH, SOL, POL) on EVM chains and Solana. |
| Swap | swap | Swaps one asset in the wallet for another via Uniswap. |
| Earn | earn | Deposit into yield-generating vaults, withdraw with accrued yield, and claim reward incentives. |
Wallet action lifecycle
When your application executes a wallet action via one of the endpoints listed above, Privy creates a wallet action resource to model the action and returns it in the API response. Your application can inspect the wallet action resource to get the action’stype, status, and steps.
For a detailed breakdown of action statuses, step types, and step-specific statuses, see the wallet action lifecycle page.
Your application can fetch the wallet action resource for a given action or subscribe to webhooks on wallet action status updates.
Authorization signatures
For wallets with an owner and/or signers, requests to wallet actions APIs require an authorization signature over the request. This signature is verified by the Privy TEE to authorize request execution.Gas management
Wallet action APIs support two gas payment modes: App pays (default): Privy will optimistically sponsor gas for transactions if your application has gas sponsorship enabled with sufficient credits. If gas sponsorship is not enabled, the wallet must pay gas from its own native token balance. User pays: Gas fees are paid directly from the wallet’s USDC or USDT balance, with no ETH required. Once enabled in the dashboard, any Transfer API transaction using a supported token on a supported chain will automatically use that token to cover gas fees. This mode is currently only available on the transfer API.Policies
Each wallet action API has its own method in Privy’s policy language. For example, to enforce policies on the/transfer API, include a rule in the policy with method: 'transfer' to apply a rule to the API.
Note that when a wallet action API is invoked, Privy does not enforce policy rules for RPC methods that may internally be used implicitly by the wallet action.
As an example, when calling the /transfer API, policy rules with methods eth_sendTransaction and signAndSendTransaction are not enforced on those those API calls. Only policy rules with method: 'transfer' are enforced.

