This page is the ABI reference for the V6 UserProxyFactoryV6 and UserProxyV6 deployment listed
on the intent addresses page . This page is separate from the
Intents ABI reference , whose selectors, contracts, and order types are not
interchangeable with the User Proxy.
Chain
Chain ID
UserProxyFactoryV6
UserProxyV6 implementation
Base
8453
0xc1660e4BbC825f8367dA92b60dccc17E4E10bc26
0x6E4065a3E864Acf36BfaB95cEE31713b48F8dBd6
Arbitrum One
42161
0xc1660e4BbC825f8367dA92b60dccc17E4E10bc26
0x6E4065a3E864Acf36BfaB95cEE31713b48F8dBd6
BNB Smart Chain
56
0xc1660e4BbC825f8367dA92b60dccc17E4E10bc26
0x6E4065a3E864Acf36BfaB95cEE31713b48F8dBd6
Robinhood Chain
4663
0xc1660e4BbC825f8367dA92b60dccc17E4E10bc26
0x6E4065a3E864Acf36BfaB95cEE31713b48F8dBd6
For the separate swap paths, the canonical Permit2 address is:
0x000000000022D473030F116dDEE9F6B43aC78BA3
Item
Value
NATIVE
0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
ACTION_EXECUTE
0x01
AGENT_ORDER_TYPEHASH() getter
0x5b56c616 selector
EIP-712 name
AgentSwap UserProxy
EIP-712 version
5
domainSeparator() returns the proxy domain separator. Use the proxy’s domain for AgentOrder.
Selector
Signature
0x1cff614d
predictProxy(address)
0x4c96a389
deploy(address)
0x5c60da1b
implementation()
0xc1a9a508
proxyOf(address)
0xab221a76
settler()
Selector
Signature
0x19ab453c
init(address)
0x7ee8ff6e
execute(address,address,address,uint256,address,uint256,bytes)
0x4cb75e2e
executePermit2In(((address,uint256),uint256,uint256),bytes,address,address,address,uint256,bytes)
0xca1f43a9
grantAgent(address,uint64,uint32,uint8,address[],uint256[])
0x7da6ac0d
revokeAgent(address)
0x950301fa
setAgentCap(address,address,uint256)
0xda0f2deb
executeAsAgent((address,uint64,address,address,uint256,address,uint256,uint256,uint256),bytes,address,bytes)
0xf514d6e5
policyOf(address)
0x27e2f125
agentTokenInfo(address,address)
0xd5669740
hashAgentOrder((address,uint64,address,address,uint256,address,uint256,uint256,uint256))
0x353eea55
isAgentNonceUsed(address,uint256)
0x5b56c616
AGENT_ORDER_TYPEHASH()
0xf698da25
domainSeparator()
0x84b0196e
eip712Domain()
0x8da5cb5b
owner()
0xa0cf0aea
NATIVE()
0x6afdd850
PERMIT2()
0xf05b55ef
ACTION_EXECUTE()
0xd8d75058
pullForIntent((O),bytes)
0x08c488c2
isIntentAuthorized((O),bytes)
0xc7df4069
hashIntentOrder((O))
0x2a7dacec
invalidateOwnerNonces(uint256,uint256)
0x208a0d46
killOrders(bytes32[])
0x1914ddd6
isOwnerNonceUsed(uint256)
0x4626e43d
isOrderKilled(bytes32)
The proxy also declares receive() external payable {}, which has no selector and so has no row
above. It is what lets a router refund native ETH to the proxy mid-swap; sweepNative is how the
owner retrieves any that stays.
| 0x1be19560 | sweepToken(address) |
| 0xab803a76 | sweepNative() |
| 0x78c093cf | sweepNative(address) |
0xf05b55ef is the selector for the public ACTION_EXECUTE() getter. The typehash getter selector
is a typed-data lookup, not an entry-point selector.
Event
Fields
Initialized
address indexed owner
ProxyDeployed
address indexed user, address indexed proxy
Executed
address indexed router, address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut
ExecutedV2
address indexed router, address indexed spender, address indexed pull, bool usedPermit2, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut
AgentGranted
address indexed agent, uint64 gen, uint64 expiry, uint32 epochLen, uint8 actionMask
AgentRevoked
address indexed agent, uint64 gen
AgentCapSet
address indexed agent, uint64 gen, address indexed tokenIn, uint256 cap
ExecutedAsAgent
address indexed agent, address indexed router, address indexed relayer, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut
OwnerNoncesInvalidated
uint256 indexed word, uint256 mask
OrderKilled
bytes32 indexed id
PulledForOwnerIntent
address indexed pulledTo, bytes32 indexed orderHash, address tokenIn, uint256 amountIn
PulledForAgentIntent
address indexed agent, address indexed pulledTo, bytes32 indexed orderHash, address tokenIn, uint256 amountIn, uint256 debit
Error
Signature
AlreadyInitialized
AlreadyInitialized()
NotOwner
NotOwner()
SlippageExceeded
SlippageExceeded(uint256 received,uint256 minOut)
RouterCallFailed
RouterCallFailed(bytes returnData)
InvalidSignature
InvalidSignature()
NonceAlreadyUsed
NonceAlreadyUsed()
SameToken
SameToken()
UnexpectedEthValue
UnexpectedEthValue(uint256 sent)
EthValueMismatch
EthValueMismatch(uint256 sent,uint256 expected)
NativeNotSupportedInOrder
NativeNotSupportedInOrder()
InsufficientOwnerDelivery
InsufficientOwnerDelivery(uint256 delivered,uint256 required)
Permit2AmountOverflow
Permit2AmountOverflow(uint256 amount)
InvalidAgent
InvalidAgent()
InvalidToken
InvalidToken()
InvalidExpiry
InvalidExpiry()
InvalidEpochLen
InvalidEpochLen()
LengthMismatch
LengthMismatch()
PolicyInactive
PolicyInactive()
ActionNotAllowed
ActionNotAllowed()
TokenNotAllowed
TokenNotAllowed()
AgentOrderExpired
AgentOrderExpired()
CapExceeded
CapExceeded(uint256 used,uint256 amount,uint256 cap)
MinOutZero
MinOutZero()
Reentrancy
Reentrancy()
AmountInZero
AmountInZero()
SpenderNotAllowed
SpenderNotAllowed()
OwnerNonceUsed
OwnerNonceUsed(uint256 nonce)
DebitExceedsSignedAmount
DebitExceedsSignedAmount(uint256 debit,uint256 signed)
EmptyNonceMask
EmptyNonceMask()
EmptyOrderList
EmptyOrderList()
RecipientNotOwner
RecipientNotOwner()
AuthorizationExpired
AuthorizationExpired(uint64 deadline)
AuthorizationExpiresBeforeOrderOpens
AuthorizationExpiresBeforeOrderOpens(uint64 deadline,uint256 startTime)
PolicyExpiresBeforeOrderOpens
PolicyExpiresBeforeOrderOpens(uint64 expiry,uint256 startTime)
AuthOrderMismatch
AuthOrderMismatch()
ZeroAddress
ZeroAddress() (factory)