Programmable paid actions
Pay for an action.Get the result.
Put a price in front of an API call, computation, file or any digital action.
Preview animates the mechanism only. No payment is requested or sent.
- 01 Request
- 02 Price
- 03 Pay
- 04 Action
One request, four states
State · BLOCKED
01
Request
Someone asks for an action: an API call, a file, a job.
- Request
- Price
- Pay
- Action
Any digital action
If it runs, it can have a price.
One vermilion point in every shape: the moment payment satisfies the condition.

- 01 · APIStart from template
API request
Lookups, data feeds, webhooks
- 02 · FILEStart from template
File / resource access
Reports, datasets, media, downloads
- 03 · COMPUTEStart from template
Computation
Rendering, simulation, batch jobs
- 04 · GENERATIONStart from template
Generation
Images, text, audio, code
- 05 · CUSTOMStart from template
Custom digital service
Anything you can run on request
Before / after
A capability.
A product.

Your API, model, dataset or job already works. It just has no terms.
SAATO gives it one: a name, a price and a gate. Pay, and it runs.
For developers
One definition. One gate.
Today, actions are defined and gated in the browser. Settlement plugs in through a single adapter.
- 01RequestCaller opens /action/[id]
- 02PriceDefinition is validated and priced
- 03PayPaymentAdapter settles on Robinhood Chain
- 04ActionResource is released to the caller
Step 03 has no adapter configured yet. Nothing is charged.
lib/actions/types.ts
type ActionDefinition = {
id: string // "act_…" generated locally
name: string
description: string
type: 'API' | 'FILE' | 'COMPUTE' | 'GENERATION' | 'CUSTOM'
resource: string // endpoint, URI or identifier
price: string // decimal, in ETH
currency: 'ETH'
metadata: { key: string; value: string }[]
enabled: boolean
storage: 'local' // stored in this browser
}
