Create an owner-bound ephemeral deployment from an allowlisted image digest.
Action API
The browser pages are read-only documentation. Lifecycle mutations are available only through the paid, signature-bound API.
Live action prices
Each execution settles separately in native USDC on Base mainnet (eip155:8453).
Invoke an existing deployment owned by the signing account.
Delete an existing deployment owned by the signing account.
Paid action handshake
- Unsigned preparation request: send
POST /v1/actionswith the JSON body and a cryptographically randomIdempotency-Key. The API responds401 UnauthorizedwithCYNDER-ACTION-DIGEST. - Sign that digest using EIP-191. Retry the identical JSON body and Idempotency-Key with
CYNDER-ACTION-SIGNATURE. Preserve the returned immutable action ID and digest. - Sign the immutable action digest and send
POST /v1/actions/{actionID}/executewith an empty body andCYNDER-ACTION-SIGNATURE. The unpaid request responds402 Payment RequiredwithPAYMENT-REQUIRED. - Validate the Base-mainnet USDC requirement, create the x402 payment authorization, and Retry the same execute request with both
CYNDER-ACTION-SIGNATUREandPAYMENT-SIGNATURE. - Read the persisted action state and receipts using the owner signature. Preparation and execution signatures bind the method, normalized path, control origin, idempotency key, and digest shown by the server.
Action types are DEPLOY, INVOKE, and DELETE. Prices above come from the same live x402 configuration used to authorize execution.
Routes
Create an owner-bound action. JSON fields depend on the action type; all writes require an idempotency key and action signature.
Settle the configured x402 price and execute the prepared action. The request body must be empty.
Read an action, state, and receipts as its authenticated owner.
Read an authenticated deployment record.
Liveness.
Storage, recovery, and runtime readiness.
Request shapes
DEPLOY {"type":"DEPLOY","image_digest":"repo/image@sha256:…","resource_class":"mvi-small","timeout_seconds":30}
INVOKE {"type":"INVOKE","deployment_id":"dep_…","input":{},"timeout_seconds":30}
DELETE {"type":"DELETE","deployment_id":"dep_…"}