---
title: "Get Unsigned Create Order Message"
method: POST
path: "/write/api/v1/orders/sign-message"
tags: ["Maker"]
---

# Get Unsigned Create Order Message

`POST /write/api/v1/orders/sign-message`

Get EIP712 create order message to be signed. The response of this API will need to be signed with [Sign Typed Data v4](https://docs.metamask.io/guide/signing-data.html#sign-typed-data-v4) before submitting create order request to KyberSwap via `/write/api/v1/orders`.

## Request body

- object
  - `chainId` string, required — The chainId on which the order is being created. Only supports EVM chains.
  - `makerAsset` string, required — The token address of the asset which the Maker is selling.
  - `takerAsset` string, required — The token address of the asset which the Maker expects in return.
  - `maker` string, required — The address of the Maker.
  - `receiver` string — Defines who will receive the takerAsset when the order is filled. Default: `maker`.
  - `allowedSenders` string[] — Defines the addresses who are allowed to fill the order.
  - `makingAmount` string, required — The amount of `makerAsset` in wei. String representation of uint256 value.
  - `takingAmount` string, required — The amount of `takerAsset` in wei. String representation of uint256 value.
  - `expiredAt` integer, required — The unix timestamp upon which the order will automatically lapse (i.e. expire).

## Response `200`

OK

- object
  - `code` integer, required — The response code.
  - `message` string, required — Server response message.
  - `data` object, required
    - `types` object, required
      - `EIP712Domain` OrderSignMessageDefinition[], required
        - `name` string, required
        - `type` string, required
      - `Order` OrderSignMessageDefinition[], required
        - `name` string, required
        - `type` string, required
    - `domain` object, required
      - `name` string, required — The user readable name of signing domain, i.e. the name of the DApp or the protocol.
      - `version` string, required — The current major version of the signing domain. Signatures from different versions are not compatible.
      - `chainId` string, required — The EIP-155 chain id. The user-agent should refuse signing if it does not match the currently active chain.
      - `verifyingContract` string, required — the address of the contract that will verify the signature. The user-agent may do contract specific phishing prevention.
    - `primaryType` string, required — The top-level type of the object in the EIP712 message but does not have to correspond to any of the types in the message.
    - `message` object, required
      - `salt` string, required — The randomized data fed as an additional input to the hashing function.
      - `makerAsset` string, required — The token address of the asset which the Maker is selling.
      - `takerAsset` string, required — The token address of the asset which the Maker expects in return.
      - `maker` string, required — The address of the Maker.
      - `receiver` string, required — The receiver of the takerAsset when order is filled.
      - `allowedSender` string, required — Defines the addresses who are allowed to fill the order. Deafults to `0x000...` if none specified.
      - `makingAmount` string, required — The amount of `makerAsset` in wei.
      - `takingAmount` string, required — The amount of `takerAsset` in wei.
      - `feeConfig` string, required — The hashstring representing the fee configuration for the order.
      - `takerTokenFeeAmount` string — The amount of token taken from the Taker as the limit order fee.
      - `makerAssetData` string, required — ABIv2 encoded data that can be decoded by a specified proxy contract when transferring makerAsset.
      - `takerAssetData` string, required — ABIv2 encoded data that can be decoded by a specified proxy contract when transferring takerAsset.
      - `getMakerAmount` string, required — The hexstring representing the `makerAsset` amount.
      - `getTakerAmount` string, required — The hexstring representing the `takerAsset` amount.
      - `predicate` string, required — Call data that indicates the validity of the orders logic.
      - `permit` string — Included data if token is able to leverage Permit function (EIP2612) for gasless approvals.
      - `interaction` string, required — Call data that is sent to an intermediate contract when the order is filled.

## Other responses

- `400` — Bad Request - Missing required fields - chainId is not supported - makerAsset, takerAsset, maker, receiver, allowedSenders are not ETH address - makerAsset or takerAsset are native tokens - makingAmount, takingAmount are less than or equal to 0 - makingAmount, takingAmount are not uint128 - expiredAt is in the past
- `500` — Internal Server Error

---

[API](https://skmtc.net/kyberswap/apis/zap-service.md) · [All operations](https://skmtc.net/kyberswap/apis/zap-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kyberswap/zap-service/versions/74dbd81c8d70/schema)
