Recipe spec
Overview
A recipe is a YAML file that declares a complete Backproto pipeline: the providers, their pricing curves, routing policy, settlement contracts, and observability configuration. The format is machine-readable (for the bake CLI and simulation engine) and human-readable (for the web gallery and documentation).
Top-level fields
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Human-readable recipe name |
| description | string | yes | One-line description |
| domain | enum | yes | ai | nostr | general | infrastructure | defi |
| difficulty | enum | yes | beginner | intermediate | advanced |
| contracts_used | string[] | yes | Backproto contracts this recipe uses |
| steps | Step[] | yes | Ordered pipeline stages |
| funding | object | no | EscrowBuffer address + Superfluid config |
| routing | object | no | Policy, fairness, provider constraints |
| settlement | object | no | Pool address, tracker, penalty config |
| observability | object | no | Export targets (otel, json, webhook) |
Provider object
Each step contains one or more providers. A provider declares an endpoint, a capacity attestor address, stake requirements, and pricing curve parameters.
providers:
- name: vLLM-A
endpoint: "https://provider-a.example/run"
capacityAttestor: "0x6f58..."
stake:
manager: "0xdc26..."
min: "500 USDC"
pricingCurve:
base: 0.0008 # base price at 0% utilization
k: 0.15 # sensitivity coefficient
alpha: 2.0 # convexity exponentPricing curve formula
price = base × (1 + k × utilization^alpha)
At 0% utilization the price equals base. As utilization rises, price increases according to a power curve controlled by k (sensitivity) and alpha (convexity). Higher alpha means prices stay flat longer then spike harder near capacity.