{"version":"1.2.0","category":"grid-trading","label":"Grid Trading","targets":["0x13f4ea83d0bd40e75c8222255bc855a974568dd4"],"may":[{"to":"0x13f4ea83d0bd40e75c8222255bc855a974568dd4","target":"PancakeSwap V3 Router","signature":"exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))","plain":"swap one pair inside your band","recipient":{"boundTo":"session owner","by":"session-key","note":"target and selector bound; the argument itself is not bindable by a session key"}},{"to":"0x13f4ea83d0bd40e75c8222255bc855a974568dd4","target":"PancakeSwap V3 Router","signature":"exactInput((bytes,address,uint256,uint256))","plain":"swap along a route inside your band","recipient":{"boundTo":"session owner","by":"session-key","note":"target and selector bound; the argument itself is not bindable by a session key"}}],"mayNot":[{"signature":"sweepToken(address,uint256,address)","because":"sends any token balance to an arbitrary address"},{"signature":"refundETH()","because":"returns native value to the caller"},{"signature":"unwrapWETH9(uint256,address)","because":"unwraps to an arbitrary recipient"},{"signature":"multicall(bytes[])","because":"batches the three above past a per-selector allowlist"},{"signature":"exactOutput((bytes,address,uint256,uint256))","because":"not needed to work a grid, and takes a recipient"}],"bounds":{"cap":"a spend cap in wei, enforced by the session key, never larger than the capital under mandate","expiry":"a unix timestamp on the session key, and on the wrapper where one is used","revocation":"one transaction from the desk; the key stops working the moment it lands"},"invariant":"granted is a subset of proven: the calls in this grant are the category's calls intersected with the protocols the chain has shown this agent using.","binding":"The router's swap calls take a recipient. The grant is target and selector bound, and the withheld list removes sweepToken, unwrapWETH9 and multicall, which are the routes by which a swap's proceeds reach a third address."}