Install
openclaw skills install edgeos-applicationsApply to an EdgeOS popup city and buy tickets through OpenClaw. Use when users ask to authenticate by email OTP, submit/check popup applications, retrieve accepted applications and attendees, browse active products, purchase with checkout links, or settle crypto payments via /agent/buy-ticket (x402 + USDC on Base, optional AgentKit discount).
openclaw skills install edgeos-applicationsRun the EdgeOS application flow with a strict, reliable sequence:
Read these references before executing:
{baseDir}/references/conversation-flow.md{baseDir}/references/flow.md{baseDir}/references/api-contract.md (API source of truth)Before collecting fields, read workspace USER.md and use it as prefill context when values are relevant and trustworthy for the current user.
This v1 skill is intentionally pinned to PROD backend values (no user setup required). Values are defined once in:
{baseDir}/scripts/env.shDo not ask users to configure runtime values in v1.
Use the values from scripts/env.sh consistently for auth and API calls.
Prefer scripts in {baseDir}/scripts over ad-hoc curl construction:
auth_request_otp.shauth_login.sh (persists JWT in local state file)submit_application.shcheck_application_status.sh (supports --application-id or --citizen-id + --popup-city-id)payment_preview.shpayment_create.shpayment_status.shbuy_ticket_challenge.sh (x402 challenge from /agent/buy-ticket)buy_ticket_submit.sh (x402 submit with PAYMENT-SIGNATURE, optional AGENTKIT)Only fall back to raw curl if a script cannot handle the case.
Use this exact sequence:
status.USER.md (primary source for all mappable fields)If a field is present in USER.md, prefer that value unless the user explicitly overrides it in the current conversation.
Additional rules:
local_resident from known residence/location context by default (example: user based in Buenos Aires => not local resident for Edge Esmeralda).duration as required and normalize it to one of: 1 week, 1 weekend, 2 weeks, a few days, full length.builder_boolean=true; investor intent absent => investor=false).auth_login.sh and reuse it for all subsequent API requests.{baseDir}/scripts/.state/.SESSION_EMAIL when running scripts to select the correct token.When the user chooses to pay with crypto, the skill uses POST /agent/buy-ticket (x402 protocol).
The skill gets payment requirements from the server, provides them to the agent, and the agent
signs the USDC transfer with whatever wallet it has configured (CDP, MCP tool, etc.).
The skill does NOT handle wallet signing — it provides the data and the agent handles signing.
World ID-verified agents (via AgentKit) receive a 10% discount automatically when the
AGENTKIT header is included with a valid signed payload.
accepted.end_date < now).statusOn duplicate submissions, return existing application status instead of surfacing a raw failure.