Deploy code to CreateOS through the NodeOps MPP Gateway. Use when a user wants to ship an application, inspect a CreateOS payment quote, pay with USDC through native MPP or x402, or check a deployment created by the gateway.
Use the gateway's wallet-authenticated HTTP flow. No browser session or OAuth is required.
Default gateway: https://mpp-createos.nodeops.network
Prefer the bundled script because it preserves the exact deployment body across the payment retry, filters secrets from uploads, uses fresh auth nonces, and verifies the final endpoint.
cd path/to/createos-deploy
bun install
# Inspect the 402 and stop before signing a payment.
bun run deploy -- --dir /path/to/project --name my-app --port 3000
# Pay the selected native MPP offer and deploy.
bun run deploy -- --dir /path/to/project --name my-app --port 3000 --chain arbitrum --yes
# Select x402 instead. It must be advertised by the gateway for that chain.
bun run deploy -- --dir /path/to/project --name my-app --port 3000 --chain bsc --protocol x402 --yesProvide PRIVATE_KEY in the process environment or in a .env beside this skill. Never place it in the project being uploaded. Set CREATEOS_GATEWAY to test another gateway.
GET /agent/projects only lists your own projects, so it cannot detect a name another account holds.5xx on POST /agent/deploy is usually that collision rather than a gateway outage. Treat it as a name conflict first and retry with a fresh suffix; the gateway does not return 409 for names held by other accounts.POST /agent/deploy may immediately deploy when the wallet has enough unused credits. Quote-only mode prevents a new payment, but it cannot prevent this credit-funded behavior because the API has no separate quote endpoint.--yes, stop after presenting the selected protocol, network, recipient, and USDC amount.402 headers as authoritative. Do not hard-code a default payment chain from discovery metadata.Authorization: Payment ... and PAYMENT-SIGNATURE.Native MPP is the default protocol:
x402 is optional:
PAYMENT-REQUIRED.accepts.amount values are atomic token units. The wire schema does not carry decimals; use trusted local asset metadata.The gateway currently models USDC on all supported chains. Always accept only a known chain ID and exact known token contract.
port, and validate the project name before any deploy request. Append a random suffix to the unique name; keep the clean name as the display name.GET /agent/projects to detect an existing name and show active projects whose runtime could be affected by shared credits. This check covers your wallet only, so the suffix stays mandatory.POST /agent/deploy with fresh wallet-auth headers and no payment credential.200, deployment has already started using credits.402, inspect WWW-Authenticate for native MPP and PAYMENT-REQUIRED for x402. Select only the user-approved protocol and an advertised chain with sufficient USDC.Authorization or PAYMENT-SIGNATURE.Payment-Receipt and PAYMENT-RESPONSE values in error reporting.ready or failed, with a fresh auth nonce each time.ready is the platform's status, not the container's: the app still has to boot and bind the port, so the first probes routinely return 404 or refuse the connection. Probe every ten seconds for up to two minutes and only judge the port after that. A 404 that survives the whole window can be the app's real answer at /; no answer at all points at the wrong --port.Read references/api.md when implementing the flow without the bundled script or diagnosing a gateway response.
20232dc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.