Configurable Parameters Registry
All parameters are stored in the database (CorridorRegistry) and adjustable by admin/governance. No values are hardcoded in the fee distribution logic.
1. Revenue Split Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| KF_SHARE_PCT | uint8 | 50% | Protocol Treasury share of swap profit |
| TXN_LP_SHARE_PCT | uint8 | 30% | Transaction LP share of swap profit |
| GLOBAL_LP_SHARE_PCT | uint8 | 20% | Global LP share of swap profit |
KF_SHARE_PCT + TXN_LP_SHARE_PCT + GLOBAL_LP_SHARE_PCT must always equal 100%. The ProtocolConfig contract enforces this invariant on any parameter update.
2. Volume-Tiered Fee Parameters
Fee parameters are no longer global flat values. They are configured per corridor, per transaction size band in the fee_tiers table. See Volume-Tiered Fee Schedule for the full tier tables.
| Parameter | Scope | Description |
|---|---|---|
| fixed_fee_in_to_token | Per corridor, per tier | Fixed fee denominated in destination currency. Converted to source currency at oracle rate and deducted from input. |
| variable_fee_bips | Per corridor, per tier | Variable fee as basis points of source amount. Decreases with transaction size. |
| spread_override_bps | Per corridor, per tier | Overrides only the Base Spread component. 0 = use corridor default. Volatility + Liquidity + Skew still add on top. |
| min_amount | Per corridor, per tier | Minimum transaction size for this tier (inclusive, in source currency). Smallest tier's min_amount defines the corridor minimum. |
| max_amount | Per corridor, per tier | Maximum transaction size for this tier (exclusive). 0 = unlimited (highest tier). |
Fallback Fees (corridors without tiers)
For corridors that have not been configured with fee tiers, the system falls back to global flat fees:
| Parameter | Type | Default | Description |
|---|---|---|---|
| fee_tier_fallback_fixed | uint256 | $1.00 (18 decimals) | Fallback fixed fee if no tier configured |
| fee_tier_fallback_variable_bips | uint16 | 30 bips | Fallback variable fee if no tier configured |
| OFFRAMP_FEE_BIPS | uint16 | 20 bips | Fee charged on kUSD withdrawal via OffRamp (not tiered) |
3. LP Class Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| ClassA_fee_tier_multiplier | uint16 | per partner | Multiplier on Class A LP effective weight. Set per partner at onboarding. |
| ClassB_Reserve_Yield_Ratio | uint8/uint8 | 50/50 | Split ratio for Class B deposits between Reserve and Yield pools |
| GLOBAL_HARVEST_INTERVAL | uint32 | 24h | Frequency of Global Fee Pool harvest events |
4. Per-Partner Fee Tier Examples
LP Reward Multipliers (how LP rewards are shared)
| Partner | Class | Tier | Multiplier | Rationale |
|---|---|---|---|---|
| IDRX Issuer | A | Strategic | 0.3× | Low rate; value is deep IDR liquidity, not yield |
| MYRC Issuer | A | Strategic | 0.4× | MYR-IDR cross corridor value |
| Institutional Fund | A | Premium | 0.8× | Large USDT deposit; no yield exposure |
| Retail LPs | B | Standard | 1.0× | Default rate for full participation |
| DeFi Yield Fund | B | Standard | 1.0× | Full participation with yield exposure |
Partner Swap Fee Overrides (what the user pays per swap)
Partners can receive custom swap fees via partner_fee_tier_overrides. These override the standard tier rates for specific corridors:
| Partner | Corridor | Tiers Affected | Custom Variable | Custom Spread | Rationale |
|---|---|---|---|---|---|
| IDRX Issuer | USD-IDR | All | 1 bip | 5 bps | Anchor liquidity provider |
| Enterprise PSP | USD-IDR | Medium+ | 1 bip | 10 bps | High-volume remittance operator |
| Strategic Bank | USD-SGD | All | 0 bips | 3 bps | SGD corridor anchor |
LP reward multiplier (ClassA_fee_tier_multiplier) controls how rewards are distributed among LPs — it does not affect what the user pays.
Partner swap fee override (partner_fee_tier_overrides) controls the actual swap fees the user pays — fixed fee, variable fee, and spread.
A partner can have both: a low LP multiplier (earning less from the reward pool) AND a low swap fee override (paying less per swap). These are independently configurable.