This week focused on stabilizing the mobile wallet experience (fixing the top user-facing bugs after βfeature completeβ) and applying a set of blockchain fee + AMM correctness updates so devnet/testnet economics behave predictably during internal QA.
Progress This Week
A) Mobile Wallet Bug Fixes
1) Wallet Balance Correctness + Token Display Fixes
We addressed the most visible correctness issues in early builds:
- Fixed pToken visibility gaps where wallets holding pTokens (pETH/pBTC/pUSDT) were incorrectly showing 0 balances in the wallet UI.
- Corrected token unit display so balances show the right token symbol
- Contained UI overflow for large wallet balances that were breaking layout.
- Reduced cross-screen balance inconsistency (Home vs Wallet display mismatches) so QA can trust what the UI shows while testing flows.
2) Swap Execution Stability + Trade UX Corrections
We moved swaps from βblockedβ to βtestableβ:
- Resolved the early swap execution failure (pCHML β pUSDT and similar routes that previously threw errors).
- Improved swap UX clarity:
- Swap-related activity is treated as swap activity, not βsentβ transfers.
- Began cleaning up swap labeling/formatting issues that made QA verification ambiguous.
3) Liquidity: From βVisibleβ to βTestableβ
Liquidity testing became meaningfully usable this week:
- Trade β Liquidity now surfaces Available Pools directly (no hidden navigation / extra taps).
- Made pool discovery clearer (so testers can reliably choose the right pair).
- Confirmed the baseline liquidity flow can be exercised end-to-end (add liquidity β LP minted), enabling deeper testing for next week around positions + removal behavior.
4) Transfers + Activity Tracking (Foundational Improvements)
As swaps/liquidity became usable, we also hardened basic wallet verification:
- Continued tightening Recent Activity correctness so testers can validate whether a transaction was a swap, shield/unshield, or send/receive without confusing labels.
- Started focusing on incoming transfer visibility (recipient-side correctness), which becomes critical once multi-wallet testing ramps up.
B) Blockchain Changes (Fees + AMM correctness)
We shipped a small but important set of chain-level fixes:
| Change | What was wrong | Whatβs fixed now |
|---|---|---|
| Bridge fee distribution | Fee splitting assumed custodian infra | Bridge fees route 100% to Treasury (for devnet/testnet phase) |
| MinShieldFee | Decimal bug made minimum fee absurd | Correct minimum is now 0.1 CHML |
| MinUnshieldFee | Decimal bug made minimum fee absurd | Correct minimum is now 0.25 CHML |
| add_liquidity proportional deposits | Imbalanced deposits could slip through | Enforced 0.5% tolerance on proportional deposits |
| Gas fee routing | Gas fees were being dropped/burned | Gas fees now route 100% to Treasury |
C) Fee Structure v2.0 (Updated)
With the above changes, the current fee rails are:
| Fee Type | Rate | Distribution |
|---|---|---|
| Shielding | 0.02% OR 0.1 CHML min | 100% Treasury |
| Unshielding | 0.05% OR 0.25 CHML min | 100% Treasury |
| pDEX Swaps | 0.25% | 90% LPs / 10% Treasury |
| Gas Fees | weight-based (variable) | 100% Treasury |
Why 100% Treasury for bridge + gas right now (devnet/testnet phase):
- Validators already earn from emissions (block rewards)
- Treasury needs runway for audits, development, and ecosystem growth
- Custodian infrastructure isnβt standing up yet at this stage
- This can be revisited later via governance once testnet economics mature
D) Devnet Rollout + Liquidity Re-seeded
To validate the fixes end-to-end, the devnet was redeployed cleanly:
Deployment sequence executed
- Push updated chain changes
- Stop nodes (SFO + NYC)
- Deploy new binaries
- Regenerate chainspec (SFO) + sync to NYC
- Start Alice β start Bob (bootnode)
- Recreate pools + reseed liquidity
Liquidity pools active
- Pool 0: pCHML/pBTC β 225K pCHML + 1.1 pBTC
- Pool 1: pCHML/pETH β 225K pCHML + 31 pETH
- Pool 2: pCHML/pUSDT β 225K pCHML + 100K pUSDT
Next Steps
Now that the core flows are testable, next week focuses on state synchronization + liquidity correctness:
- Post-swap balance refresh and consistent wallet refresh behavior
- Incoming transfers reliably appearing in Recent Activity + notifications
- LP position detection across all relevant surfaces (pool details, remove liquidity, power tab)
- Public vs private messaging correctness (labels/banners based on token type)
- Network fee display consistency across unshield flows
Note- Weβre still keeping this as internal QA until these are rock-solid.