Skip to content

Free tool · Double-Pay Retry Simulator

How many of your next 1,000 agent payments will go out twice?

Enter your retry settings and your chain's confirmation times. See the expected number of duplicate payments, the value at risk each month, and the three settings that bring it to zero. No wallet, no code, no transaction data.

Nothing you enter leaves your browser.

Your retry settings
Your chain and volume

Use your own numbers if you have them. These presets are examples, not measurements:

Your result

About 20 of every 1,000 payments go out twice.

Duplicates per 1,000 payments
20
Duplicates in 30 days
302
Value exposed in 30 days
7,550 USD
Chance one attempt times out
2%
One payment, step by step
0 s10 s19 s29 s39 s12345
  1. 0 s · Payment sent
  2. 30 s · No response: timeout
  3. 31 s · Retry sent as a new payment
  4. 35 s · Retry lands
  5. 36 s · Original payment lands too: paid twice

The 3 settings that bring duplicates to zero

  1. 1. One payment key, refused on repeat downstream

    missing

    Every retry of one payment carries the same key, and the facilitator or payment service refuses a key it has already settled. On-chain, the equivalent is re-broadcasting the same signed transaction (same nonce) instead of signing a new one.

  2. 2. Tell "never submitted" apart from "submitted, response lost"

    missing

    Before any retry, look up whether the earlier attempt was submitted (transaction hash, mempool or facilitator status). If it was, wait for it instead of sending a new payment.

  3. 3. Timeout longer than your slowest normal confirmation

    missing

    With your p50 and p95, a timeout of about 83 s lets 999 in 1,000 attempts confirm before the client gives up (yours is 30 s). This lowers duplicates but never removes them on its own.

What this means

  • The symptom is "payments sometimes go out twice". The cause is a retry that cannot tell a slow payment from a failed one, with nothing downstream refusing the repeat.
  • Without an idempotency key, a retry is not a repeat. It is a second, fully valid transfer of real value.
  • The classic case: the retry fires before the first transaction confirms, and both land.
  • A timeout after sending can't tell you whether the payment was never submitted or was submitted and the response was lost.
  • An agent that sees an ambiguous failure keeps retrying, and every retry can pay again.

What this tool can't see

  • It uses the settings you typed, not your code. SDKs, facilitators and RPC clients may retry on their own underneath yours.
  • Real confirmation times are not exactly log-normal; in a congestion spike the slow tail is longer than this fit.
  • It assumes every attempt that is sent eventually lands (the worst case). Some timeouts are real failures.
  • It does not model nonce clashes, speed-up or replacement transactions, or refunds.

Has it already happened?

This is a forecast from your settings. To look for double pays that already went out, read your agent wallet's real payment history with the Agent Money Trace. It flags the same payee and amount paid twice within two minutes.

Want a second pair of eyes on one real workflow?

This tool checks your retry, timeout and idempotency settings from what you typed. It can't see your code, keys, contracts or production traffic. If the result shows gaps, send me one real workflow. In my free 48-hour integration review I go through it end to end and send you a written report: fit, dependencies, permission risks, acceptance tests and a build or don't-build-yet call.

With the box ticked, the booking link opens Cal.com with a short summary of your result in the notes field, which you can edit or delete. Cal.com's privacy and cookie policies apply there.

Contact: Shilpa Goel, [email protected]

This is an engineering checklist, not a security audit, legal, compliance or investment advice.