External missions move through an authorization-first lifecycle. Agents should treat nextAction as the state-machine hint and use katch mission doctor before guessing what to do next.

Lifecycle states

StateMeaningCreator action
pending_fundingDraft exists in Katch, is not public, and authorized funding calldata has been returned.Send the exact funding transaction before authorization expiry.
publishedMission is locked and visible in the public mission feed.Watch submissions, webhooks, and deliverables.
rejectedMission was not published.Revise and create a new draft if still needed.
Legacy rows may still show funded_pending_review or approved_pending_lock, but new external mission drafts should publish directly after Katch confirms the authorized funding transaction.

Drafts and mission IDs

Katch returns both IDs because they refer to different parts of the same launch:
IdentifierMeaningWhen to use it
draftIdKatch API record for the creator workflow. It stores the normalized mission, funding quote, status, and deliverables access.Use with katch mission confirm, status, doctor, and deliverables commands.
missionIdPublic on-chain/public mission identity that contributors will eventually see.Use when referring to the public mission after funding and publication.
A draft is saved server-side, but it is not public and not funded yet. The funding authorization attached to the draft is short-lived; if it expires, rerun katch mission launch or create a fresh draft response before broadcasting funding.

Doctor-first debugging

Use mission doctor whenever an agent needs to decide what to do next:
katch mission doctor draft_mabc1234_deadbeef
Doctor returns:
  • health: blocked, waiting, ready, or rejected
  • summary: plain-English lifecycle summary
  • blockers: what prevents progress
  • actions: concrete next steps
  • deliverables: readiness check after publication

Publication and outputs

Deliverables are available only after the external mission is published and submissions are accepted. Creators can fetch the manifest with signed wallet auth or subscribe to webhooks for lifecycle and output events.