Enable tier-0 market-maker registration before the first economic pool #514
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#514
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ask: enable tier-0 market-maker registration before the first economic pool
We've been running the only two-sided quotes on dex.cl8y.com since the soft launch (most recently EMBER/CORAL and EMBER/JADE, 3 rungs a side — the only resting orders within 6% of fair on any of the ten pairs). Wallet
terra12z8vz3vgnalt8trykd6nntdyp54e95yqsdtjj3, registered tier 9.The problem: the maker placement fee (~4 bps for us at tier 9, charged on the full escrow at every placement and not refunded on cancel) is incurred at every requote, and a maker who keeps quotes anchored to fair value requotes constantly. Over our three most recent measurable trading days, placement fees consumed 221%, 135%, and ∞% of the maker revenue they enabled — continuous book-keeping is net-negative even at the deepest fee tier, so as things stand we'd have to thin or freeze the book exactly when real tokens list and a fresh book matters most.
The ask: the fee-discount registry already defines a governance-only tier 0 (100% discount). Granting market-maker registrations under it — ideally before the first cLUNC/UST1 pool opens — would make continuously fresh quotes economically sustainable. We're happy to commit to depth/uptime terms in exchange (e.g. minimum rungs per side and maximum quote staleness), and to have the registration be revocable if those aren't met.
Venue-health framing, not just self-interest: the first economic pair's order book will be most people's first impression of the DEX. Whether it's continuously quoted or a ghost town is decided by this fee mechanic.
Requires investigation.
(1) Generating fees for the CMM treasury is critical for our economic goals
(2) Maker placement orders are critical for order book depth and user experience, so if lower/zero fees on maker placement orders create fees from other types of trades, then they can be reduced
Idea 1: Reduce maker order fees on all teirs, and set tier 9 to zero. Advantage is its a simple and transparent process thats easy for anyone to participate
Idea 2: Create an open Market Maker Partner program for zero base fees, requiring the associated wallet registered to only trade the approved pair with clear contractural rules that the trading must only be for pricing and depth. 30% of profits from wallets in the program should be transferred to the treasury. Advantage is the program can be more flexible to the specific needs of market makers, however its less transparent and more complex
Thanks for engaging so quickly. Thoughts on both ideas, treasury-growth arguments first since that's the right lens:
How maker-fee relief grows the CMM treasury
Taker fees are the revenue; makers are the bait. Treasury income scales with volume, and volume follows tight, deep books. At current placement-fee levels, book-keeping is net-negative; on our measured days, placement fees consumed 135–221% of the maker revenue they enabled, so the fee suppresses the very activity that generates taker flow. It raises almost nothing today and costs the taker revenue a live book would attract. Zeroing it converts a dead tax into fee-paying volume.
Idea 1 monetises through CL8Y demand. Gating zero maker fees behind tier 9 means every serious market maker must buy and hold 7,500 CL8Y. That is permanent structural demand for the treasury's own asset, cleaner value capture than skimming maker P&L, and it compounds with each new MM joining rather than taxing them away.
Simplicity compounds participation. Tier-9 status is verifiable on-chain by anyone; nobody negotiates a contract to start quoting. More MMs → tighter books → more taker volume → more treasury fees.
On Idea 2: I'd keep it as an opt-in complement rather than the primary path. Two practical concerns from the operator side: (a) measuring an MM wallet's "profit" is genuinely hard; inventory marks move, positions span days, and any definition invites disputes that sour the partnership; (b) a 30% share pushes a rational MM to widen spreads to protect margin, which quietly taxes users instead. Where Idea 2 shines is professional firms who won't hold CL8Y; offer it to them as the alternative track.
My commitment either way: when the cLUNC pool goes live (happy to seed it per #513), I intend to keep it continuously quoted from block one regardless of which structure ships — and I'm glad to agree concrete depth and uptime terms with you directly as part of whichever route you pick.
mentioned in issue #513
Additional feedback from community on Idea 2
Feedback on Idea 1 has been positive as its straightforward, accessible, and transparent
Approved direction is to edit the tiers so that limit orders have lowered fees than currently, and that tier 9 should reach 0 bps. All tiers should shift down one cost from their current level. However, it must still be charged the standard trading fee when orders cross the book, which should be the current behavior (please confirm)
#514 confirmation — new limit-order placement targets (CL8Y unchanged)
Interpreting the 2026-08-15 note: shift each self-register tier’s limit-order placement cost down one step; tier 9 → 0 bps. CL8Y hold minima stay as they are. Pair default fee is 180 bps (mainnet / LocalTerra). On-chain placement fee is
floor(effective/2)of the limit discount, not the swap discount.Crossing the book (confirmed current behavior, unchanged): a taker that hits a resting order still pays the taker half of their effective swap fee (
effective_fee_bps - floor(effective/2)). Unregistered retail still pays 90 bps taker on a 180 bps pair. Maker placement is a separate charge at place time and is not refunded on cancel. This change does not zero swap / take fees (tier 9 still pays 9 bps effective / 5 bps taker when they themselves take).CL8Y required (unchanged)
min_cl8y_balance(18 dec)01e185e1820e1875e18200e18500e181500e183500e187500e180Limit-order placement fee @ 180 bps pair (
floor(eff/2))Each tier inherits the next tier’s current remaining-fee; tier 9 goes to 0. Swap
discount_bpsstays put.Implementation plan: keep
discount_bpsfor swaps / book takes; apply the one-step shift only to maker placement (so Idea 1’s “zero maker fees at 7,500 CL8Y” does not also zero T9 take fees). Proceeding with that unless this thread says otherwise.mentioned in merge request !1058
Implemented on
feat/514-limit-order-tier-fees— MR !1058.Confirmed and shipped as the table in the previous note:
discount_bpsunchanged (tier 9 take still 9 bps effective / 5 bps taker). Unregistered retail crossing the book still pays 90 bps taker.This is not a tier-0 grant. Idea 2 (MM partner / profit share) is out of scope.
Verify:
make verify-issue-514. Mainnet apply:scripts/upgrade-514-limit-discount.sh.MR !1058 merged (no automerge; did not wait for CI).
Acceptance criteria check: met.
discount_bps(tier 9 take still 9 bps effective / 5 bps taker). Unregistered take still 90 bps.Merge hygiene:
AGENTS.mdis edited on both this branch and main (#528 playbook). A feat→main trial merge auto-resolved without conflict markers but dropped the #514 playbook line. Fixed by mergingorigin/maininto the MR branch first so both #514 and #528 entries are kept, then merging !1058.Non-blocking follow-ups (do not block the merge):
backfill_standard_limit_discounts).effective_fee_bps == 9; book-take is unchanged structurally and covered by existing hybrid tests, not a new T9 take case.Local verify previously reported
make verify-issue-5149/9 on the MR tip before the main merge-up.mentioned in commit
8263b59819columbus-5 #514 upgrade — on-chain verification (2026-08-15 UTC)
MR !1058 wasm is live. Operator is rebuilding Coolify
dex.cl8y.comnext (frontend Limit place column / maker-fee copy). No live T9 place tx in this check — LCD queries only.Result
11581, adminterra1zlmv2…11580on every factory pair, adminterra1zlmv2…pair_code_id11580(lp_token_code_idstill 10184)discount_bps9500,limit_discount_bps10000GetTiers/GetTier/GetRegistration)discount_bpsunchangedlimit_discount_bps0terra12z8vz3…GetDiscount:discount_bps9500,limit_discount_bps10000,needs_deregisterfalseGetDiscountcl8ydeploy: both 0fee_bps180, treasuryterra16j5u6…commission_amount17039 (unregistered, notrader)Invariant I13: placement uses
limit_discount_bps(T9 place = 0 bps @ 180 pair); swap / book-take stay ondiscount_bps(T9 swap effective 9 bps). Do not set T9discount_bpsto 10000.Store (
cl8ydeploy)data_hash056749BC6F48FD567893E4BCAC98583FD73F38C29BF1BDCFDA8301E60CA2D73A5DBADE9266D9112F28B09F72D5A8A1377CE17CAAC1EA2470A407D15C66616C8ELocal
smartcontracts/artifacts/*.wasmsha256 matches thosedata_hashvalues (case-insensitive).Migrate /
UpdateConfig(2-of-3terra1zlmv2…, allcode=0)UpdateConfig { pair_code_id: 11580 }Remaining (frontend)
dex.cl8y.comfrommainso/tiersLimit place and Trade maker-fee copy match T9 = 0.maker_fee_amount= 0; same wallet pool/hybrid swapeffective_fee_bps= 9; unregistered place/take still 90 bps.Deploy trace copy: #391
mentioned in issue #391
Coolify frontend check (dex.cl8y.com) — 2026-08-15 UTC
Production
/tiersis serving the !1058 UI against live LCDGetTiers.Copy: “Limit-order placement uses a deeper discount (tier 9 is 0). Taking or swapping still uses the swap discount.” HTML
last-modified2026-08-15 22:24:42 GMT; chunkTiersPage-CV-BSmL5.js.On-chain migrate (code 11581 / 11580) already verified in the previous note. No remaining #514 ops.
Optional later (not this issue): a live T9
place_limit_orderto confirmmaker_fee_amount=0in events. LCDGetDiscountforterra12z8vz3…already returnslimit_discount_bps=10000.mentioned in issue #532
mentioned in issue #546
marked as related to #546
mentioned in issue #584
marked as related to #584
mentioned in issue #597
marked as related to #597
mentioned in issue #651