For the per-action module addresses and the full signing scheme, see Action
signing. The
ACTION_TYPEHASH and DOMAIN_SEPARATOR are
under Signing constants below.Token addresses are not listed here — read them from
public/get_all_currencies, under spot[].erc20.underlying_erc20. Every
testnet token is mintable: open
testnet.app.derive.xyz, connect your wallet, and
click Deposit in the top right, then Mint a token of your choice.ACTION_MANAGER
VAPP
WITHDRAWAL_OUTBOX
SPOT_VAULT
WITHDRAW_FACTORY
getWithdrawAddress(bytes32 recipient, uint256 chainId) returns the address that
private/register_withdraw_address gives you.
Signing constants
Every signed action is an EIP-712Action struct hashed under the action domain. The signer
signs keccak256(0x1901 || DOMAIN_SEPARATOR || actionHash).
ACTION_TYPEHASH
keccak256 of the Action type string. It is the same on every network:
DOMAIN_SEPARATOR
name Matching, version 1.0, the network’s chainId, and a
verifyingContract of 0xeB8d770ec18DB98Db922E9D83260A585b9F0DeAD. That address is the v2
mainnet Matching contract, fixed on every network. It is not one of the v3 contracts above.
