Skip to content

docs(fees): step the Terms and FAQ resale fee copy from 5% to 7.5% - #270

Merged
GigaHierz merged 2 commits into
mainfrom
ghozzza/fee-copy-hardcoded-at-5-percent
Sep 23, 2026
Merged

GigaHierz merged 2 commits into
mainfrom
ghozzza/fee-copy-hardcoded-at-5-percent

Conversation

@ghozzza

@ghozzza ghozzza commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Merge gate: not before the setFeeRate(750) call lands. feeRate() on all three live maps (world 0xA8cF…5C49, africa 0x8e70…79b7, asia 0x9b8D…0661) still returns 500 bps at block 77490520 (2026-09-14 13:07Z). Merge this the same day the admin call is mined and paste the tx hash here — the copy is meant to change in lockstep, and merged early it would state a fee players are not yet paying.

Player-facing copy hardcodes the resale fee at 5% in three places — Terms §6 (terms/page.tsx:61), and the FAQ's who-pays-whom and sniped answers (faq/content.ts:117, :122). The rate is owner-settable on chain (setFeeRate, capped at MAX_FEE_RATE 2000 bps), and the plan steps it 500 → 750. Nothing ties the copy to the live value, so the moment the call lands, a legal document and two money answers are wrong. This changes the three strings to 7.5% ("up to seven and a half percent (7.5%)" in the Terms), updates the two source comments that repeat the number (terms/page.tsx:11, faq/content.ts:15-19), and rewrites the FAQ header note so it says the fee is settable and was stepped by a tx rather than being a constructor value. The FAQ facts test now pins 7.5% and rejects a bare 5% , so a partial revert of one answer fails CI.

Two things a reviewer should know. The Terms file's own header says any further edit to that text needs legal sign-off, so §6 wants counsel's OK before merge even though the change is one number — routing that is outside this PR. And the faq/content.ts note says the tx is "referenced by the PR that landed this line": that is this PR, and the hash goes into the first comment when it exists; the "re-confirmed" box on #265 gets ticked by a cast call against all three maps that day, not by this diff.

Verified: tsc --noEmit clean, vitest run src/__tests__/app/faq.test.ts 11 passed. Mutation control: reverting one FAQ answer to 5% turns the facts test red. Not verified: nothing here executes — it is static copy, so the check that matters is the on-chain one above, on the day.

Closes #265

🤖 Generated with Claude Code

feeRate is owner-settable on chain and is being stepped 500 -> 750 bps.
Terms section 6 and the two FAQ answers hardcode the old rate; this
brings them to 7.5% so the copy changes in lockstep with the admin call,
and rewrites the FAQ header note so it says the fee is settable rather
than a constructor value. The FAQ facts test now pins 7.5% and rejects
a bare 5%.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
mondeto-web Ready Ready Preview Sep 23, 2026 3:44pm UTC

Request Review

@GigaHierz

Copy link
Copy Markdown
Collaborator

Merge gate met. setFeeRate(750) landed on both revealed maps:

Map Proxy Tx Block
World (0) 0xA8cFC1B4365518f56954382B6Fab25a5382f5C49 0x5ce4a8…001b 78274231
Africa (1) 0x8e70ada33714C3F8f35182b781C63449c5e079b7 0xd2a9e2…40d9 78274241

Verified from the receipts: status 0x1, to is the proxy above, input selector 0x45596e2e = setFeeRate(uint256) with 0x2ee = 750, and each emits FeeRateUpdated(750).

Live feeRate() at block 78276017 via cast call <proxy> "feeRate()(uint256)":

World  0xA8cF…5C49  750
Africa 0x8e70…79b7  750
Asia   0x9b8D…0661  500
maps 3–7            500

https://www.mondeto.app/api/reveals → {"ids":[0,1]}, so every map a player can currently see is at 7.5% and the flat FAQ wording is true today. Asia and the other five maps are still at 500 bps; any of them revealed before its own setFeeRate call would make the FAQ wrong for that map. Also: new maps may launch at a higher rate, in which case Terms §6 and both FAQ answers need another pass. Tracking that as a follow-up on #265.

@GigaHierz GigaHierz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE — reviewed at head 985a344 (= da3caaf + merge of main; content diff unchanged).

Verified:

  • Diff touches exactly the three flagged strings (Terms §6, FAQ who-pays-whom, FAQ sniped) plus the two source comments; Terms wording is "up to seven and a half percent (7.5%)".
  • faq.test.ts pins 7.5% and rejects a bare 5% (regex excludes 7.5% and x.5%), so a partial revert goes red.
  • Runtime code does not hardcode the fee: lib/resaleFee.ts reads feeRate() per map; analytics and PnL routes go through it. Remaining 500 literals are pure-function test fixtures.
  • On-chain: World and Africa at 750 bps, both setFeeRate txs decoded and linked in the comment above; production reveals [0,1], so the copy matches every visible map.
  • ci / ci green on 985a344; merge-tree against main clean.

Legal sign-off on §6 is being handled by the product owner outside this PR. Follow-up (maps revealed at a different rate) noted on #265.

@GigaHierz
GigaHierz merged commit 58dff39 into main Sep 23, 2026
6 checks passed
@GigaHierz
GigaHierz deleted the ghozzza/fee-copy-hardcoded-at-5-percent branch September 23, 2026 15:45

This branch was successfully deployed

1 active deployment
Preview – mondeto-web — 985a3448 Deployed Sep 23, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

task: update Terms & FAQ copy for feeRate step 5%→7.5%

2 participants