Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions apps/web/src/__tests__/app/faq.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,9 @@ describe('FAQ facts', () => {
// These are the exact values that were wrong before, verified against
// mainnet `feeRate()` and `config()`. Re-verify with `cast call` before
// changing either the copy or this test.
it('states the 5% fee and never the old 3%', () => {
expect(allCopy).toContain('5% ')
it('states the 7.5% fee and never an older rate', () => {
expect(allCopy).toContain('7.5% ')
expect(allCopy).not.toMatch(/(^|[^.\d])5% /)
expect(allCopy).not.toContain('3%')
})

Expand Down
14 changes: 8 additions & 6 deletions apps/web/src/app/faq/content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@
* answer (mondeto.app/faq#payout-timing). Don't rename ids casually — they get
* pasted into support replies.
*
* Numbers here (5% fee, ~30-day halving) were verified against mainnet
* `feeRate()` and `config()`. They're per-deployment constructor values, so
* re-check with `cast call` before editing — three different halving periods
* were in circulation across this repo before this was written.
* Numbers here (7.5% fee, ~30-day halving) must match mainnet `feeRate()`
* and `config()`. The halving period is a per-deployment constructor value;
* the fee is owner-settable (`setFeeRate`, capped at 20%) and stepped from
* 500 to 750 bps in the tx referenced by the PR that landed this line. Re-check
* both with `cast call` before editing — three different halving periods were
* in circulation across this repo before this was written.
*
* Lives beside the page rather than inside it so `__tests__/app/faq.test.ts`
* can import it without pulling in React (a `page.tsx` may only export the
Expand Down Expand Up @@ -114,12 +116,12 @@ export const FAQ_GROUPS: QaGroup[] = [
{
id: 'who-pays-whom',
q: 'Who pays whom when I buy a pixel?',
a: `If you buy a pixel from another player, they receive what you paid minus a 5% platform fee. If the pixel was unowned, the full amount goes to the contract's treasury.`,
a: `If you buy a pixel from another player, they receive what you paid minus a 7.5% platform fee. If the pixel was unowned, the full amount goes to the contract's treasury.`,
},
{
id: 'sniped',
q: 'Can someone buy my pixel away from me?',
a: `Yes — and that's how you get paid. Anyone can buy any pixel at its current price; there is no listing and no approval needed. The moment someone buys yours, you are paid in the same transaction: what they paid, minus the 5% fee. How much that is depends on timing. The instant a pixel is bought, its price doubles for the next buyer, then decays from there — halving about every 30 days. So a quick resale pays you close to double what you paid, while a pixel nobody touches for a long time gets cheaper for the next buyer, and pays you less.`,
a: `Yes — and that's how you get paid. Anyone can buy any pixel at its current price; there is no listing and no approval needed. The moment someone buys yours, you are paid in the same transaction: what they paid, minus the 7.5% fee. How much that is depends on timing. The instant a pixel is bought, its price doubles for the next buyer, then decays from there — halving about every 30 days. So a quick resale pays you close to double what you paid, while a pixel nobody touches for a long time gets cheaper for the next buyer, and pays you less.`,
},
{
id: 'no-buyers',
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/app/terms/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const metadata: Metadata = {
// Celo Mini Apps Terms and Conditions, provided by counsel. The Mondeto
// game description (§5) and fee wording (§6) were aligned with the
// deployed contract mechanics (price doubles on purchase, halves over
// each 30-day period to a minimum price; 5% fee deducted from the
// each 30-day period to a minimum price; 7.5% fee deducted from the
// previous owner's proceeds; unowned-pixel proceeds go to the contract
// treasury). Any further edits to this text need legal sign-off.

Expand Down Expand Up @@ -58,7 +58,7 @@ const SECTIONS: Array<{ title: string; paragraphs: string[] }> = [
{
title: '6. Fees & Prizes',
paragraphs: [
'For Mondeto, Celo Core Co. may receive a service fee of up to five percent (5%) of the value of each purchase of an owned pixel, deducted from the amount paid to the previous owner. The full purchase price of a previously unowned pixel is paid to Celo Core Co.’s smart-contract treasury. For MiniQuiz, judging and prize amounts are determined in the sole discretion of and paid by Celo Core Co. via its admin process in USDT. Participating in some of the Services and transacting on the Celo Network may require the payment of network "gas" fees. Gas fees fluctuate, are payable by you to network validators, and are non-refundable. Applicable amounts and currency are presented to you before you confirm a transaction.',
'For Mondeto, Celo Core Co. may receive a service fee of up to seven and a half percent (7.5%) of the value of each purchase of an owned pixel, deducted from the amount paid to the previous owner. The full purchase price of a previously unowned pixel is paid to Celo Core Co.’s smart-contract treasury. For MiniQuiz, judging and prize amounts are determined in the sole discretion of and paid by Celo Core Co. via its admin process in USDT. Participating in some of the Services and transacting on the Celo Network may require the payment of network "gas" fees. Gas fees fluctuate, are payable by you to network validators, and are non-refundable. Applicable amounts and currency are presented to you before you confirm a transaction.',
],
},
{
Expand Down
Loading