{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "swap-deadlines-expired-quotes",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/swap-deadlines-expired-quotes/",
  "collection": "defi",
  "title": "Swap deadlines: why an old quote can stop executing",
  "description": "Understand why a swap can fail after waiting, and why changing the deadline does not repair an outdated price limit.",
  "aliases": [
    "swap deadline expired quote",
    "why did my swap expire"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:18:00.092Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A swap deadline is a time condition enforced by a particular router or order contract. The documented Uniswap v3 router parameters reject execution after the specified Unix time. A deadline limits how long an instruction remains usable; the minimum-output or maximum-input bound separately limits its price.",
    "claimId": "swap-deadlines-expired-quotes-quick-answer",
    "sourceIds": [
      "x425-defi-uni-swaps"
    ]
  },
  "keyFacts": [
    {
      "label": "Time bound",
      "value": "The v3 deadline is expressed as a Unix timestamp.",
      "sourceIds": [
        "x425-defi-uni-swaps"
      ],
      "id": "time-bound",
      "claimId": "swap-deadlines-expired-quotes-fact-time-bound"
    },
    {
      "label": "Price bound",
      "value": "Output and input limits remain separate parameters.",
      "sourceIds": [
        "x425-defi-uni-swaps"
      ],
      "id": "price-bound",
      "claimId": "swap-deadlines-expired-quotes-fact-price-bound"
    },
    {
      "label": "Failure cost",
      "value": "An included transaction that reverts may still use chargeable gas.",
      "sourceIds": [
        "x425-defi-eth-gas"
      ],
      "id": "failure-cost",
      "claimId": "swap-deadlines-expired-quotes-fact-failure-cost"
    }
  ],
  "prerequisites": [
    "exact-input-vs-exact-output-swaps"
  ],
  "sections": [
    {
      "id": "example",
      "heading": "Distinguish submission from execution",
      "sourceIds": [
        "x425-defi-uni-swaps"
      ],
      "paragraphs": [
        "Imagine a swap is signed with an illustrative deadline of 12:05. Broadcasting it at 12:04 does not guarantee success: a block evaluating it after the deadline can reject it. A transaction hash identifies the request; it does not prove timely execution.",
        "The clock and exact comparison come from the deployed contract. An interface’s quote refresh countdown may be an off-chain policy rather than the same on-chain deadline."
      ]
    },
    {
      "id": "reprice",
      "heading": "Refresh both conditions",
      "sourceIds": [
        "x425-defi-uni-swaps"
      ],
      "paragraphs": [
        "A stale quote can fail before its deadline if available execution no longer meets the minimum output. Conversely, an economically attractive trade can fail because its deadline passed. Extending time alone does not make the old price acceptable.",
        "A new quote should be reviewed as a new instruction: assets, amounts, recipient, route and time limit all matter. Merely approving token spending does not refresh an already signed swap."
      ]
    },
    {
      "id": "versions",
      "heading": "Do not generalize one router’s field",
      "sourceIds": [
        "x425-defi-uni-swaps",
        "x425-defi-uni-x"
      ],
      "paragraphs": [
        "Other routers and signed-order systems use their own validity rules. UniswapX orders also have auction parameters whose prices change over time. Read the instruction’s actual validity window rather than assuming every trade has the same default duration."
      ]
    }
  ],
  "faq": [
    {
      "question": "Will expiry automatically refund a failed swap’s network fee?",
      "answer": "No. Expiry can cause execution to revert, but gas already consumed by an included transaction can still be charged. Refund behavior for unspent input is a separate integration question.",
      "sourceIds": [
        "x425-defi-eth-gas",
        "x425-defi-uni-swaps"
      ]
    }
  ],
  "claims": [
    {
      "id": "swap-deadlines-expired-quotes-quick-answer",
      "articleSlug": "swap-deadlines-expired-quotes",
      "statement": "A swap deadline is a time condition enforced by a particular router or order contract. The documented Uniswap v3 router parameters reject execution after the specified Unix time. A deadline limits how long an instruction remains usable; the minimum-output or maximum-input bound separately limits its price.",
      "sourceIds": [
        "source-30ee786187b1a90d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-30ee786187b1a90d",
          "locator": "exactInputSingle; exactOutputSingle; deadline; amountOutMinimum; amountInMaximum"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:18:00.092Z",
        "reviewer": "Independent automated verification — Codex root, separate from the DeFi drafting agent",
        "notes": [
          "Checked router deadline and minimum/maximum amount are distinct controls; expiry is not a cancellation transaction or market reservation."
        ]
      }
    },
    {
      "id": "swap-deadlines-expired-quotes-fact-time-bound",
      "articleSlug": "swap-deadlines-expired-quotes",
      "statement": "Time bound: The v3 deadline is expressed as a Unix timestamp.",
      "sourceIds": [
        "source-30ee786187b1a90d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-30ee786187b1a90d",
          "locator": "exactInputSingle; exactOutputSingle; deadline; amountOutMinimum; amountInMaximum"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:18:00.092Z",
        "reviewer": "Independent automated verification — Codex root, separate from the DeFi drafting agent",
        "notes": [
          "Checked router deadline and minimum/maximum amount are distinct controls; expiry is not a cancellation transaction or market reservation."
        ]
      }
    },
    {
      "id": "swap-deadlines-expired-quotes-fact-price-bound",
      "articleSlug": "swap-deadlines-expired-quotes",
      "statement": "Price bound: Output and input limits remain separate parameters.",
      "sourceIds": [
        "source-30ee786187b1a90d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-30ee786187b1a90d",
          "locator": "exactInputSingle; exactOutputSingle; deadline; amountOutMinimum; amountInMaximum"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:18:00.092Z",
        "reviewer": "Independent automated verification — Codex root, separate from the DeFi drafting agent",
        "notes": [
          "Checked router deadline and minimum/maximum amount are distinct controls; expiry is not a cancellation transaction or market reservation."
        ]
      }
    },
    {
      "id": "swap-deadlines-expired-quotes-fact-failure-cost",
      "articleSlug": "swap-deadlines-expired-quotes",
      "statement": "Failure cost: An included transaction that reverts may still use chargeable gas.",
      "sourceIds": [
        "source-5cadd0da692ffaa8"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-5cadd0da692ffaa8",
          "locator": "Gas; transaction fees; failed transactions"
        }
      ],
      "scope": {
        "collection": "defi",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:18:00.092Z",
        "reviewer": "Independent automated verification — Codex root, separate from the DeFi drafting agent",
        "notes": [
          "Checked router deadline and minimum/maximum amount are distinct controls; expiry is not a cancellation transaction or market reservation."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-defi-uni-swaps",
      "label": "Single Swaps",
      "publisher": "Uniswap",
      "url": "https://docs.uniswap.org/contracts/v3/guides/swaps/single-swaps",
      "locator": "exactInputSingle; exactOutputSingle; deadline; amountOutMinimum; amountInMaximum",
      "note": "Version-specific router constraints and worked integration examples.",
      "version": "Documentation retrieved for the 2026-10-02 editorial scope; content hash recorded",
      "checkedAt": "2026-10-02T18:53:19.662Z",
      "contentSha256": "34d9c27db51d7c364e5a5c0a8c93361d78a771368eec5079bea7fd709475489c",
      "recordId": "source-30ee786187b1a90d"
    },
    {
      "id": "x425-defi-eth-gas",
      "label": "Gas and fees",
      "publisher": "ethereum.org",
      "url": "https://ethereum.org/en/developers/docs/gas/",
      "locator": "Gas; transaction fees; failed transactions",
      "note": "Network resource cost separately from swap fees.",
      "version": "Documentation retrieved 2026-10-02",
      "checkedAt": "2026-10-02T18:53:23.863Z",
      "contentSha256": "566e61b7dce594a477ef28bab1f5a23279feb4f782e2838623fc7491c9daec66",
      "recordId": "source-5cadd0da692ffaa8"
    },
    {
      "id": "x425-defi-uni-x",
      "label": "UniswapX Overview",
      "publisher": "Uniswap",
      "url": "https://docs.uniswap.org/contracts/uniswapx/overview",
      "locator": "Signed orders; fillers; auctions",
      "note": "Outcome-based swap authorization and filler settlement.",
      "version": "Documentation retrieved for the 2026-10-02 editorial scope; content hash recorded",
      "checkedAt": "2026-10-02T18:53:19.990Z",
      "contentSha256": "924f997b2916887483dd58e39a87e4e2111f4c00fd068df1fb24ce47ef271248",
      "recordId": "source-2ffecd3d628a4d03"
    }
  ],
  "related": {
    "articles": [
      "exact-input-vs-exact-output-swaps",
      "limit-orders-onchain",
      "dutch-auction-swap-orders",
      "dex-swap-fee-breakdown",
      "insufficient-dex-liquidity"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Swap deadlines: why an old quote can stop executing.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/swap-deadlines-expired-quotes/"
}
