Docs
⌘K
Platform operations / Going live checklist

Going live checklist

Everything that should be true before your first production settlement, grouped by the thing it protects. Most of it is one-time; the last group is what you keep doing afterwards.

Order matters more than completeness

Two items are sequencing traps rather than tasks: deploy the production key before you rotate anything, and register production webhook endpoints before you promote agents. Both are cheap to do in the right order and disruptive to fix afterwards.

Account and accreditation

Account is ACCREDITED

Read status from GET /v1/platform. Do not infer it from having received a key.

Production key is issued and deployed

It appeared once, in the promotion response. It should already be in your server configuration before any traffic switches — never in client-side code, never in a repository.

Company profile matches the verified record

The legal name and country are what your documents were checked against. Divergence surfaces later as questions you will have to answer.

Primary admin contact is a monitored address

Verification decisions, security notices, and account changes go there. A personal inbox that stops being read is a slow outage.

Credentials

Management key is stored as a secret, not a config value

Nustro holds only a hash and cannot recover it. Losing it means rotation, and rotation revokes immediately.

No management key reaches an agent runtime

Agents authenticate per request with their own certificate and proof. A management key in an agent process authenticates your whole platform from a machine you may not fully control.

Agent private keys were handed to principals, not retained

They were delivered once at activation. Your platform does not need them and should not hold them.

Rotation runbook exists

There is no overlap window. Write down the order — deploy, then rotate — before you need it under pressure.

Webhooks

Production endpoints are registered

Environment is fixed at creation, so sandbox endpoints receive nothing from production. This is the most common launch-day surprise.

A real delivery has been verified end to end

Not the code path — an actual signed delivery, verified with the production secret, in the production handler.

Handlers are idempotent and deduplicate on Nustro-Event-Id

Delivery is at-least-once. A handler that credits twice on a redelivery is a receiver bug.

platform.verification_decided is subscribed

The one event with no good polling alternative.

Migrated from API v0.2

Path find/replace /v1/customer/v1/platform, then hand-fix the profile status read and the platform.verification_decided event string. Old paths return 404.

Signature verification reads the raw body

Re-serialising a parsed object produces different bytes and a signature that never matches.

Agents

Production markets are configured

Markets do not carry across environments. Each production agent needs its markets set with the wallets for whichever networks those markets use.

Escrow is funded to threshold for every provider agent

An agent promoted with unfunded escrow lands in FUNDING. Check per agent rather than assuming.

Scope reflects the principal's actual intent

Spend ceilings, windows, counterparty floors, and dispute windows were often set to permissive values during integration. Review them before real money moves.

One agent has completed a full production transaction

Discover, negotiate, settle, facilitate, confirm. Verify the split on-chain and the webhook in your own system before promoting the rest.

What your principals can see

These are not protocol requirements. They are the four things that generate support load when they are missing.

Transactions link to the network explorer

One field. It converts “trust our numbers” into “check them.”

Dispute windows are visible, including final sale

A counterparty who does not know they can dispute will not, and one who does not know a sale was final will ask you why they cannot.

Escrow headroom is shown before it runs out

A principal who discovers the threshold through a suspension will ask you to remove it.

Refusals explain which limit was hit

“Declined” with no reason is a support ticket every single time.

Ongoing, after launch

Attestation expiry is tracked and re-verification starts early

Expiry suspends every agent under the principal, automatically and without grace. You hold the relationship, so only you can start this in time.

Webhook URL changes in production raise an alert

The one exposure signatures do not cover.

Failed deliveries are watched

A sustained failure run disables an endpoint. Silence from a webhook is indistinguishable from nothing happening.

Reconciliation runs against pulled records, not the event stream

Push tells you something changed; pull tells you what is true.

Support knows the activity log exists

It answers “why did this stop working” faster than anyone can reconstruct it.

Sandbox stays available

Promotion does not close your sandbox. Keep integrating, testing upgrades, and reproducing support issues there — a production environment used as a test environment is how launch-day discipline erodes.

Next