OpenClaw Paid Actions
Use this skill when an action must be paid before it runs.
Tool: openclaw_paid_action
This skill is instruction-only. It expects a trusted installed implementation of the openclaw-paid-actions plugin that provides openclaw_paid_action.
Actions:
list: List configured paid actions.quote: Build USDC payment instructions for an action.invoice: Create a signed invoice token for an action/input.status: Check current invoice payment status.wait: Poll until the invoice is paid (or timeout/expiry).confirm(orpayalias): Validate payment transaction on-chain, then mark invoice paid.execute: Run the action after invoice is confirmed paid.
Typical Flow
- Call
openclaw_paid_actionwithaction: "list"to discover action IDs. - Call
openclaw_paid_actionwithaction: "invoice"andactionId(plus optionalinput,recipient,memo). - Send the returned
invoiceMessageorpaymentInstructionsto the payer. - After payment is received, call
openclaw_paid_actionwithaction: "confirm"andinvoice(orinvoiceId) plustransactionto validate on-chain and mark paid. You can also passpaymentProofTextwith the raw user reply; the tool extracts the Solana tx signature automatically. - Call
openclaw_paid_actionwithaction: "wait"(orstatus) to know when it is paid. - Call
openclaw_paid_actionwithaction: "execute"andinvoiceto run after payment.
Plugin Config
Configure under plugins.entries.openclaw-paid-actions.config:
{
"network": "solana:mainnet",
"payTo": "${OPENCLAW_USDC_PAY_TO}",
"invoiceSecret": "${OPENCLAW_PAID_ACTIONS_INVOICE_SECRET}",
"invoiceStorePath": "${OPENCLAW_PAID_ACTIONS_INVOICE_STORE_PATH}",
"allowRunAsRoot": false,
"requirePersistentInvoiceSecret": true,
"requireInvoiceStorePath": true,
"enforceReviewedScripts": true,
"reviewedScriptsRoot": "scripts/paid-actions",
"requiredNodeMajor": 20,
"defaultInvoiceWaitSeconds": 900,
"invoicePollIntervalMs": 3000,
"maxTimeoutSeconds": 120,
"defaultTaskTimeoutMs": 30000,
"maxOutputBytes": 32768,
"actions": {
"x-shoutout": {
"description": "Post a paid shoutout on X",
"command": ["node", "scripts/paid-actions/x-shoutout.mjs"],
"cwd": ".",
"price": "0.03",
"timeoutMs": 45000
}
}
}
Notes:
- Each action runs exactly the configured command array.
- Invoice execution uses the input embedded in the invoice token.
- Action input is exposed as
OPENCLAW_PAID_ACTION_INPUT_JSON. - Command output is truncated at
maxOutputBytes. - If
notifySessionKeyis set on invoice creation, the gateway emits a system event when payment is recorded. - The tool is optional in OpenClaw; add
openclaw_paid_actionto agenttools.allow. - Production defaults block startup if
invoiceSecretorinvoiceStorePathis missing. - Production defaults block unreviewed commands; keep actions under
scripts/paid-actions. - Review every configured action command before enabling autonomous execution.
Real Action Inputs
For x-shoutout:
{
"handle": "openclaw",
"message": "Huge shoutout to @openclaw for supporting this build!",
"link": "https://x.com/openclaw"
}
For discord-shoutout:
{
"name": "Daniel",
"note": "Thanks for supporting the build."
}