Skip to content

The Estamora conformance specification

This site is the reference set for Estamora: the machine-readable definitions of what it means for a Soroban smart contract to behave according to the standard or interface profile it claims to implement.

Estamora answers one question.

Does this Soroban contract actually behave according to the standard or interface profile it claims to implement?

Not whether it compiles, and not whether it exposes the expected methods. A contract can implement transfer, approve and balance with exactly the right signatures and still move the wrong amount, credit the wrong account, skip the authorization check, emit no event, or return an error after mutating state. Interface compatibility is a claim about shape. Behavioural conformance is a claim about what happens.

This site defines the second claim. The runner that measures it lives in estamora-conformance-runner.

Where to start

If you want to Read
Understand the problem and the design Introduction, then Architecture
Write a profile for a standard Authoring a profile
Know what a term means here Terminology
See what is published Profiles and Vectors
Read the schemas Schemas
Cite a result Versioning and Certification
Know what this does not prove Security

The normative artefacts

Two things in this repository are normative, and where a document disagrees with them, the document is the defect.

  • The ten JSON Schemas under schema/ define the format. Every document here is written in JSON Schema draft 2020-12, and each carries a canonical $id that resolves on this site.
  • The released profiles under profiles/ define the requirements. A profile is a bundle of seven documents rather than one file, because a method's authorization requirements, its events and its failure behaviour are separate claims that have to be reviewable separately.

::: info Conformance is not security Passing a profile means a contract behaves as that profile defines. Profiles are written by people, and a profile that misses a failure mode does not detect it. Estamora does not replace formal verification, a security audit, penetration testing, economic analysis or vulnerability research. :::