diff --git a/config/scenarios/micro_support_usd_wrappers_1_56_137.json b/config/scenarios/micro_support_usd_wrappers_1_56_137.json new file mode 100644 index 0000000..74d477c --- /dev/null +++ b/config/scenarios/micro_support_usd_wrappers_1_56_137.json @@ -0,0 +1,33 @@ +{ + "scenario": "micro_support_usd_wrappers_1_56_137", + "graphMode": "design", + "topology": "full_quote", + "chainsIncluded": ["1", "56", "137"], + "tokensIncluded": ["cWUSDT", "cWUSDC"], + "epochBlocks": 300, + "epochs": 720, + "orderflowModel": { + "distribution": "uniform", + "volumeMinUnits": 1000, + "volumeMaxUnits": 80000, + "tradesPerEpoch": 35 + }, + "microTradePolicy": { + "enabled": true, + "tokens": ["cWUSDT", "cWUSDC"], + "quoteTokens": ["USDT", "USDC"], + "preferMatchedQuote": true, + "mode": "inventory_or_alternate", + "tradeSizeUnits": 250, + "tradesPerEpoch": 8, + "gasCostPerTradeUnits": 2, + "gasBudgetPerEpochUnits": 16, + "inventoryBandFraction": 0.05, + "maxFractionOfTarget": 0.0025 + }, + "oracleModel": "static", + "latencyModel": { + "finalityBlocksPerChainPair": {}, + "rhoPerBlockBps": 0.5 + } +} diff --git a/docs/15-gas-budgeted-micro-trade-support.md b/docs/15-gas-budgeted-micro-trade-support.md new file mode 100644 index 0000000..b1fab60 --- /dev/null +++ b/docs/15-gas-budgeted-micro-trade-support.md @@ -0,0 +1,58 @@ +# Gas-Budgeted Micro-Trade Support + +Use a small, explicit gas budget to run **tiny support trades** in the most important wrapped USD rails: + +- `cWUSDC` against `USDC` +- `cWUSDT` against `USDT` +- fallback to the chain hub stable only when the matched rail is unavailable + +## What this is for + +The goal is to give wrapped assets: + +- observable turnover +- fresher route discovery +- tighter quote confidence +- inventory-sensitive support when a pool drifts away from target stock + +This is a **liquidity and price-discovery support lane**. It does **not** create reserve backing or intrinsic value on its own. + +## Operating rule + +Use the support lane only when all of these remain true: + +- the trades stay **micro** relative to `I_T^*` +- gas is capped per epoch or time window +- matched rails are preferred: `cWUSDC/USDC`, `cWUSDT/USDT` +- inventory correction happens first +- alternating buys/sells are allowed only inside a small inventory band + +## Suggested control surface + +Model or enforce these knobs: + +- `tradeSizeUnits` +- `tradesPerEpoch` +- `gasCostPerTradeUnits` +- `gasBudgetPerEpochUnits` +- `inventoryBandFraction` +- `maxFractionOfTarget` +- `preferMatchedQuote` + +## Recommended interpretation + +Think of this as paying a small amount of gas to keep the wrapper corridor **economically live**: + +- If pool inventory is too low, sell a tiny amount of cW into the pool. +- If pool inventory is too high, buy a tiny amount of cW from the pool. +- If inventory is already near target, allow only very small alternating trades, still under the gas cap. + +## Scenario + +The repo includes a ready-made scenario for the first three high-signal public rails: + +```bash +node scripts/run-scenario.cjs micro_support_usd_wrappers_1_56_137 +``` + +This runs on chains `1`, `56`, and `137` with `cWUSDT` and `cWUSDC`, full-quote topology, and a separate micro-trade policy budget.