⛨
ClankerGate
Policy Builder
Powered by @clanker/gate-client SDK
Example Policies
UniV3 exactInputSingle – bounded swap
UniV3 exactInputSingle – whitelist USDC
Target
0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
Selector
0x414bf389
· exactInputSingle()
Param Rules (2)
params.tokenIn (address)
params.tokenOut (address)
params.fee (uint24)
params.recipient (address)
params.deadline (uint256)
params.amountIn (uint256)
params.amountOutMinimum (uint256)
params.sqrtPriceLimitX96 (uint160)
==
>
<
>=
<=
→ +0x60
×
params.tokenIn (address)
params.tokenOut (address)
params.fee (uint24)
params.recipient (address)
params.deadline (uint256)
params.amountIn (uint256)
params.amountOutMinimum (uint256)
params.sqrtPriceLimitX96 (uint160)
==
>
<
>=
<=
→ +0xa0
×
+ add rule
SDK Integration
✓ ABI Registry
Uses UNISWAP_V3_ROUTER_ABI from @clanker/gate-client
✓ Offset Resolution
Auto-computed via SDK policy compiler
✓ Merkle Tree
builder.addPermission() → root generation
✓ Type-safe
Full TypeScript support with viem types
Calldata Map
TypeScript
Solidity
Calldata layout — exactInputSingle()
offset
field
0x00
selector · 0x414bf389...
+0x00
address
params.tokenIn
+0x20
address
params.tokenOut
+0x40
uint24
params.fee
+0x60
address
params.recipient
== 0x00000000…
+0x80
uint256
params.deadline
+0xa0
uint256
params.amountIn
<= 0x00000000…
+0xc0
uint256
params.amountOutMinimum
+0xe0
uint160
params.sqrtPriceLimitX96