Skip to content

Embedded Runtime vs Production Neo N3

Back to Runtime Specification

What the Embedded Runtime Provides

  • Full NeoVM opcode execution with correct stack semantics
  • Storage read/write/find with iterator support
  • Event notification capture
  • Gas tracking (approximate)
  • Exception handling with try/catch/finally
  • Native contract call routing
  • Crypto operations (SHA256, RIPEMD160, Keccak256, CheckSig)

Differences from Production

AspectEmbedded RuntimeProduction Neo N3
StorageIn-memory, ephemeralPersistent on-chain
Gas costsApproximate static tablesExact per specification
Blockchain dataStub/placeholder valuesReal chain state
Signature verificationBest-effort secp256k1Full Neo crypto stack
Iterator behaviorMaterialized (eager)Streaming (lazy)
ByteString vs BufferBoth treated as byte arrayDistinct mutation semantics
OracleReturns deterministic pseudo IDReal oracle network
Network stateFixed test valuesLive network data

When to Use Neo-Express

Use the embedded runtime for:

  • Unit testing individual contract functions
  • Verifying compilation output correctness
  • Quick iteration during development

Use Neo-Express or testnet for:

  • Integration testing with multiple contracts
  • Accurate gas measurement
  • Testing with real blockchain state
  • Verifying oracle and cross-contract interactions
  • Pre-mainnet validation

MIT Licensed