diff --git a/features/deposit-addresses.mdx b/features/deposit-addresses.mdx index b4070d3..4896f34 100644 --- a/features/deposit-addresses.mdx +++ b/features/deposit-addresses.mdx @@ -62,7 +62,7 @@ Strict deposit addresses are bound to the original order and should be treated a | Wrong token (non-solver) | Not supported in the normal fill flow; may require manual recovery | Not supported in the normal fill flow | | Wrong chain (same VM) | Auto-reroute on EVM; other chain families may refund | Not supported | | Wrong chain (different VM) | Not possible — address formats differ | Not possible — address formats differ | -| Amount mismatch | Usually requotes for actual amount; too-small deposits may refund | Exact payment expected | +| Amount mismatch | Usually requotes for actual amount; too-small deposits may refund | Underpayments refund; exact payments fill; overpayments fill the quoted amount and refund the excess | | `refundTo` | Recommended (omitting disables automatic refund) | Required | | Address reuse | Yes, same route | No — bound to original order | @@ -891,7 +891,8 @@ This is not possible — deposit address formats differ across VM types (e.g., E Strict addresses are bound to the original order. The handling is narrower: - **Exact amount** — The fill proceeds using the original order. -- **Amount mismatch** — The deposit may fail and be refunded to `refundTo`. Send the exact quoted amount. +- **Underpayment** — The deposit fails and is refunded to `refundTo`. The fill does not proceed. +- **Overpayment** — The fill proceeds for the originally quoted amount and the excess is returned to `refundTo` as a separate refund leg. The fill itself is never scaled up. - **Wrong token or wrong chain** — Not supported. Strict addresses do not have automatic wrong-token or wrong-chain recovery paths. diff --git a/references/api/changelog.mdx b/references/api/changelog.mdx index d81d578..2e2075a 100644 --- a/references/api/changelog.mdx +++ b/references/api/changelog.mdx @@ -3,6 +3,10 @@ title: "API Changelog" description: "Record of breaking changes, deprecations, and notable additions to the Relay API" --- +## 2026-05-07 — Strict deposit-address overpayments now refund the excess + +**Behavior change** — `POST /quote/v2` with `useDepositAddress: true` and `strict: true`: a deposit larger than the quoted `amount` now fills the quoted amount and refunds the excess to `refundTo` in a separate refund leg, instead of scaling the fill up to the deposited amount. Exact payments still fill normally and underpayments still fail and refund. `refundTo` remains required for strict deposit addresses. + ## 2026-04-28 — Same-chain dust swaps reject at quote time **Breaking** — `POST /quote/v2`: same-chain swap requests whose quoted USD value is greater than `0` and less than `$0.05` now return `400` with `errorCode: "AMOUNT_TOO_LOW"`. Previously these requests returned `200` with calldata that reverted on-chain. Wrap and unwrap quotes (e.g. same-chain `ETH` ↔ `WETH`) and quotes that include attached calls continue to be accepted at any size. \ No newline at end of file