---
title: "A signed offer promises terms the challenge does not carry — x402 defect class offer-contradicts-challenge"
description: "A signed offer promises terms the challenge does not carry (offer-contradicts-challenge), an x402 defect class: Every signed offer a door serves commits to a network, asset, payTo and amount that appear together on one entry of the same response's accepts. Detectable by an unpaid probe. A buyer holding the offer as a pre-payment commitment and the challenge as the terms to sign has two prices from one door in one breath, and whichever it pays, the other document says it paid wrong. In a dispute the door's own signature argues against its own challenge."
canonical: "https://scvd.store/defects/offer-contradicts-challenge"
url: "https://scvd.store/defects/offer-contradicts-challenge"
term_code: "offer-contradicts-challenge"
defined_in: "https://scvd.store/defects"
data: "https://scvd.store/defects.json"
vocabulary_version: "22"
license: "https://creativecommons.org/licenses/by/4.0/"
---

# A signed offer promises terms the challenge does not carry

`offer-contradicts-challenge` — an x402 defect class.

**Asserts:** Every signed offer a door serves commits to a network, asset, payTo and amount that appear together on one entry of the same response's accepts.

**Costs:** A buyer holding the offer as a pre-payment commitment and the challenge as the terms to sign has two prices from one door in one breath, and whichever it pays, the other document says it paid wrong. In a dispute the door's own signature argues against its own challenge.

**Detectable:** unpaid — a free probe can see it

**Falsified by:** The offer's decoded payload matching an accepts entry of the same response on network, asset, payTo and amount; the spec tells verifiers to match on those fields, never on array position.

**How an operator clears it:** Sign offers from the accepts entries themselves at the moment the challenge is built, one offer per entry, so the two cannot drift; never sign a cached offer beside a freshly priced challenge.

**What a buyer does:** Sign against the challenge's accepts, which is what your client will actually pay, and keep the signed offer beside it: two prices from one door in one breath is a dispute waiting to happen, and the copy you hold is your evidence of which terms you were shown.

**Our signal:** `offer-contradicts-challenge (advisory)`

---

Vocabulary v22, CC BY 4.0. Every class: https://scvd.store/defects. Machine-readable, with falsifiers and cross-instrument mappings: https://scvd.store/defects.json.

A class describes a property of one endpoint at one moment and never accumulates into a judgment on an operator.
