Agent Skill
The complete repository skill, including its safety boundaries and workflow references.
This manual targets 0.1.0-beta.3. Read the source and availability policy before installing. Historical reports retain their original scope.
The skill is shipped in the beta.3 source tree under skills/ppops/. Install that complete directory, including references, scripts and assets, using your agent's skill mechanism. This page is a reading copy, not an installer. Source availability.
Operate and integrate PPOps through its existing CLI and HTTP API. Treat the merchant daemon as a view-only reconciliation service and the reference payer as a separate spending trust domain.
Enforce the trust boundary
- Never request, load, copy, transform, or store a merchant mnemonic or RAILGUN spending key. PPOps accepts only the merchant shareable viewing key.
- Ask for secret file paths, never secret values. Never print viewing keys, API tokens, signing keys, database-encryption keys, webhook keys, payer mnemonics, or EVM private keys.
- Keep secrets and configuration in owner-only regular files (
0600). Never commit them or place them in URLs, CLI arguments, screenshots, logs, or evidence artifacts. - Keep payer spending material off the PPOps merchant host. Use
tools/ppops-payeronly on the payer-controlled host. - Never treat
OBSERVEDorFINALIZEDalone as payment. Fulfill only from the authenticatedpayment.confirmedevent or an authenticated intent whose derived state isPAID/PAID_LATE; PPOps requires finality,SPENDABLEPPOI, and a valid match. - Do not submit a payer transaction or spend funds without explicit user approval of the network, asset, amount, fee ceiling, submission mode, and intended payment intent. Run prepare/no-send checks first.
- Keep the v0.1 production profile on Arbitrum One (
42161) and native USDC (0xaf88d065e77c8cC2239327C5EDb3A432268e5831, 6 decimals). Do not silently substitute another network, token, finality policy, RPC, or PPOI service.
Read references/SECURITY.md before any setup, integration, deployment, payer, or incident task.
Select the workflow
Set up a merchant instance
- Read references/QUICKSTART.md.
- Inspect
package.json,node dist/cli.js help, and the selected release before proposing commands. Prefer an immutable release tag/container digest. - Accept only an existing merchant viewing-key file. Do not help export or recover spending material as part of the daemon setup.
- Run the repository
scripts/verify-install.shagainst the source checkout. Its default verifies only the merchant;--with-payeris for release reviewers. - Initialize PPOps with at least two independent RPC origins; recommend three for 2-of-3 availability. Do not select a paid provider or PPOI operator without the user’s direction.
- Run
config-validate,preflight, then start the daemon. - Run
ppops doctor --offline,ppops preflight, thenppops statusafter starting. These commands never create an intent or submit a payment. - Create a low-value intent only after the daemon is ready. State clearly that
the payer must already have enough private native USDC in the
Spendablebucket; first-time shield/PPOI onboarding and historical scan time have no fixed setup guarantee.
Integrate a merchant application
- Read references/API.md.
- Inspect the application. Use raw HTTP or the source package’s
ppops/clienthelpers; the package is not published on npm. Read the canonical API/OpenAPI and use the runnable merchant example for webhook handling. - Create intents server-side with a stable
Idempotency-Key; persist the merchant order to PPOps intent-ID mapping. - Expose only the unguessable checkout URL/request to the payer. Keep the API
token and
externalReferenceserver-side. - Verify webhook HMAC against the raw body, enforce timestamp freshness,
and atomically deduplicate
PPOps-Event-Idbefore fulfillment. - Test duplicate delivery and non-2xx retry behavior.
Work on a payer integration
Read references/PAYER.md. Verify the descriptor against an expected merchant signer obtained independently of the checkout. The reference payer is testing/integration tooling, not a consumer wallet. Prepare first; submit only with explicit financial authorization.
Troubleshoot an installation
Read references/TROUBLESHOOTING.md. Preserve fail-closed behavior. Do not fix quorum, PPOI, scan, or webhook failures by weakening payment criteria or manually marking an intent paid.
Run an independent pilot
Read references/EXTERNAL-PILOT.md. Prefer an independently controlled merchant installation over payer-only validation. Collect consented, metadata-minimal evidence; never collect wallet secrets, transaction hashes, memo references, addresses, or invoice/customer IDs.
Completion criteria
For merchant setup, report success only when:
- the pinned release/build verifies;
config-validateand network/PPOIpreflightpass;- the daemon is live and ready;
- authenticated runtime and metrics checks pass;
- the merchant signer is recorded through an independent payer trust channel;
- a backup/restore plan and real webhook receiver are documented.
For an end-to-end pilot, additionally require one actual private transfer to
reach FINALIZED + SPENDABLE + MATCHED, one exact-once confirmation at the
merchant application, and privacy-safe operator feedback. Document the exact
verification environment and operational scope clearly.