Search

Search benchmark pages, protocols, published runs and the docs

Rout

Resend without buying twice

When a batch half-fails, the usual advice is to stop and reconcile by hand, because a blind resend can execute twice. Durable nonces make a resend safe by construction.

Status

Rout has not traded on mainnet. The API is specified and Rout's app client calls it, but no execution result is published. rout-next/src/domain/capabilities.ts:44-45 · rout-automation-ui@61469bf

Why a resend can double-execute

A transaction signed against a recent blockhash can be re-signed and sent again. If the first copy was only slow, not lost, both can land. A batch that reported failure may already contain successful trades.

What durable nonce changes

With execution.nonce: true, every copy of one intent is signed against the same nonce value, one copy per provider. The first copy to land advances the nonce, so every other copy, sent earlier or later, becomes invalid. At most one can land.

{ "execution": { "nonce": true, "tip_lamports": 2000000 } }
Recent blockhashDurable nonce
Copies of one intentOne signatureOne per provider, one nonce
A resend after an unclear failureCan execute twiceLands at most once
On chainNothing extraA nonce account tied to the wallet
LandingBaselineA sender's docs say it can land worse on some paths

When to use it

  • Exits and pre-armed protective sales, where executing twice is worse than landing one slot later.
  • Resends after a partial failure, where you can't tell what landed.
  • Not by default for speed. A nonce account is visible on chain and can link wallets, and nonce transactions may be deprioritised on some routes.

How it is checked

Benchmark E0 compares nonce against blockhash as its primary question, and counts durable-nonce intents with more than one landed copy. That count must be 0 in every run, with no exceptions. A single double-land fails the run. Source: sniper-definition.d.ts:945-951; errors.md NoNonce.

On this page