Skip to main content

Path Syntax

Paths reference data in the contract state:

/directory/subdirectory/file.type

Path Types

ExtensionTypeExample
.ided25519 public key/parties/alice.id
.numNumeric value/terms/price.num
.textText string/metadata/description.text
.boolBoolean/flags/approved.bool
.datetimeISO 8601 timestamp/deadlines/expiry.datetime
.dateDate (YYYY-MM-DD)/terms/start.date
.hashSHA256 hash/commitments/secret.hash
.jsonJSON data/config/settings.json
.wasmWASM module/predicates/custom.wasm
.modalityModel/rule file/model/default.modality

Examples

// Reference a party's identity
+signed_by(/parties/alice.id)

// Compare numeric values
+num_gte(/deposit/amount.num, /terms/price.num)

// Check a timestamp
+after(/deadlines/expiry.datetime)

// Verify a hash commitment
+hash_matches(/commitments/secret.hash, /revealed/value.text)

Directory Structure

A typical contract has this structure:

my-contract/
├── .contract/ # Internal storage
├── state/ # Data files
│ ├── parties/
│ │ ├── alice.id
│ │ └── bob.id
│ ├── terms/
│ │ └── price.num
│ └── deadlines/
│ └── expiry.datetime
├── model/
│ └── default.modality
├── rules/
│ └── protection.modality
├── alice.passfile
└── bob.passfile