Skip to main content

First Deploy

This page takes a GitHub Node.js webserver from a policy file to a running, sealed deployment on an Acurast phone.

1. Declare The App

Liskov reads a liskov.json application policy. A minimal Node.js web app looks like this:

liskov.json
{
"domain": "proof.slipway.application-policy.v3",
"applicationId": "my-app",
"displayName": "My App",
"replicas": 1,
"source": {
"provider": "github",
"repository": "my-org/my-app",
"branch": "main",
"path": "liskov.json"
},
"runtime": {
"role": "web",
"runtime": "NodeJSWithBundle",
"durationMs": 900000,
"resources": { "memory": 256, "storage": 128, "networkRequests": 0 },
"replacementRunwayMs": 600000,
"desiredCount": 1
},
"acurast": {
"verifiedOnly": false,
"maxStartDelayMs": 300000,
"budgetCaps": {
"maxRewardPerLaunch": 50000000000,
"maxNativeFeePerLaunch": 10000000000
},
"quote": { "required": true }
},
"ingress": {
"mode": "required",
"implementor": "baran",
"port": 3000,
"protocol": "https",
"tlsMode": "job-owned",
"healthPath": "/health"
}
}

Every field is documented in the policy schema reference. The domain string is a stable contract identifier and does not change with the brand.

2. Import And Publish

Register the app from GitHub. --publish cuts an immutable, signed policy version from the current draft:

proof liskov application import --github my-org/my-app --publish

You can inspect what you registered at any time:

proof liskov application list
proof liskov application status my-app
proof liskov application plans my-app

3. Preflight

Preflight validates budget, secrets, and ingress, and returns a signed quote. It does not spend:

proof liskov custody preflight my-app

Read the quote before you continue. If preflight reports missing secrets, grant them first — see Sealed secrets.

4. Launch

Run exactly one custody execution. Spend is gated behind --yes-spend, which is stricter than a plain --yes:

proof liskov custody execution run-one my-app --yes-spend

Liskov submits the Acurast job, funds the quote in USDC, waits for the job to sign its registration, wires Baran ingress, and prints the public URL.

5. Watch It Settle

proof liskov application status my-app

Your deployment moves through candidate → active as the job registers and the route opens. The full sequence is in the deployment lifecycle.

Next