Workspace IndexKnowledge Notes › Priced in fiat, settled in tokens — the quote is a product promise

#54PoCdone 2026-09-12

Priced in fiat, settled in tokens — the quote is a product promise

A five-dollar checkout paid in a volatile token needs a quote TTL, a re-quote flow and a policy for who absorbs the drift. That is product design wearing an exchange-rate costume — not an oracle problem.

Build a checkout that locks a token amount for a fixed fiat price for thirty seconds, expires visibly into a re-quote, and tabulates the three drift policies — merchant absorbs, buyer absorbs, band with re-quote — against a simulated price feed.

Why

Users think in their currency; chains settle in theirs. Between the price shown and the payment settling, the rate moves — so every fiat-priced crypto checkout is silently running a tiny FX desk, whether its designers noticed or not. Ignore it and either the merchant leaks margin on every dip or the buyer gets surprise-charged on every spike; both discoveries arrive as support tickets.

The deliberate version has three knobs: how long a quote is honored (TTL), what happens at expiry (re-quote UX, not a silent failure), and who eats movement inside the window. None of these is an oracle question — the oracle only tells you the rate; the product decides what to promise about it. Stablecoin settlement makes the window narrow, not zero, and the structure identical.

How it works

One checkout, a scripted price feed, three drift policies, and the ledger of who paid for movement.

PoC

A checkout against anvil: item priced 5 USD, paid in a mock token whose USD price a script walks ±3% per minute. Quote endpoint returns { tokenAmount, quoteId, expiresAt(+30s) }; payment submits quoteId; the server accepts, re-quotes, or rejects per policy. Run the same 100 purchases with prices replayed under each policy: (A) honor expired quotes — measure merchant loss; (B) reject at settlement if moved — measure buyer failures; (C) 30s TTL with visible countdown and one-click re-quote — measure both. Print the three-row table.

What it proves

The quote is a short-dated option the product writes for free, and TTL is its expiry. Policy A prices the option at the merchant's expense, B at the buyer's UX, C bounds both — which is why every serious crypto checkout (and every FX-touching commerce API) converges on C. The interesting output is not the code but the table: drift cost as a product decision made visible.

Where it lands in Jayverse

  • Verex: give every fiat-priced order or Stripe onboarding quote a TTL and a visible re-quote flow. Decide the drift policy explicitly (merchant absorbs, buyer absorbs, or a band with re-quote) instead of letting it fall out of whichever code path shipped first.
  • Wallet/Bridge: any displayed amount that can move before settlement needs an expiresAt. A bridge conversion or a balance shown mid-transfer is the same short-dated option as the checkout — show the countdown and a one-click re-quote rather than a silently stale number.
  • Token/Exchange (mini-AMM): pick one of the three drift policies for slippage and document it. The AMM already has this decision implicitly in its slippage tolerance; make it an explicit product choice (who eats movement inside the quote window) rather than a default parameter nobody chose on purpose.

Key expressions

Words and phrases from this page worth keeping, with the Korean meaning and the sentence they come from.

Expression뜻 · 쓰이는 자리
wearing a ... costume겉으로만 ~인, ~의 탈을 쓴(비유) · "product design wearing an exchange-rate costume"
leak margin마진(이윤)이 새어나가다, 손해를 보다 · "the merchant leaks margin on every dip"
surprise-charged예상 못 한 금액을 청구당하는 · "the buyer gets surprise-charged on every spike"
eat (a cost)(손실·비용을) 떠안다 · "who eats movement inside the window"
short-dated option만기가 짧은 옵션(금융 용어) · "The quote is a short-dated option the product writes for free"
write (an option)옵션을 발행하다(매도하다) · "the product writes for free"
converges on(여러 사례가) 한 방향으로 수렴한다 · "every serious crypto checkout ... converges on C"
bound (verb)상한을 씌워 제한하다 · "C bounds both"
drift cost가격 변동으로 인한 손실 비용 · "drift cost as a product decision made visible"
silently running아무도 모르게 뒤에서 운영되고 있는 · "silently running a tiny FX desk"
TTL유효시간(Time To Live) · 견적이 유효한 시간 길이, 이 카드가 다루는 첫 번째 설계 변수. "needs a quote TTL, a re-quote flow"

← All Knowledge Notes · Workspace Index · Top ↑

법정화폐로 가격, 토큰으로 정산 — 견적은 제품의 약속

변동성 있는 토큰으로 결제하는 5달러짜리 체크아웃에는 견적 TTL, 재견적 플로우, 그리고 변동분을 누가 흡수하는지의 정책이 필요합니다. 오라클 문제가 아니라 환율 의상을 입은 제품 설계입니다.

고정된 법정화폐 가격에 대한 토큰 수량을 30초간 잠그고, 만료를 눈에 보이게 재견적으로 잇는 체크아웃을 만듭니다. 그리고 세 가지 변동 정책 — 상인 흡수, 구매자 흡수, 밴드 + 재견적 — 을 시뮬레이션 가격 피드에 대고 표로 만듭니다.

