---
title: "Execute script with context"
method: POST
path: "/script/executeWithContext"
tags: ["script"]
---

# Execute script with context

`POST /script/executeWithContext`

## Request body

- ExecuteScript
  - `script` string, required — Sigma script to be executed
  - `namedConstants` object, nullable, required — Environment for compiler
  - `treeVersion` unknown, required
  - `context` ErgoLikeContext, required
    - `lastBlockUtxoRoot` AvlTreeData, required
      - `digest` string, base16, required — Base16-encoded 32 byte digest
      - `treeFlags` integer
      - `keyLength` integer
      - `valueLength` integer, nullable
    - `headers` SigmaHeader[], required — fixed number of last block headers in descending order (first header is the newest one)
      - `id` string, base16 — Base16-encoded 32 byte modifier id
      - `timestamp` integer, required — Basic timestamp definition
      - `version` integer, required — Ergo blockchain protocol version
      - `adProofsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `adProofsId` string, base16 — Base16-encoded 32 byte modifier id
      - `stateRoot` AvlTreeData, required
        - `digest` string, base16, required — Base16-encoded 32 byte digest
        - `treeFlags` integer
        - `keyLength` integer
        - `valueLength` integer, nullable
      - `transactionsRoot` string, base16, required — Base16-encoded 32 byte digest
      - `transactionsId` string, base16 — Base16-encoded 32 byte modifier id
      - `nBits` integer, required
      - `extensionHash` string, base16, required — Base16-encoded 32 byte digest
      - `extensionRoot` string, base16 — Base16-encoded 32 byte digest
      - `extensionId` string, base16 — Base16-encoded 32 byte modifier id
      - `height` integer, required
      - `size` integer
      - `parentId` string, base16, required — Base16-encoded 32 byte modifier id
      - `powSolutions` PowSolutions — An object containing all components of pow solution
        - `pk` string, required — Base16-encoded public key
        - `w` string, required
        - `n` string, required
        - `d` number, required
      - `votes` string, base16, required — Base16-encoded votes for a soft-fork and parameters
      - `minerPk` string
      - `powOnetimePk` string
      - `powNonce` string, base16 — Base16-encoded 32 byte digest
      - `powDistance` number — sigma.BigInt
    - `preHeader` PreHeader, required
      - `timestamp` integer, required — Basic timestamp definition
      - `version` integer, required — Ergo blockchain protocol version
      - `nBits` integer, required
      - `height` integer, required
      - `parentId` string, base16, required — Base16-encoded 32 byte modifier id
      - `votes` string, base16, required — Base16-encoded votes for a soft-fork and parameters
      - `minerPk` string
    - `dataBoxes` ErgoTransactionOutput[], required — boxes, that corresponds to id's of `spendingTransaction.dataInputs`
      - `boxId` string, base16 — Base16-encoded transaction box id bytes. Should be 32 bytes long
      - `value` integer, required — Amount of Ergo token
      - `ergoTree` string, base16, required — Base16-encoded ergo tree bytes
      - `creationHeight` integer, required — Height the output was created at
      - `assets` Asset[] — Assets list in the transaction
        - `tokenId` string, base16, required — Base16-encoded 32 byte digest
        - `amount` integer, required — Amount of the token
      - `additionalRegisters` Registers, required — Ergo box registers
      - `transactionId` string, base16 — Base16-encoded transaction id bytes
      - `index` integer — Index in the transaction outputs
    - `boxesToSpend` ErgoTransactionOutput[], required — boxes, that corresponds to id's of `spendingTransaction.inputs`
      - `boxId` string, base16 — Base16-encoded transaction box id bytes. Should be 32 bytes long
      - `value` integer, required — Amount of Ergo token
      - `ergoTree` string, base16, required — Base16-encoded ergo tree bytes
      - `creationHeight` integer, required — Height the output was created at
      - `assets` Asset[] — Assets list in the transaction
        - `tokenId` string, base16, required — Base16-encoded 32 byte digest
        - `amount` integer, required — Amount of the token
      - `additionalRegisters` Registers, required — Ergo box registers
      - `transactionId` string, base16 — Base16-encoded transaction id bytes
      - `index` integer — Index in the transaction outputs
    - `spendingTransaction` ErgoLikeTransaction, required
      - `id` string, base16, required — Base16-encoded 32 byte modifier id
      - `inputs` ErgoTransactionInput[], required
        - `boxId` string, base16, required — Base16-encoded transaction box id bytes. Should be 32 bytes long
        - `spendingProof` SpendingProof, required — Spending proof for transaction input
          - `proofBytes` string, base16, required — Base16-encoded spending proofs
          - `extension` object, required — Variables to be put into context
      - `dataInputs` ErgoTransactionDataInput[], required
        - `boxId` string, base16, required — Base16-encoded transaction box id bytes. Should be 32 bytes long
      - `outputs` ErgoTransactionOutput[], required
        - `boxId` string, base16 — Base16-encoded transaction box id bytes. Should be 32 bytes long
        - `value` integer, required — Amount of Ergo token
        - `ergoTree` string, base16, required — Base16-encoded ergo tree bytes
        - `creationHeight` integer, required — Height the output was created at
        - `assets` Asset[] — Assets list in the transaction
          - `tokenId` string, base16, required — Base16-encoded 32 byte digest
          - `amount` integer, required — Amount of the token
        - `additionalRegisters` Registers, required — Ergo box registers
        - `transactionId` string, base16 — Base16-encoded transaction id bytes
        - `index` integer — Index in the transaction outputs
    - `selfIndex` integer, required — index of the box in `boxesToSpend` that contains the script we're evaluating
    - `extension` object, required — prover-defined key-value pairs, that may be used inside a script
    - `validationSettings` string, required — validation parameters passed to Interpreter.verify to detect soft-fork conditions
    - `costLimit` integer, required — hard limit on accumulated execution cost, if exceeded lead to CostLimitException to be thrown
    - `initCost` integer, required — initial value of execution cost already accumulated before Interpreter.verify is called

## Response `200`

Result of reduceToCrypto

- CryptoResult — Result of executeWithContext request (reduceToCrypto)
  - `value` SigmaBoolean, required — Algebraic data type of sigma proposition expressions
    - `op` integer, required — Sigma opCode
    - `h` string, base16 — Base16-encoded bytes
    - `g` string, base16 — Base16-encoded bytes
    - `u` string, base16 — Base16-encoded bytes
    - `v` string, base16 — Base16-encoded bytes
    - `condition` boolean
  - `cost` integer, required — Estimated cost of contract execution

## Other responses

- `400` — Compiler error
- `default` — Error

## Changes

- **2025-06-17** `a0078a982142` — 1 breaking
  - added the new required request property `treeVersion`
- **2025-05-23** `5e1f436c0a2f` — 1 warning
  - removed the request property `treeVersion`
- **2025-04-16** `7ded45111715` — 1 breaking
  - added the new required request property `treeVersion`

[Change history](https://skmtc.dev/ergoplatform/apis/ergo-node-api/changes/script/executeWithContext/post.md)

---

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