Add transaction providers
Mount aprofiles/ directory as described in
Docker deployment, and put
your provider URLs in .env. Save this as profiles/private-sends.yml:
.env values, then check the
configuration:
http://localhost:4000/rpc/profile/private-sends/ethereum.
The example profile
fills this in with public relay endpoints.
To confirm a send stayed inside the set, add ?include_meta=body to the URL.
The response names the provider that received it and the policy that applied:
Choose a fallback
What stays visible
Private means out of the public mempool before inclusion. It doesn’t hide a transaction from everyone who handles it.- Relay operators and builders. Transaction providers and their downstream builders see every transaction sent to them, and can delay or drop it. Relay modes differ: some also share with every registered builder or with searchers. Read each operator’s documentation for the mode in your URL.
- Calldata in simulations.
eth_callandeth_estimateGassend calldata to a read provider, so simulating through Lasso shows that provider your intent before you sign. Simulate locally when that matters. - Hash polling. Polling a private transaction’s hash through a read provider ties the hash to your connection and timing. While the transaction is private, that provider returns null for it.
- Timeouts. A timeout doesn’t prove a provider never received the bytes. A retry reaches another transaction provider, and each one is another recipient.
- Wallets. A wallet that rebroadcasts through another endpoint bypasses the boundary.
- After inclusion. A mined transaction is public.
Handle nonces
Ordinary providers exclude a private transaction from their pending nonce until inclusion, so manage nonces in your client. Lasso keeps no pending overlay.Errors
After a failed
eth_sendRawTransaction, Lasso looks up the hash among the
providers of the phase that sent it, never outside it. The
API reference
has the full contract.
Limits
- Each listed provider must exist on the chain and be able to send, with no duplicates, and at least one other provider must remain to serve reads.
- The policy covers every send method, including relay-native and bundle methods, simulations of signed transactions, and unregistered methods whose params carry a signed transaction.
- Lasso doesn’t forward caller headers such as
X-Flashbots-Signature, so methods that need a sender signature header don’t work through it. - Background checks still reach transaction providers: the
eth_chainIdidentity probe, and thenewHeadshead subscription when the provider has aws_url. Neither carries transaction data.background_observations: falseon the provider stops both. - The bundled
publicprofile leavestransactionsunset.
Next
- Profile configuration: the field reference.
- Routing behavior: how requests use each side.
- Custom profiles: the same policy on Lasso Cloud.