Payout Wallet Rotation
Rotate swap routing paths across consecutive orders so that repeated swaps from the same user don’t always flow through the same provider wallet.Overview
When a user makes multiple swaps, Houdini normally selects the best-priced route each time. In practice, this often means the same provider handles consecutive swaps — creating a pattern that reduces privacy. Payout wallet rotation solves this by deprioritizing recently used provider paths and selecting the next-best route instead, while keeping the price within an acceptable range.Rotation applies to CEX swaps only (standard and private). DEX swaps execute on-chain through smart contracts and are not affected by provider path selection.
How It Works
Quote request with rotation enabled
You request quotes with
rotatePayoutWallets=true. Houdini fetches quotes from all available providers as usual.Recent path lookup
The system checks your recent orders (last N orders within 24 hours) to find which provider paths were already used.
Path deprioritization
Quotes matching recently used paths are moved down in the ranking. Quotes using fresh (not recently used) paths are promoted to the top.
Parameters
Enable payout wallet rotation. When
true, the system deprioritizes recently used provider paths in the quote ranking.Maximum allowed price deviation percentage. If the best rotated quote is more than this percentage worse than the original best quote, rotation is skipped. Range: 0–100.
Number of recent orders to check for previously used paths. Valid range: 2–99.
Lookup Priority
The system determines “recently used paths” based on the following priority:| Priority | Identifier | When used |
|---|---|---|
| 1 | multiId | MultiSwap orders — checks all orders in the same multi-swap group |
| 2 | Partner ID | Partner API calls — checks recent orders from your partner account |
| 3 | receiverAddress + IP | Anonymous/private orders — checks by destination address and IP |
Price Protection
Rotation never forces a significantly worse price. ThedeviationThreshold parameter controls the maximum acceptable price difference:
- Deviation ≤ threshold: Rotated quote is used (different provider path)
- Deviation > threshold: Rotation is skipped, best-priced quote is returned
- All quotes recently used: Original ranking is preserved (no rotation possible)
deviationThreshold=5, if the best quote returns 10 ETH and the best non-recently-used quote returns 9.6 ETH (4% worse), the rotated quote is used. If it returns 9.4 ETH (6% worse), rotation is skipped.
API v2 Usage
In v2, rotation is configured at quote time. The rotation parameters are query params onGET /quotes, and the selected quote carries the rotation context through to the exchange.
Step 1: Get Quotes with Rotation
Step 2: Create Exchange
No additional parameters needed — the quote already has rotation applied.API v1 Usage
In v1, rotation can be configured on both the quote and exchange endpoints.Option A: Rotation at Quote Time
Pass rotation parameters as query params onGET /quote:
Option B: Rotation at Exchange Time
Pass afilters object in the POST /exchange request body:
v1 vs v2 Behavior
| Aspect | v1 | v2 |
|---|---|---|
| Where rotation is configured | Quote endpoint, exchange endpoint, or both | Quote endpoint only |
| How rotation reaches the exchange | filters object passed directly in exchange body | Inherited from the selected quote via quoteId |
| Quote IDs with rotation | Discarded when rotation is enabled on exchange | Preserved — rotation is already applied to the quote |
| Latency impact | Adds ~3-5s when used on exchange (re-quotes) | No additional latency on exchange |
Best Practices
Use rotation for privacy-sensitive flows
Use rotation for privacy-sensitive flows
Enable rotation for private/anonymous swaps where users make repeated swaps. For one-off standard swaps, rotation adds little value.
Keep the default deviation threshold
Keep the default deviation threshold
The default 5% threshold balances privacy with price quality. Setting it too high (e.g., 20%) may route through significantly worse-priced providers. Setting it too low (e.g., 1%) may prevent rotation entirely when quotes are tightly clustered.
Adjust lookback based on volume
Adjust lookback based on volume
If your integration processes many swaps per hour, increase
rotationLookback to 20–30 to ensure broader path diversity. For low-volume integrations, the default of 10 is sufficient.Combine with the swaps filter
Combine with the swaps filter
Use the
swaps parameter (v2) or onlySwaps filter (v1) alongside rotation to restrict which providers are considered. Rotation will only rotate within the allowed provider set.Next Steps
Private Swap Integration
Full guide for integrating private multi-hop swaps
Routing Types
Understand the three routing strategies