---
title: "POST /debug/contracts/create"
method: POST
path: "/debug/contracts/create"
tags: ["internal", "contract", "debug"]
---

# POST /debug/contracts/create

`POST /debug/contracts/create`

Get a contract_create transaction object

## Request body

- ContractCreateTx
  - `owner_id` string, required — Base58Check encoded tagged pubkey
  - `nonce` integer
  - `code` string, required — Base64Check encoded tagged byte array
  - `vm_version` integer, required
  - `abi_version` integer, required
  - `deposit` integer, required
  - `amount` integer, required
  - `gas` integer, required
  - `gas_price` integer, required
  - `fee` integer, required
  - `ttl` integer
  - `call_data` string, required — Base64Check encoded tagged byte array

## Response `200`

Successful operation

- CreateContractUnsignedTx
  - `tx` string, required — Base64Check encoded tagged byte array
  - `contract_id` string, required — Base58Check encoded tagged pubkey

## Other responses

- `400` — Invalid transaction
- `404` — Owner account not found
- `503` — The node is temporarily unable to handle the request: either its request queues are saturated (overload protection) or it has not yet reached a stable mode. Overload protection is applied to every endpoint, so this response can be returned by any operation. The Retry-After header tells the client how long to back off before retrying.

## Changes

- **2026-07-27** `ca5dd7bf8408` — 1 info
  - added the non-success response with the status `503`

[Change history](https://skmtc.dev/aeternity/apis/aeternity-node/changes/debug/contracts/create/post.md)

---

[API](https://skmtc.dev/aeternity/apis/aeternity-node.md) · [All operations](https://skmtc.dev/aeternity/apis/aeternity-node/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/aeternity/aeternity-node/revisions/597a254980b2/schema)
