跳至主要内容

Contracts — /api/chain/:slug/contracts*

Programmable state machines that live inside your state machine. Defined in JSON, validated by ContractDefinitionSchema, executed by ContractEngine (in shared/api-core/src/lib/contractEngine.ts). Every successful transition: runs the operator → wraps the result in a ZSP envelope → atomically writes the contract row → appends to the audit entangled state → mints a tally token.

Concept: State Contracts. Source: shared/api-core/src/routes/contracts.ts.

Auth shorthand: operator+ = requireSessionOrMachineKey (a session or the machine's zsm_ key); owner = requireAuth, owner-scoped; public = no auth.

Create & edit

MethodPathAuthNotes
POST/api/chain/:slug/contractsoperator+Create a contract from a template id.
POST/api/chain/:slug/contracts/customoperator+Create from a raw definition blob (same path, ad-hoc instead of templated).
GET/api/chain/:slug/contractsoperator+List contracts on the machine.
GET/api/chain/:slug/contracts/:idoperator+Contract + last 20 transitions.
PATCH/api/chain/:slug/contracts/:idownerEdit a contract; bumps current_version_no (history never rewrites).
POST/api/chain/:slug/contracts/importoperator+Import a portable contract envelope; runtime state starts clean.
GET/api/chain/:slug/contracts/:id/exportownerPortable definition + metadata; omits audit, watermarks, secrets.

Execute & lifecycle

MethodPathAuthNotes
POST/api/chain/:slug/contracts/:id/transitionoperator+Execute a transition (compute + prove + verify + ZSP + chain + tally).
POST/api/chain/:slug/contracts/:id/dry-runoperator+Debug what would fire/filter/pass — no audit, no fires, no compute, no charge.
POST/api/chain/:slug/contracts/:id/fire-nowoperator+Fire a scheduled trigger immediately.
POST/api/chain/:slug/contracts/:id/pauseoperator+Pause scheduling.
POST/api/chain/:slug/contracts/:id/resumeoperator+Resume scheduling.
POST/api/chain/:slug/contracts/:id/skip-nextoperator+Skip the next scheduled fire.
POST/api/chain/:slug/contracts/:id/freezeoperator+Stop all fires + clear next_fire; row stays for audit.
POST/api/chain/:slug/contracts/:id/rollbackoperator+Roll back to a prior version (inserts a new version row; audit stays linear).

Schedule & preview

MethodPathAuthNotes
GET/api/chain/:slug/contracts/:id/next-firesownerUpcoming scheduled fire times.
GET/api/chain/:slug/contracts/:id/previewownerCheap live reactor view (the IDE polls this ~every 5 Zeqonds); no charge.

Audit, verify & versions

MethodPathAuthNotes
GET/api/chain/:slug/contracts/:id/auditownerFull transition history.
POST/api/chain/:slug/contracts/:id/verifyoperator+Verify state-progression integrity.
GET/api/chain/:slug/contracts/:id/integritypublicStored hash vs. live re-hash — detects DB-level tampering.
GET/api/chain/:slug/contracts/:id/versionsownerVersion list.
GET/api/chain/:slug/contracts/:id/versions/:nownerOne version.

Events (SSE)

MethodPathAuthNotes
GET/api/chain/:slug/eventsownerMachine event log.
GET/api/chain/:slug/events/streamownerServer-sent event stream of machine events.
GET/api/chain/:slug/contracts/:id/transitions/streamownerServer-sent stream of one contract's transitions.
GET/api/admin/contract-events/statsadminAggregate contract-event stats (admin console).

See also