How it actually works.
A reference for anyone evaluating the build: the lifecycle every workflow follows, and the API surface that implements it.
Workflow lifecycle
Compile
A goal and budget become a step graph: providers, dependencies, and conditions for what can be skipped.
Quote
Each runnable step is quoted against the live marketplace and checked against the workflow's remaining budget.
Approve
Steps within the tier's cap proceed automatically. Anything above it, or any unverified provider, opens a human approval.
Pay
Once cleared, the client submits an Algorand TestNet transaction and the payment payload goes to the facilitator.
Verify
The facilitator confirms the transaction on-chain via algosdk before the step is allowed to count as paid.
Settle
An idempotent receipt is issued and written to the ledger, alongside every offer, quote, and approval that led to it.
API surface
Everything the dashboard and app call, implemented under website/app/api.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/workflows | Submit a goal and budget, get back a compiled workflow. |
| GET | /api/workflows?userId= | List a user's workflows, newest first. |
| GET | /api/workflows/:id | Workflow status, step graph, recent ledger events. |
| GET | /api/workflows/:id/trace | Full replayable trace for the workflow. |
| POST | /api/workflows/:id/approve | Approve or deny a pending step. |
| POST | /api/workflows/:id/cancel | Cancel a running workflow. |
| POST | /api/facilitator/verify | Verify a payment payload against declared terms. |
| POST | /api/facilitator/settle | Confirm settlement and issue a receipt. |
| GET | /api/providers | List marketplace providers and their pricing scheme. |