# submit POST https://api.0x.org/gasless/submit Content-Type: application/json Submit a gasless swap Reference: https://docs.0x.org/api-reference/openapi-yaml/gasless/submit ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: submit version: endpoint_gasless.submit paths: /gasless/submit: post: operationId: submit summary: submit description: Submit a gasless swap tags: - - subpackage_gasless parameters: - name: 0x-api-key in: header description: Visit dashboard.0x.org to get your API Key required: true schema: type: string - name: 0x-version in: header description: API version required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Gasless_submit_Response_200' '400': description: 400 error response content: {} '500': description: 500 error response content: {} requestBody: content: application/json: schema: type: object properties: chainId: type: integer description: >- Chain ID. See [here](https://0x.org/docs/developer-resources/supported-chains) for the list of supported chains approval: oneOf: - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApproval - type: 'null' description: >- The gasless approval object from the quote endpoint including its signature trade: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTrade description: >- The trade object from the quote endpoint including its signature required: - chainId - trade components: schemas: GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalType: type: string enum: - value: executeMetaTransaction::approve - value: permit - value: daiPermit GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesEip712DomainItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesPermitItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Types: type: object properties: EIP712Domain: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesEip712DomainItems Permit: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0TypesPermitItems required: - EIP712Domain - Permit GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Domain: type: object properties: name: type: string version: type: string chainId: type: number format: double verifyingContract: type: string salt: type: string GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Message: type: object properties: owner: type: string spender: type: string value: type: string nonce: type: number format: double deadline: type: string required: - owner - spender - value - nonce - deadline GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0PrimaryType: type: string enum: - value: Permit GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7120: type: object properties: types: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Types domain: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Domain message: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0Message primaryType: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf0PrimaryType required: - types - domain - message - primaryType GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesEip712DomainItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesPermitItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Types: type: object properties: EIP712Domain: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesEip712DomainItems Permit: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1TypesPermitItems required: - EIP712Domain - Permit GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Domain: type: object properties: name: type: string version: type: string chainId: type: number format: double verifyingContract: type: string salt: type: string GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Message: type: object properties: holder: type: string spender: type: string nonce: type: number format: double expiry: type: string allowed: type: boolean required: - holder - spender - nonce - expiry - allowed GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1PrimaryType: type: string enum: - value: Permit GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7121: type: object properties: types: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Types domain: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Domain message: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1Message primaryType: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf1PrimaryType required: - types - domain - message - primaryType GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesEip712DomainItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesMetaTransactionItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Types: type: object properties: EIP712Domain: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesEip712DomainItems MetaTransaction: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2TypesMetaTransactionItems required: - EIP712Domain - MetaTransaction GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Domain: type: object properties: name: type: string version: type: string chainId: type: number format: double verifyingContract: type: string salt: type: string GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Message: type: object properties: nonce: type: number format: double from: type: string functionSignature: type: string required: - nonce - from - functionSignature GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2PrimaryType: type: string enum: - value: MetaTransaction GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7122: type: object properties: types: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Types domain: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Domain message: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2Message primaryType: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712OneOf2PrimaryType required: - types - domain - message - primaryType GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712: oneOf: - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7120 - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7121 - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip7122 GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalSignature: type: object properties: signatureType: type: number format: double v: type: number format: double r: type: string s: type: string required: - signatureType - v - r - s GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApproval: type: object properties: type: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalType description: The `approval.type` from the quote endpoint eip712: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalEip712 signature: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaApprovalSignature required: - type - eip712 - signature GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeType: type: string enum: - value: settler_metatransaction - value: settler_intent GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712TypesItems: type: object properties: name: type: string type: type: string required: - name - type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Domain: type: object properties: name: type: string version: type: string chainId: type: number format: double verifyingContract: type: string salt: type: string GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0PermittedAmount: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Permitted: type: object properties: token: type: string amount: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0PermittedAmount required: - token - amount GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Nonce: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Deadline: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActionsMinAmountOut: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActions: type: object properties: recipient: type: string buyToken: type: string minAmountOut: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActionsMinAmountOut actions: type: array items: type: string required: - recipient - buyToken - minAmountOut - actions GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message0: type: object properties: permitted: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Permitted spender: type: string nonce: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Nonce deadline: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0Deadline slippageAndActions: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf0SlippageAndActions required: - permitted - spender - nonce - deadline - slippageAndActions GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1PermittedAmount: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Permitted: type: object properties: token: type: string amount: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1PermittedAmount required: - token - amount GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Nonce: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Deadline: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1SlippageMinAmountOut: oneOf: - type: string - type: number format: double - description: Any type GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Slippage: type: object properties: recipient: type: string buyToken: type: string minAmountOut: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1SlippageMinAmountOut required: - recipient - buyToken - minAmountOut GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message1: type: object properties: permitted: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Permitted spender: type: string nonce: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Nonce deadline: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Deadline slippage: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712MessageOneOf1Slippage required: - permitted - spender - nonce - deadline - slippage GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message: oneOf: - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message0 - $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message1 GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712: type: object properties: types: type: object additionalProperties: type: array items: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712TypesItems primaryType: type: string domain: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Domain message: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712Message required: - types - primaryType - domain - message GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeSignature: type: object properties: signatureType: type: number format: double v: type: number format: double r: type: string s: type: string required: - signatureType - v - r - s GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTrade: type: object properties: type: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeType description: The `trade.type` from the quote endpoint eip712: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeEip712 description: The `trade.eip712` from the quote endpoint signature: $ref: >- #/components/schemas/GaslessSubmitPostRequestBodyContentApplicationJsonSchemaTradeSignature required: - type - eip712 - signature GaslessSubmitPostResponsesContentApplicationJsonSchemaType: type: string enum: - value: settler_metatransaction - value: settler_intent Gasless_submit_Response_200: type: object properties: tradeHash: type: string description: >- The hash for the trade according to [EIP-712](https://eips.ethereum.org/EIPS/eip-712) type: $ref: >- #/components/schemas/GaslessSubmitPostResponsesContentApplicationJsonSchemaType description: >- The transaction type determined by the trade route. This is currently just `settler_metatransaction` and could expand to more types in the future zid: type: string description: The unique ZeroEx identifier of the request required: - tradeHash - type - zid ``` ## SDK Code Examples ```python import requests url = "https://api.0x.org/gasless/submit" payload = { "chainId": 8453, "trade": { "type": "settler_metatransaction", "eip712": { "types": { "PermitWitnessTransferFrom": [ { "name": "permitted", "type": "TokenPermissions" }, { "name": "spender", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "deadline", "type": "uint256" }, { "name": "slippageAndActions", "type": "SlippageAndActions" } ], "TokenPermissions": [ { "name": "token", "type": "address" }, { "name": "amount", "type": "uint256" } ], "EIP712Domain": [ { "name": "name", "type": "string" }, { "name": "chainId", "type": "uint256" }, { "name": "verifyingContract", "type": "address" } ], "SlippageAndActions": [ { "name": "recipient", "type": "address" }, { "name": "buyToken", "type": "address" }, { "name": "minAmountOut", "type": "uint256" }, { "name": "actions", "type": "bytes[]" } ] }, "primaryType": "PermitWitnessTransferFrom", "domain": { "name": "Permit2", "chainId": 8453, "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3" }, "message": { "permitted": { "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "amount": "50000000" }, "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8", "nonce": "2241959297937691820908574931991585", "deadline": "1718672122", "slippageAndActions": { "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb", "minAmountOut": "49793430139340757517", "actions": ["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa", "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"] } } }, "signature": { "signatureType": 2, "v": 28, "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88", "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2" } }, "approval": { "type": "permit", "eip712": { "types": { "EIP712Domain": [ { "name": "name", "type": "string" }, { "name": "version", "type": "string" }, { "name": "chainId", "type": "uint256" }, { "name": "verifyingContract", "type": "address" } ], "Permit": [ { "name": "owner", "type": "address" }, { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "nonce", "type": "uint256" }, { "name": "deadline", "type": "uint256" } ] }, "domain": { "name": "USD Coin", "version": "2", "chainId": 8453, "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" }, "message": { "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3", "value": "50000000", "nonce": 0, "deadline": "1718669123" }, "primaryType": "Permit" }, "signature": { "signatureType": 2, "v": 27, "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb", "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81" } } } headers = { "0x-api-key": "0x-api-key", "0x-version": "v2", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.0x.org/gasless/submit'; const options = { method: 'POST', headers: { '0x-api-key': '0x-api-key', '0x-version': 'v2', 'Content-Type': 'application/json' }, body: '{"chainId":8453,"trade":{"type":"settler_metatransaction","eip712":{"types":{"PermitWitnessTransferFrom":[{"name":"permitted","type":"TokenPermissions"},{"name":"spender","type":"address"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"},{"name":"slippageAndActions","type":"SlippageAndActions"}],"TokenPermissions":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"EIP712Domain":[{"name":"name","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"SlippageAndActions":[{"name":"recipient","type":"address"},{"name":"buyToken","type":"address"},{"name":"minAmountOut","type":"uint256"},{"name":"actions","type":"bytes[]"}]},"primaryType":"PermitWitnessTransferFrom","domain":{"name":"Permit2","chainId":8453,"verifyingContract":"0x000000000022d473030f116ddee9f6b43ac78ba3"},"message":{"permitted":{"token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","amount":"50000000"},"spender":"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8","nonce":"2241959297937691820908574931991585","deadline":"1718672122","slippageAndActions":{"recipient":"0x70a9f34f9b34c64957b9c401a97bfed35b95049e","buyToken":"0x50c5725949a6f0c72e6c4a641f24049a917db0cb","minAmountOut":"49793430139340757517","actions":["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa","0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]}}},"signature":{"signatureType":2,"v":28,"r":"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88","s":"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2"}},"approval":{"type":"permit","eip712":{"types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"},{"name":"chainId","type":"uint256"},{"name":"verifyingContract","type":"address"}],"Permit":[{"name":"owner","type":"address"},{"name":"spender","type":"address"},{"name":"value","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"deadline","type":"uint256"}]},"domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":{"owner":"0x70a9f34f9b34c64957b9c401a97bfed35b95049e","spender":"0x000000000022d473030f116ddee9f6b43ac78ba3","value":"50000000","nonce":0,"deadline":"1718669123"},"primaryType":"Permit"},"signature":{"signatureType":2,"v":27,"r":"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb","s":"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81"}}}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.0x.org/gasless/submit" payload := strings.NewReader("{\n \"chainId\": 8453,\n \"trade\": {\n \"type\": \"settler_metatransaction\",\n \"eip712\": {\n \"types\": {\n \"PermitWitnessTransferFrom\": [\n {\n \"name\": \"permitted\",\n \"type\": \"TokenPermissions\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"slippageAndActions\",\n \"type\": \"SlippageAndActions\"\n }\n ],\n \"TokenPermissions\": [\n {\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"SlippageAndActions\": [\n {\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"name\": \"buyToken\",\n \"type\": \"address\"\n },\n {\n \"name\": \"minAmountOut\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"bytes[]\"\n }\n ]\n },\n \"primaryType\": \"PermitWitnessTransferFrom\",\n \"domain\": {\n \"name\": \"Permit2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n },\n \"message\": {\n \"permitted\": {\n \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"amount\": \"50000000\"\n },\n \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n \"nonce\": \"2241959297937691820908574931991585\",\n \"deadline\": \"1718672122\",\n \"slippageAndActions\": {\n \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"minAmountOut\": \"49793430139340757517\",\n \"actions\": [\n \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n ]\n }\n }\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 28,\n \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n }\n },\n \"approval\": {\n \"type\": \"permit\",\n \"eip712\": {\n \"types\": {\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"Permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }\n ]\n },\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n },\n \"message\": {\n \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n \"value\": \"50000000\",\n \"nonce\": 0,\n \"deadline\": \"1718669123\"\n },\n \"primaryType\": \"Permit\"\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 27,\n \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n }\n }\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("0x-api-key", "0x-api-key") req.Header.Add("0x-version", "v2") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.0x.org/gasless/submit") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["0x-api-key"] = '0x-api-key' request["0x-version"] = 'v2' request["Content-Type"] = 'application/json' request.body = "{\n \"chainId\": 8453,\n \"trade\": {\n \"type\": \"settler_metatransaction\",\n \"eip712\": {\n \"types\": {\n \"PermitWitnessTransferFrom\": [\n {\n \"name\": \"permitted\",\n \"type\": \"TokenPermissions\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"slippageAndActions\",\n \"type\": \"SlippageAndActions\"\n }\n ],\n \"TokenPermissions\": [\n {\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"SlippageAndActions\": [\n {\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"name\": \"buyToken\",\n \"type\": \"address\"\n },\n {\n \"name\": \"minAmountOut\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"bytes[]\"\n }\n ]\n },\n \"primaryType\": \"PermitWitnessTransferFrom\",\n \"domain\": {\n \"name\": \"Permit2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n },\n \"message\": {\n \"permitted\": {\n \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"amount\": \"50000000\"\n },\n \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n \"nonce\": \"2241959297937691820908574931991585\",\n \"deadline\": \"1718672122\",\n \"slippageAndActions\": {\n \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"minAmountOut\": \"49793430139340757517\",\n \"actions\": [\n \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n ]\n }\n }\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 28,\n \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n }\n },\n \"approval\": {\n \"type\": \"permit\",\n \"eip712\": {\n \"types\": {\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"Permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }\n ]\n },\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n },\n \"message\": {\n \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n \"value\": \"50000000\",\n \"nonce\": 0,\n \"deadline\": \"1718669123\"\n },\n \"primaryType\": \"Permit\"\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 27,\n \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n }\n }\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.0x.org/gasless/submit") .header("0x-api-key", "0x-api-key") .header("0x-version", "v2") .header("Content-Type", "application/json") .body("{\n \"chainId\": 8453,\n \"trade\": {\n \"type\": \"settler_metatransaction\",\n \"eip712\": {\n \"types\": {\n \"PermitWitnessTransferFrom\": [\n {\n \"name\": \"permitted\",\n \"type\": \"TokenPermissions\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"slippageAndActions\",\n \"type\": \"SlippageAndActions\"\n }\n ],\n \"TokenPermissions\": [\n {\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"SlippageAndActions\": [\n {\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"name\": \"buyToken\",\n \"type\": \"address\"\n },\n {\n \"name\": \"minAmountOut\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"bytes[]\"\n }\n ]\n },\n \"primaryType\": \"PermitWitnessTransferFrom\",\n \"domain\": {\n \"name\": \"Permit2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n },\n \"message\": {\n \"permitted\": {\n \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"amount\": \"50000000\"\n },\n \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n \"nonce\": \"2241959297937691820908574931991585\",\n \"deadline\": \"1718672122\",\n \"slippageAndActions\": {\n \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"minAmountOut\": \"49793430139340757517\",\n \"actions\": [\n \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n ]\n }\n }\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 28,\n \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n }\n },\n \"approval\": {\n \"type\": \"permit\",\n \"eip712\": {\n \"types\": {\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"Permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }\n ]\n },\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n },\n \"message\": {\n \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n \"value\": \"50000000\",\n \"nonce\": 0,\n \"deadline\": \"1718669123\"\n },\n \"primaryType\": \"Permit\"\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 27,\n \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n }\n }\n}") .asString(); ``` ```php request('POST', 'https://api.0x.org/gasless/submit', [ 'body' => '{ "chainId": 8453, "trade": { "type": "settler_metatransaction", "eip712": { "types": { "PermitWitnessTransferFrom": [ { "name": "permitted", "type": "TokenPermissions" }, { "name": "spender", "type": "address" }, { "name": "nonce", "type": "uint256" }, { "name": "deadline", "type": "uint256" }, { "name": "slippageAndActions", "type": "SlippageAndActions" } ], "TokenPermissions": [ { "name": "token", "type": "address" }, { "name": "amount", "type": "uint256" } ], "EIP712Domain": [ { "name": "name", "type": "string" }, { "name": "chainId", "type": "uint256" }, { "name": "verifyingContract", "type": "address" } ], "SlippageAndActions": [ { "name": "recipient", "type": "address" }, { "name": "buyToken", "type": "address" }, { "name": "minAmountOut", "type": "uint256" }, { "name": "actions", "type": "bytes[]" } ] }, "primaryType": "PermitWitnessTransferFrom", "domain": { "name": "Permit2", "chainId": 8453, "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3" }, "message": { "permitted": { "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "amount": "50000000" }, "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8", "nonce": "2241959297937691820908574931991585", "deadline": "1718672122", "slippageAndActions": { "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb", "minAmountOut": "49793430139340757517", "actions": [ "0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa", "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ] } } }, "signature": { "signatureType": 2, "v": 28, "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88", "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2" } }, "approval": { "type": "permit", "eip712": { "types": { "EIP712Domain": [ { "name": "name", "type": "string" }, { "name": "version", "type": "string" }, { "name": "chainId", "type": "uint256" }, { "name": "verifyingContract", "type": "address" } ], "Permit": [ { "name": "owner", "type": "address" }, { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "nonce", "type": "uint256" }, { "name": "deadline", "type": "uint256" } ] }, "domain": { "name": "USD Coin", "version": "2", "chainId": 8453, "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" }, "message": { "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3", "value": "50000000", "nonce": 0, "deadline": "1718669123" }, "primaryType": "Permit" }, "signature": { "signatureType": 2, "v": 27, "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb", "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81" } } }', 'headers' => [ '0x-api-key' => '0x-api-key', '0x-version' => 'v2', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.0x.org/gasless/submit"); var request = new RestRequest(Method.POST); request.AddHeader("0x-api-key", "0x-api-key"); request.AddHeader("0x-version", "v2"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"chainId\": 8453,\n \"trade\": {\n \"type\": \"settler_metatransaction\",\n \"eip712\": {\n \"types\": {\n \"PermitWitnessTransferFrom\": [\n {\n \"name\": \"permitted\",\n \"type\": \"TokenPermissions\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"slippageAndActions\",\n \"type\": \"SlippageAndActions\"\n }\n ],\n \"TokenPermissions\": [\n {\n \"name\": \"token\",\n \"type\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\"\n }\n ],\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"SlippageAndActions\": [\n {\n \"name\": \"recipient\",\n \"type\": \"address\"\n },\n {\n \"name\": \"buyToken\",\n \"type\": \"address\"\n },\n {\n \"name\": \"minAmountOut\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"actions\",\n \"type\": \"bytes[]\"\n }\n ]\n },\n \"primaryType\": \"PermitWitnessTransferFrom\",\n \"domain\": {\n \"name\": \"Permit2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\"\n },\n \"message\": {\n \"permitted\": {\n \"token\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"amount\": \"50000000\"\n },\n \"spender\": \"0x5ce929ddb01804bff35b2f5c77b735bdb094aac8\",\n \"nonce\": \"2241959297937691820908574931991585\",\n \"deadline\": \"1718672122\",\n \"slippageAndActions\": {\n \"recipient\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"buyToken\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"minAmountOut\": \"49793430139340757517\",\n \"actions\": [\n \"0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa\",\n \"0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n \"0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n ]\n }\n }\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 28,\n \"r\": \"0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88\",\n \"s\": \"0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2\"\n }\n },\n \"approval\": {\n \"type\": \"permit\",\n \"eip712\": {\n \"types\": {\n \"EIP712Domain\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"name\": \"chainId\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"verifyingContract\",\n \"type\": \"address\"\n }\n ],\n \"Permit\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\"\n },\n {\n \"name\": \"spender\",\n \"type\": \"address\"\n },\n {\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"nonce\",\n \"type\": \"uint256\"\n },\n {\n \"name\": \"deadline\",\n \"type\": \"uint256\"\n }\n ]\n },\n \"domain\": {\n \"name\": \"USD Coin\",\n \"version\": \"2\",\n \"chainId\": 8453,\n \"verifyingContract\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\"\n },\n \"message\": {\n \"owner\": \"0x70a9f34f9b34c64957b9c401a97bfed35b95049e\",\n \"spender\": \"0x000000000022d473030f116ddee9f6b43ac78ba3\",\n \"value\": \"50000000\",\n \"nonce\": 0,\n \"deadline\": \"1718669123\"\n },\n \"primaryType\": \"Permit\"\n },\n \"signature\": {\n \"signatureType\": 2,\n \"v\": 27,\n \"r\": \"0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb\",\n \"s\": \"0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81\"\n }\n }\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "0x-api-key": "0x-api-key", "0x-version": "v2", "Content-Type": "application/json" ] let parameters = [ "chainId": 8453, "trade": [ "type": "settler_metatransaction", "eip712": [ "types": [ "PermitWitnessTransferFrom": [ [ "name": "permitted", "type": "TokenPermissions" ], [ "name": "spender", "type": "address" ], [ "name": "nonce", "type": "uint256" ], [ "name": "deadline", "type": "uint256" ], [ "name": "slippageAndActions", "type": "SlippageAndActions" ] ], "TokenPermissions": [ [ "name": "token", "type": "address" ], [ "name": "amount", "type": "uint256" ] ], "EIP712Domain": [ [ "name": "name", "type": "string" ], [ "name": "chainId", "type": "uint256" ], [ "name": "verifyingContract", "type": "address" ] ], "SlippageAndActions": [ [ "name": "recipient", "type": "address" ], [ "name": "buyToken", "type": "address" ], [ "name": "minAmountOut", "type": "uint256" ], [ "name": "actions", "type": "bytes[]" ] ] ], "primaryType": "PermitWitnessTransferFrom", "domain": [ "name": "Permit2", "chainId": 8453, "verifyingContract": "0x000000000022d473030f116ddee9f6b43ac78ba3" ], "message": [ "permitted": [ "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "amount": "50000000" ], "spender": "0x5ce929ddb01804bff35b2f5c77b735bdb094aac8", "nonce": "2241959297937691820908574931991585", "deadline": "1718672122", "slippageAndActions": [ "recipient": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "buyToken": "0x50c5725949a6f0c72e6c4a641f24049a917db0cb", "minAmountOut": "49793430139340757517", "actions": ["0x0dfeb4190000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000006e898131631616b1779bad70bc21000000000000000000000000000000000000000000000000000000006670dafa", "0x38c9c147000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000000000271000000000000000000000000032aed3bce901da12ca8489788f3a99fce1056e1400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000104a5dcbcdf000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb0000000000000000000000001b55d94b553475e7561fab889bf88fe4f491d29c0000000000000000000000005ce929ddb01804bff35b2f5c77b735bdb094aac8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x38c9c14700000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000001000000000000000000000000050c5725949a6f0c72e6c4a641f24049a917db0cb000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f6601854dee374b1bfaf6350ffd27a97309d431000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"] ] ] ], "signature": [ "signatureType": 2, "v": 28, "r": "0xeaad7568c0d17ad9e1043a4dd41ce294ed51792a0fb8bed3a3318f7e1df3ff88", "s": "0x09444d25869d91946d7c26f9e5448c7fea369ba9c90deac1d761261565c487d2" ] ], "approval": [ "type": "permit", "eip712": [ "types": [ "EIP712Domain": [ [ "name": "name", "type": "string" ], [ "name": "version", "type": "string" ], [ "name": "chainId", "type": "uint256" ], [ "name": "verifyingContract", "type": "address" ] ], "Permit": [ [ "name": "owner", "type": "address" ], [ "name": "spender", "type": "address" ], [ "name": "value", "type": "uint256" ], [ "name": "nonce", "type": "uint256" ], [ "name": "deadline", "type": "uint256" ] ] ], "domain": [ "name": "USD Coin", "version": "2", "chainId": 8453, "verifyingContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" ], "message": [ "owner": "0x70a9f34f9b34c64957b9c401a97bfed35b95049e", "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3", "value": "50000000", "nonce": 0, "deadline": "1718669123" ], "primaryType": "Permit" ], "signature": [ "signatureType": 2, "v": 27, "r": "0xa1be4e6177d95f7e634d7cf8f93021b96e5e4f3d4d8605e85204b97d4a4060eb", "s": "0x371e85adcfa9a5d0f53cc9f467a4230305899e4a18c0174466b8da784a4f9c81" ] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.0x.org/gasless/submit")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```