# Raxol Payments

> >

- **Type:** Skill
- **Install:** `agentstack add skill-droodotfoo-agent-skills-raxol-payments`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [DROOdotFOO](https://agentstack.voostack.com/s/droodotfoo)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [DROOdotFOO](https://github.com/DROOdotFOO)
- **Source:** https://github.com/DROOdotFOO/agent-skills/tree/main/skills/raxol-payments
- **Website:** https://droo.foo/

## Install

```sh
agentstack add skill-droodotfoo-agent-skills-raxol-payments
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Raxol Payments + ACP Skill

Agentic commerce layer for Raxol agents. `raxol_payments` (v0.2) gives an agent a
wallet, a ledger with spend limits, HTTP 402 auto-pay, and the cross-chain settlement
protocols (Xochi/Riddler/MPP/Permit2/x402) plus stealth/privacy. `raxol_acp` (v0.2)
implements the Agent Commerce Protocol: a per-job state machine, service offerings, and
on-chain writes via ERC-4337 smart accounts or EOAs.

This is the Elixir *client* layer. It signs and calls; the contracts themselves are out
of scope (see `solidity-auditor`). Riddler is the payments protocol/module here
(`Raxol.Payments.Protocols.Riddler`), now delegating to Xochi.

## What You Get

- Protocol map: Xochi (default cross-chain), MPP, Permit2, x402, Riddler
- Agent wallets (env key, 1Password, ERC-4337 SCA, EOA nonce server)
- Ledger spend limits, SpendGate authorization, mandates, checkpoint idempotency
- Privacy: stealth (ERC-5564/6538), Glass Cube tiers, ZKSAR trust scores, PXE bridge
- ACP job lifecycle state machine, Offering DSL, HookClient + provider adapters
- Test patterns with the Mock provider adapter (no real chain calls)

## Two package split

| Concern                                  | Package         | Entry modules                              |
| ---------------------------------------- | --------------- | ------------------------------------------ |
| Pay for a resource / cross-chain move    | `raxol_payments`| `Protocols.Xochi`, `Ledger`, `SpendGate`   |
| Sell/deliver a job on-chain (ACP)        | `raxol_acp`     | `JobSession`, `Offering`, `HookClient`     |

## See also

- `raxol` -- core agent/TUI framework (agents, directives, MCP, workflow)
- `raxol-symphony` -- coding-agent orchestrator (uses ACP for paused-run resume)
- `solidity-auditor` -- the on-chain contracts these clients call
- `ethskills` -- Ethereum tooling, RPC, standards (ERC-4337, ERC-5564, ERC-3009)
- `noir` -- ZK circuits behind ZKSAR / shielded settlement

## Reading Guide

| Task                                    | File                          |
| --------------------------------------- | ----------------------------- |
| Move funds / pay a 402 (protocols)      | `payments/protocols.md`       |
| Stealth, privacy tiers, ZKSAR trust     | `payments/privacy.md`         |
| Wallets, ledger, spend gate, checkpoints| `payments/wallets-ledger.md`  |
| Sell a service via ACP (job lifecycle)  | `acp/job-lifecycle.md`        |
| Test without real chain calls           | `testing.md`                  |

## Key Conventions

- Amounts are atomic units as strings (`"1000000"` = 1 USDC), aggregated as `Decimal`
  in the ledger. Never pass floats.
- Every spend goes through `SpendGate.authorize/3` -> reserve -> sign -> `release`/
  `release_by_intent`. Reservations expire (TTL) and are swept.
- Wallets implement `Raxol.Payments.Wallet` (`address/0`, `sign_message/1`,
  `sign_typed_data/3`, `sign_hash/1`). Pick env/op/SCA/EOA per deployment.
- Idempotency: derive a `Checkpoint` key from canonical intent fields and check it
  before re-submitting an in-flight intent.

## Common Pitfalls

1. **Floats for money** -- use atomic-unit strings + `Decimal`; floats lose precision.
2. **Signing before gating** -- authorize/reserve budget first, or a failed send leaks
   the reservation. Always pair `authorize` with `release`/`release_by_intent`.
3. **Re-submitting on retry** -- without a `Checkpoint`, a retry double-spends; derive
   the key from intent fields and short-circuit on a hit.
4. **Real RPC in tests** -- use `Raxol.ACP.ProviderAdapter.Mock`; never a live bundler.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [DROOdotFOO](https://github.com/DROOdotFOO)
- **Source:** [DROOdotFOO/agent-skills](https://github.com/DROOdotFOO/agent-skills)
- **License:** MIT
- **Homepage:** https://droo.foo/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-droodotfoo-agent-skills-raxol-payments
- Seller: https://agentstack.voostack.com/s/droodotfoo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
