Skip to main content
The standard smart-contract namespace used by current clients is:

Core fields

Machine-readable section

ForMachines contains one XML root element. Its qualified name—local name plus namespace—defines the contract’s machine semantics. A server can retrieve the corresponding XML schema and validate that the element is well formed. Choose a namespace you control, version it, publish an XSD, and keep backwards compatibility explicit. Do not infer semantics from a local name alone.

Human-readable section

ForHumans is an array of structured, language-tagged documents. The client selects the requested language and can render Markdown, plain text, or HTML. Every material machine rule must have an accurate human explanation. Approval should reject a template when the two sections conflict.

Signed boundaries

Contract normalization produces a deterministic XML representation for signing. A signature is valid only for the exact normalized content and the signer’s legal identity key. Transient parameter values are deliberately kept out of the signed/persisted clear-text boundary; encrypted values are signed in protected form.
Never reformat contract XML with a general-purpose serializer before verifying a signature. Use the contract library’s normalization and validation methods.