Skip to main content

Generating 0x Order Hashes

A 0x Order Hash acts as both the identifier for a 0x order, as well as the message that gets signed to authorize the 0x smart contracts to perform swaps.

0x Order Hashes are EIP-712 hashes.

Generating 0x Order Hashes with @0x/protocol-utils

The easiest way of generating 0x Order Hashes is using the npm packages @0x/protocol-utils and @0x/utils``

yarn add @0x/protocol-utils @0x/utils

Use as follows:

const protocolUtils = require("@0x/protocol-utils");
const utils = require("@0x/utils");

// Construct Order
const order = new protocolUtils.LimitOrder({ // or protocolUtils.RfqOrder
makerToken: '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
takerToken: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // WETH
makerAmount: new utils.BigNumber(1e18),
takerAmount: new utils.BigNumber(1e18),
... // Other fields
})

// Get hash
const orderHash = order.getHash();

Protocol Utils supports the following order types:

  • LimitOrder
  • RfqOrder
  • OtcOrder

As more order types are added to the protocol, this library will expand to cover them as well.