openclaw-paid-actions
v0.2.2Use the openclaw_paid_action tool to list actions, generate USDC invoices, and execute only after manual payment confirmation on Solana.
Installation
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 (or pay alias): 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 notifySessionKey is set on invoice creation, the gateway emits a system event when payment is recorded.
- The tool is optional in OpenClaw; add openclaw_paid_action to agent tools.allow.
- Production defaults block startup if invoiceSecret or invoiceStorePath is 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."
}