0xef37ad2b…5fc4sent to0xf36b9f50…2f51·#23,098,009·0x1600dfbc…834753
# 0x Bridge Settler\n\n[0x](https://0x.org/)'s settlement contracts for cross-chain operations\nutilising [Permit2](https://github.com/Uniswap/permit2) patterns to perform\nswaps without any passive allowance. Full source code and audits are found at\n[0xProject/0x-settler](https://github.com/0xProject/0x-settler).\n\n## Bug Bounty\n\nIf you've found a bug, you may be eligible for a bounty under the 0x [bug bounty\nprogram](https://0x.org/docs/developer-resources/bounties). Please see that link\nfor eligibility requirements as well as the advertised payout tiers. If you have\nany findings, send an email to [mailto:security@0x.org](security@0x.org) with\nthe subject line \"BUG BOUNTY\". Please describe the bug that you've found **in\ndetail** and ideally provide a proof-of-concept exploit.\n\n## Architecture\n\n### Allowances\n\n`BridgeSettler` does not hold allowances, nor does it hold token balances\nbetween swaps. This provides an enhanced security posture. `BridgeSettler`\nrelies on the aforementioned `Permit2` contract to hold allowances. Some\ntaker-submitted actions are made using a gas-optimized allowance contract,\n`AllowanceHolder`, which can be found at\n0x0000000000001fF3684f28c67538d4D072C22734.\n\n`BridgeSettler` allows arbitrary calls to other contracts. Therefore it is of\nthe utmost importance that _**bridge settler does not hold token balances or\nallowances**_.\n\n### `ISignatureTransfer` vs `IAllowanceTransfer`\n\nIn order to remove the risk that passive allowances could be exploited, 0x\nBridge Settler **does not** support the typical `Permit2` pattern of time-bound,\nvalue-bound allowances set via an ECDSA or\n[ERC1271](https://eips.ethereum.org/EIPS/eip-1271) signature. This is the\n`IAllowanceTransfer` half of `Permit2`. Instead, 0x Settler only supports the\n`ISignatureTransfer` interface, which requires a single-use signature (which we\nrefer to as a coupon) be submitted with every transaction.\n\nThis provides enhanced security at the cost of some gas and inconvenience. For\nthose users/integrators for whom this is too much of a cost, an alternative\nallowance target, `AllowanceHolder` is provided (see above).\n\n### Actions\n\n0x Bridge Settler settles bridging operations by performing a sequence of\nactions encoded in calldata. Actions are ABIEncoded with a selector. See\n`IBridgeSettlerActions` for the available options. Typically, actions are\nparametrized to match the parameters required by the underlying bridge going to\nbe used.\n\n## Action encoding\n\nThe action encoding is not stable. Do not rely on the action encoding being\npreserved between 0x Settler instances. See [0x's developer\ndocumentation](https://0x.org/docs/developer-resources/settler) for a detailed\nexplanation.\n\nTypically, actions are only added to `IBridgeSettlerActions` for 2 reasons: 1)\nto gas-optimize a cross-chain path; 2) to provide compatibility with a bridge\nthat does not support typical `ERC20.approve`...`ERC20.transferFrom` flows.\n