사용자는 자기 통화로 생각하고, 체인은 자기 통화로 정산합니다. 표시된 가격과 결제 체결 사이에 환율이 움직입니다 — 그래서 법정화폐로 가격을 매기는 모든 크립토 체크아웃은, 설계자가 알았든 몰랐든, 조용히 작은 FX 데스크를 운영 중입니다. 무시하면 하락 때마다 상인이 마진을 흘리거나 급등 때마다 구매자가 기습 청구를 당하고 — 두 발견 모두 CS 티켓으로 도착합니다.

의도된 버전에는 손잡이 셋이 있습니다: 견적을 존중하는 시간(TTL), 만료 시의 처리(조용한 실패가 아니라 재견적 UX), 그리고 창 안의 움직임을 누가 먹는가. 어느 것도 오라클 질문이 아닙니다 — 오라클은 환율을 알려줄 뿐, 무엇을 약속할지는 제품이 결정합니다. 스테이블코인 정산은 창을 좁힐 뿐 0 으로 만들지 않고, 구조는 동일합니다.

동작 방식

체크아웃 하나, 스크립트로 움직이는 가격 피드, 세 가지 변동 정책, 그리고 움직임의 값을 누가 냈는지의 장부.

PoC

anvil 대상 체크아웃: 5 USD 상품을, 스크립트가 분당 ±3% 로 걷게 만든 목 토큰으로 결제. 견적 엔드포인트는 { tokenAmount, quoteId, expiresAt(+30초) } 를 반환하고, 결제는 quoteId 를 제출하며, 서버는 정책에 따라 수락·재견적·거절합니다. 같은 구매 100건을 가격 리플레이로 정책별 실행: (A) 만료 견적도 존중 — 상인 손실 측정; (B) 움직였으면 정산 시 거절 — 구매자 실패 측정; (C) 30초 TTL + 보이는 카운트다운 + 원클릭 재견적 — 둘 다 측정. 세 줄짜리 표를 출력합니다.

무엇을 증명하나

견적은 제품이 공짜로 써 주는 단기 옵션이고 TTL 이 그 만기입니다. 정책 A 는 그 옵션 값을 상인이, B 는 구매자 UX 가 치르고, C 는 둘 다 한정합니다 — 진지한 크립토 체크아웃(그리고 FX 를 만지는 모든 커머스 API)이 C 로 수렴하는 이유입니다. 흥미로운 산출물은 코드가 아니라 표입니다: 제품 결정으로서의 변동 비용을 눈에 보이게 만든 것.

Jayverse에서의 위치

  • Verex: 법정통화로 가격이 매겨진 모든 주문이나 Stripe 온보딩 견적에 TTL과 눈에 보이는 재견적 흐름을 준다. 드리프트 정책(가맹점 부담, 구매자 부담, 재견적이 있는 밴드)을 먼저 배포된 코드 경로가 우연히 정하게 두지 말고 명시적으로 결정한다.
  • Wallet/Bridge: 정산 전에 움직일 수 있는 표시 금액에는 모두 expiresAt을 준다. 브리지 변환이나 전송 중에 보여지는 잔액은 체크아웃과 같은 단기 옵션이다. 조용히 낡아버리는 숫자 대신 카운트다운과 원클릭 재견적을 보여준다.
  • Token/Exchange (미니 AMM): 슬리피지에 대해 세 드리프트 정책 중 하나를 골라 문서화한다. AMM은 이미 슬리피지 허용치라는 형태로 이 결정을 암묵적으로 갖고 있다. 견적 창 안에서 움직임을 누가 부담하는지 아무도 의도적으로 고르지 않은 기본값이 아니라 명시적 제품 선택으로 만든다.

핵심 표현

이 페이지의 영어 본문에서 배울 만한 단어와 표현, 뜻과 나온 자리.

Expression뜻 · 쓰이는 자리
wearing a ... costume겉으로만 ~인, ~의 탈을 쓴(비유) · "product design wearing an exchange-rate costume"
leak margin마진(이윤)이 새어나가다, 손해를 보다 · "the merchant leaks margin on every dip"
surprise-charged예상 못 한 금액을 청구당하는 · "the buyer gets surprise-charged on every spike"
eat (a cost)(손실·비용을) 떠안다 · "who eats movement inside the window"
short-dated option만기가 짧은 옵션(금융 용어) · "The quote is a short-dated option the product writes for free"
write (an option)옵션을 발행하다(매도하다) · "the product writes for free"
converges on(여러 사례가) 한 방향으로 수렴한다 · "every serious crypto checkout ... converges on C"
bound (verb)상한을 씌워 제한하다 · "C bounds both"
drift cost가격 변동으로 인한 손실 비용 · "drift cost as a product decision made visible"
silently running아무도 모르게 뒤에서 운영되고 있는 · "silently running a tiny FX desk"
TTL유효시간(Time To Live) · 견적이 유효한 시간 길이, 이 카드가 다루는 첫 번째 설계 변수. "needs a quote TTL, a re-quote flow"

← 전체 기술 노트 · 워크스페이스 인덱스 · 맨 위 ↑