Llibrary for building orders to use the 0x protocol


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
12Jan 5, 2021Apr 7, 2018Minified + gzip package size for 0xorderbuilder in KB



Llibrary for building orders to use the 0x protocol.


  • ZeroExOrderBuilder: main class with the static methods:
    • buildQuoteProviderOrder: creating a order to use in Quote Provider relayer strategy. A relayer will be called to get conversion rate and fees.
    • buildSignedOrder: signing a order. You can use the order returned in previous method.
  • EthNetwork: enum, used to inform the desired Ethereum network.


npm install 0xorderbuilder --save



import { ZeroExOrderBuilder, EthNetwork } from "0xorderbuilder";
import { BigNumber } from "bignumber.js"; // used as parameter in buildQuoteProviderOrder method


    static buildQuoteProviderOrder(maker: string, makerTokenAddress: string, takerTokenAddress: string, makerTokenAmount: BigNumber, 
        milisecondsToExpire: number, relayerUrl: string, network: EthNetwork): Promise<Order>;
  • maker: yours eth wallet address;
  • makerTokenAddress: the token address you wish to sell;
  • takerTokenAddress: the token address you wish to buy;
  • makerTokenAmount: the amount you wish to sell (in base units, e.g.: 1 ZRX => new BigNumber(1000000000000000000));
  • milisecondsToExpire: used to calculate the returned order expiration date;
  • relayerUrl: the relayer addres used to get conversion rate and fee;
  • network: the desired Ethereum network
  • return: a promise that will be return a JSON representing the order.


    static buildSignedOrder(order: Order, privateKey: string): SignedOrder;
  • order: the unsigned order;
  • privateKey: the private key of the maker wallet. Note: this private WILL NOT be transfer to relayer or any other;
  • return: the signed order.


import { ZeroExOrderBuilder, EthNetwork } from "0xorderbuilder";
import { BigNumber } from "bignumber.js";

function testZeroExOrderBuilder() {
    ZeroExOrderBuilder.buildQuoteProviderOrder("0xf60345bcff9feedb98bbdfc996b33cba00ee2c75", "0x6ff6c0ff1d68b964901f986d4c9fa3ac68346570", 
        "0xd0a1e359811322d97991e03f863a0c30c2cf029c", new BigNumber(1000000000000000000), 10000, 
        "http://localhost:3000/api/v0", EthNetwork.Kovan).then((order) =>
        const signedOrder = ZeroExOrderBuilder.buildSignedOrder(order, "0x5edd9d13a5d62821bbda8ac6da7d7ca69a1b540dc99ac9232fefc04d09e28055");


If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.