Staking System — Open Questions for Client¶
Source doc: QuantaTrade_Staking_System FINAL.docx (reviewed 2026-04-19)
Audience: QT Labs (client), smart contract auditors, legal
Purpose: Resolve before Milestone 5 (Token Utility & Monetization) contract freeze. Each unresolved item is a scope risk or an audit blocker.
1. Oracle dependencies (blocker)¶
The spec defines circuit breakers that react to token price and revenue. Neither signal is natively on-chain.
1.1 Price oracle¶
- §5 trigger: "Token price drops >50% in 7 days → L1 buyback doubles from 10% to 20%".
- Question: Which oracle? Chainlink feed (requires $QTRA to be listed), DEX TWAP (manipulable with thin liquidity), or custom aggregated feed?
- Question: 7-day window — rolling or fixed-epoch? Measured from which reference price?
- Risk: Manipulation of a thin TWAP can force the buyback doubling maliciously.
1.2 Revenue oracle¶
- §5 trigger: "Zero revenue for 90 consecutive days → $1.5M stablecoin reserve activates".
- §1 revenue router splits 50/20/20 — revenue sources are off-chain (subscriptions, exchange fees, trading profit).
- Question: Who attests revenue on-chain? A single admin wallet? Multisig? Threshold oracle from multiple backend signers?
- Tension: The attester role contradicts the spec's "no admin can change" language. Either acknowledge the trusted role explicitly or move attestation to a decentralised/verifiable mechanism.
2. Revenue on-ramp flow (partially resolved — 2026-04-19)¶
Revenue is earned in fiat / USDT, but the reward pool is denominated in $QTRA (per §4.3 "rewards paid in $QTRA").
Resolved by system spec PDF (2026-04-19): - ✓ Subscription revenue (Automated Trading + Intelligence Marketplace) is collected in USDT/USDC, not fiat — no fiat on-ramp in the router path. - ✓ Revenue router is confirmed immutable and separate from the staking contract. Client has flagged it as the highest-risk contract and requires a dedicated audit.
Still open: - Question: Does the router receive USDT/USDC and swap to $QTRA on-chain, or does off-chain treasury buy $QTRA on-market and deposit? (Reward is paid in $QTRA, so a USDT→$QTRA conversion happens somewhere.) - Question: If on-chain swap — slippage/MEV protection? Large pool deposits will move price on low-liquidity pairs. - Question: Alignment with "L1 buyback" — the spec implies a "two-layer buyback engine" but the buyback mechanics section is missing from the PDF. Is staker-fund conversion part of the L1 buyback, or a separate path? - Question: Exchange fees collected in multiple quote currencies (BTC, ETH, USDT etc.) — how does the router aggregate into one reward currency?
Action: Request full system spec (buyback section). Then produce end-to-end flow diagram.
3. State machine ambiguities¶
Several user flows have undefined transitions.
3.1 Warmup and cooldown¶
- §7 lists "staking warmup: 7 days" and "unstaking cooldown: 3 days" — neither is explained anywhere else.
- Question: Does warmup delay reward accrual (stake counted but no yield for 7 days) or delay counted-stake (stake not eligible until day 7)?
- Question: Does cooldown lock tokens post-unstake (tokens unavailable for 3 days after unstake request)?
- UX implication: A 7-day-tier user may actually experience 7 (warmup) + 7 (lock) + 3 (cooldown) + 7 (claim stream) = up to 24 days before tokens are fully liquid. Confirm, then make it explicit in UI copy.
3.2 Early unlock penalty¶
- §7: "Early unlock penalty: revert to 7-day base rate".
- Question: Retroactive (recompute all past rewards at 1.00x weight) or forward-only (forfeit future weight bonus)?
- Retroactive cost: contract must track per-user reward history — high gas, complex audit surface.
- Forward-only cost: users with long lock tiers get nearly a full bonus and exit, undermining the lock incentive.
3.3 Tier expiry¶
- Question: When a 90-day lock period ends, does the position auto-roll at 1.20x, drop to 1.00x, or require user action to restake?
- Default matters: If auto-roll, user is implicitly re-committed; if drop to 1.00x, silent APY cliff.
3.4 Claim stream + unstake interaction¶
- §4.1: breaking a 7-day reward stream early forfeits the unvested portion to the pool.
- Question: Does "breaking" include unstaking the underlying principal, or only transferring the stream position?
- Edge case: User with multiple overlapping claim streams — do they all break together, or per-stream?
4. Immutability posture (partially resolved — 2026-04-19)¶
The spec repeatedly says "cannot change", "immutable", "no admin". This is a design choice with major consequences.
Resolved by system spec PDF (2026-04-19): - ✓ Token contract is hard-immutable: "no admin key, no upgrade proxy for the token contract", mint permanently disabled. Posture #1 confirmed for the ERC-20.
Still open: - Question: Same posture for the revenue router? Flagged as highest-risk — a bug is catastrophic but also unfixable under strict immutability. Strong recommendation: parameter immutability + timelock-gated pause (posture #2). - Question: Same posture for the staking contract? Economic parameters immutable is aligned with the spec, but a pause capability protects against exploits.
Postures: - Strict immutability: no setters, no pause, no upgrade. A critical bug becomes permanent. Demands formal verification. - Parameter immutability + emergency pause: no economic parameter can change, but a multisig + timelock can pause if a critical exploit is detected. Industry standard. - Full upgradeability: proxy pattern, admin can upgrade. Conflicts with spec tone.
Action: Get written sign-off per contract (token / router / staking). Budget for formal verification only on contracts where posture #1 is confirmed. Note: client has budgeted for two separate audits (router + staking) — formal verification would be additional.
5. Economic scenarios to add¶
Current stress tests assume constant $0.10 token price. Real equilibrium depends on price.
- Question: What happens at $0.30? APY = $22.1M / ($0.30 × 599M) = 12.3%. Still competitive but lower — does the 1.60x tier still attract lockers?
- Question: At $1.00? APY = 3.7%. Below typical DeFi benchmarks — risk of unstaking cascade and safeguard trip (drops below 10M stake threshold).
- Question: Treasury floor $5M runway — where are those reserves held? Is $5M pre-funded at launch, or accrued over time from excess revenue periods?
Action: Extend stress table to include $0.30 and $1.00 token price rows. Document treasury reserve funding plan.
6. Legal and compliance¶
- Question: In which jurisdictions will staking be offered? US, EU, UK, Singapore, others?
- Question: Will staking require KYC? If yes, at what tier? (e.g., Sumsub Tier 1 for retail, Tier 2 for institutional stakers.)
- Question: Has external securities counsel reviewed the yield structure? Revenue-share yield may be treated as an investment contract (Howey) in the US.
- Action: Legal memo required before M5 contract freeze. If KYC gating is required, affects contract design (whitelist mapping or ERC-1404-style transfer restrictions).
7. Indexer and UI cadence¶
- Question: How often does the live APY display update? Every block (gas-expensive), every minute (indexer cache), every 5 minutes?
- Question: Where does the UI read APY from — direct contract
viewcall, or indexed backend? - Action: Define in §8 UI requirements. Affects indexer scope in M1/M5.
8. Minor corrections¶
- §6 stress table: header row labels the staked-value columns as "Revenue achievement ($59M)". $59M is the staked value, not revenue. Relabel to avoid confusion.
- §1 Y5 total: subscriptions + exchange + trading = $18.33M + $2.32M + $1.50M = $22.15M ✓
- §7 "Early unlock penalty" needs clearer definition (see §3.2).
Sign-off required before M5 kickoff¶
| # | Item | Owner | Status |
|---|---|---|---|
| 1.1 | Price oracle choice | Client + protocol team | Open |
| 1.2 | Revenue attester design | Client + protocol team | Open |
| 2 | Revenue on-ramp flow | Client treasury team | Open |
| 3.1–3.4 | State machine clarifications | Spec author | Open |
| 4 | Immutability posture | Client (written) | Open |
| 5 | Extended stress tests | Spec author | Open |
| 6 | Legal review | External counsel | Open |
| 7 | UI refresh cadence | Product + UI team | Open |