{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/giorgoschionas/amm-challenge/61ba5df13771e35a9887e51994d3eeb5edc4fade/contracts/src/Strategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    uint256 public constant FEE = 25 * BPS;\n\n    function afterInitialize(uint256, uint256)\n        external pure override returns (uint256, uint256)\n    {\n        return (FEE, FEE);\n    }\n\n    functio"
    },
    {
      "url": "https://raw.githubusercontent.com/piotrostr/amm-challenge/35b9625f7e3aa57a07627f530240b69e1761e702/contracts/src/BoundedExpStrategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\n/// Bounded exponential: fee = base * (1 + vol/(vb*8))^8\n/// Approximates exp(vol/vb) without divergence. 3 squarings.\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ALPHA = WAD / 3;\n    uint256 constant BASE_FEE "
    },
    {
      "url": "https://raw.githubusercontent.com/piotrostr/amm-challenge/35b9625f7e3aa57a07627f530240b69e1761e702/contracts/src/DecayVolStrategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\n/// Vol-adaptive with time-decay: volEma *= (1-alpha)^(dt-1) before update\n/// This makes vol \"forget\" during empty steps, lowering fee after gaps\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ALPHA = WAD / 3;\n  "
    },
    {
      "url": "https://raw.githubusercontent.com/piotrostr/amm-challenge/35b9625f7e3aa57a07627f530240b69e1761e702/contracts/src/ExpVolStrategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\n/// Quadratic vol-adaptive: fee = base + scale * r^2 / (1 + r)\n/// Convex near 0 but saturates for large r\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ALPHA = WAD / 3;\n    uint256 constant BASE_FEE = 5 * BPS;\n "
    },
    {
      "url": "https://raw.githubusercontent.com/piotrostr/amm-challenge/35b9625f7e3aa57a07627f530240b69e1761e702/contracts/src/FastVolStrategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\n/// Fast vol-adaptive: alpha=1/3, min=3bps, range=85bps, vb=45bps.\n/// Faster EMA + lower range prevents fee spikes that kill routing share.\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ALPHA = WAD / 3;\n\n    fun"
    },
    {
      "url": "https://raw.githubusercontent.com/piotrostr/amm-challenge/35b9625f7e3aa57a07627f530240b69e1761e702/contracts/src/SqVolStrategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ALPHA = WAD / 3;\n    uint256 constant BASE_FEE = 8 * BPS;\n    uint256 constant RANGE = 100 * BPS;\n    uint256 constant VOL_REF = 80 * BPS;\n\n    function afterInitiali"
    },
    {
      "url": "https://raw.githubusercontent.com/atvinicius/amm-challenge/78752c17e06b3f4b5d304291e29642f13693c2d7/strategy_submission.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {TradeInfo} from \"./IAMMStrategy.sol\";\n\n/// @title Rookie Edge\n/// @notice Retail-first dynamic fee controller with toxicity and directional protection.\n/// @dev Built to improve edge by trading a bit more arb risk for much higher retail capture.\ncontract Strategy is AMMStrategyB"
    },
    {
      "url": "https://raw.githubusercontent.com/alexanderzliu/amm-challenge/e15b10d2193387e14b863342adacf9508821b471/my_strategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    // slots[0] = bid fee (used when AMM buys X)\n    // slots[1] = ask fee (used when AMM sells X)\n\n    // DirContrarian: After trade in direction D, spike OPPOSITE direction only.\n    //"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py",
      "quote": "            rng = np.random.default_rng(seed=i)\n\n            retail_mean_size = (\n                rng.uniform(self.variance.retail_mean_size_min, self.variance.retail_mean_size_max)\n                if self.variance.vary_retail_mean_size\n                else self.base_config.retail_mean_size\n            )\n            retail_arrival_rate = (\n        "
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs",
      "quote": "        // Initialize retail trader with different seed\n        let mut retail_trader = RetailTrader::new(\n            self.config.retail_arrival_rate,\n            self.config.retail_mean_size,\n            self.config.retail_size_sigma,\n            self.config.retail_buy_prob,\n            Some(seed + 1),\n        );\n\n        let arbitrageur = Arbitr"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/arbitrageur.rs",
      "quote": "/// Uses closed-form solutions for constant product AMMs.\n/// For reserves (x, y), k=xy, fee f (fee-on-input), \u03b3 = 1 - f, and fair price p (Y per X):\n/// - Buy X from AMM (AMM sells X): \u0394x_out = x - sqrt(k / (\u03b3\u00b7p)) (profit-maximizing)\n/// - Sell X to AMM (AMM buys X): \u0394x_in = (sqrt(k\u00b7\u03b3 / p) - x) / \u03b3 (profit-maximizing, \u0394x_in is gross input)\npub str"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/amm/cfmm.rs",
      "quote": "pub fn quote_buy_x(&self, amount_x: f64) -> (f64, f64) {\n        if amount_x <= 0.0 {\n            return (0.0, 0.0);\n        }\n\n        let fee = self.current_fees.bid_fee.to_f64();\n        let gamma = (1.0 - fee).clamp(0.0, 1.0);\n        if gamma <= 0.0 {\n            return (0.0, 0.0);\n        }\n        let net_x = amount_x * gamma;\n\n        let k"
    },
    {
      "url": "https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol",
      "quote": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {TradeInfo} from \"./IAMMStrategy.sol\";\n\ncontract Strategy is AMMStrategyBase {\n    uint256 constant ELAPSED_CAP = 8;\n    uint256 constant SIGNAL_THRESHOLD = WAD / 650;\n    uint256 constant DIR_DECAY = 750000000000000000;\n    uint2"
    },
    {
      "url": "https://api.imd.fun/artifacts/19f2ec857df536e8ab62ab1da89ec6623332521ce46849f15bccff402c63e1e5",
      "quote": "\"code\":\"// SPDX-License-Identifier: MIT\\npragma solidity ^0.8.24;\\n\\nimport {AMMStrategyBase} from \\\"./AMMStrategyBase.sol\\\";\\nimport {TradeInfo} from \\\"./IAMMStrategy.sol\\\";\\n\\nco"
    },
    {
      "url": "https://api.imd.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194",
      "quote": "\"harness_source\":\"\\\"\\\"\\\"Run from the pinned amm-challenge checkout, with the brief's environment active.\\npython harness.py --start 5000000 --n 2000 --out measured.json candidate.s"
    },
    {
      "url": "https://api.github.com/repos/atvinicius/amm-challenge/commits/78752c17e06b3f4b5d304291e29642f13693c2d7",
      "quote": "\"author\":{\"name\":\"Vinicius\",\"email\":\"viniciusalvest3@gmail.com\",\"date\":\"2026-02-09T17:00:49Z\"},\"committer\":{\"name\":\"Vinicius\",\"email\":\"viniciusalvest3@gmail.com\",\"date\":\"2026-02-09T17:00:49Z\"},\"messag"
    },
    {
      "url": "https://api.github.com/repos/giorgoschionas/amm-challenge/branches?per_page=100",
      "quote": "61ba5df13771e35a9887e51994d3eeb5edc4fade"
    },
    {
      "url": "https://api.github.com/repos/piotrostr/amm-challenge/branches?per_page=100",
      "quote": "35b9625f7e3aa57a07627f530240b69e1761e702"
    },
    {
      "url": "https://api.github.com/repos/atvinicius/amm-challenge/branches?per_page=100",
      "quote": "78752c17e06b3f4b5d304291e29642f13693c2d7"
    },
    {
      "url": "https://api.github.com/repos/alexanderzliu/amm-challenge/branches?per_page=100",
      "quote": "e15b10d2193387e14b863342adacf9508821b471"
    }
  ]
}