Skip to main content
Parameters turn an approved structure into a reusable template. The contract library supports these parameter families:
  • boolean;
  • string;
  • numerical;
  • date, date-time, time, and duration;
  • geographic coordinate;
  • attachment;
  • calculated value;
  • role/identity property reference;
  • contract reference.

Common fields

Every parameter has a stable Name, localized description, optional guide text, optional validation Expression, and a Protection level. Range types add minimum/maximum values and inclusive/exclusive bounds; strings can add length or pattern constraints.

Validation expressions

The Expression is evaluated with contract parameters exposed as Script variables. Return false to reject the value:
Keep expressions deterministic. Do not depend on wall-clock time, mutable external services, or server-local state unless the contract protocol explicitly defines that dependency. The server remains the final validator.

Protection levels

For encrypted parameters, the creator creates encryption/decryption keys and shares them with parties over end-to-end encrypted communication. A nonce and parameter position/name/type contribute to protection.

Template rules

  • Give each parameter a unique, stable name.
  • Put units in a typed unit/field or description, never only in a UI label.
  • Validate relationships between parameters in addition to individual ranges.
  • Explain every parameter in the human-readable text using parameter-value elements.
  • Treat changing a parameter’s meaning as a new template version.
  • Do not place secrets in normal parameters of a public/searchable contract.