---
name: asterpay
description: "AsterPay is the trust, discovery, and fiat settlement layer for AI agent payments. Use when an agent needs to (a) verify another agent's identity and trust score before sending payment, (b) resolve a merchant company name to a verified bank account (IBAN/BIC) for SEPA payment, (c) settle USDC/EURC/EURCV to fiat (EUR via SEPA Instant today; GBP via Faster Payments and USD via ACH on the roadmap) in under 10 seconds, (d) accept payments in either x402 (Coinbase) or MPP (Stripe/Tempo) protocol on the same endpoint, or (e) check sanctions and compliance before any cross-border transfer. Triggers on: KYA, Know Your Agent, trust score, agent verification, x402, MPP, agent payment, USDC to fiat, USDC to EUR, stablecoin off-ramp, SEPA Instant, fiat settlement, MPE, Merchant Payment Endpoint, IBAN lookup, VoP, Verification of Payee, agent_pay, payment rail, MiCA settlement, sanctions screening for agents."
license: Apache-2.0
metadata:
  author: AsterPay (AELIRA LTD)
  version: "1.0.0"
  homepage: https://asterpay.io
  api: https://x402.asterpay.io
---

# AsterPay Skill

The single-file onboarding for AsterPay. Read this once and you can install the CLI, the MCP server, the Python SDK, the TypeScript SDK, run a trust check, do an EUR settlement estimate, and accept x402 or MPP payments. No other documentation required for the standard flow.

## What this skill teaches

After loading this file the agent should be able to:

1. Install the right SDK for the host language (TypeScript, Python) or the MCP server (Claude, Cursor, Windsurf, Codex)
2. Call any free endpoint without authentication
3. Resolve a merchant by company name and get a verified IBAN through MPE
4. Pay an x402 or MPP endpoint correctly on the first try
5. Run a settlement estimate before any EUR off-ramp
6. Refuse to act when the trust check returns `blocked: true`

## One-line install (copy paste)

For Claude Code:

```bash
claude "Run curl -fsSL https://asterpay.io/SKILL.md and follow it to install the AsterPay MCP server, run a trust check on 0x742d35Cc6634C0532925a3b844Bc454e4438f44e, and show me a settlement estimate for 100 USDC."
```

For Cursor or any agent that supports `npx skills add`:

```bash
npx @asterpay/skills add asterpay
```

For raw TypeScript or Python projects:

```bash
npm install @asterpay/sdk            # TypeScript
pip install asterpay                 # Python
npx @asterpay/mcp-server             # Stand-alone MCP (18 tools)
```

## Base URLs

| Surface | URL |
|---|---|
| API | `https://x402.asterpay.io` |
| Website | `https://asterpay.io` |
| Agent card | `https://asterpay.io/.well-known/agent.json` |
| x402 discovery | `https://asterpay.io/.well-known/x402.json` |
| MPP discovery | `https://x402.asterpay.io/.well-known/mpp-methods.json` |
| OpenAPI | `https://x402.asterpay.io/docs/json` |

## Free endpoints (no key, no payment)

```bash
# Trust score for any wallet, 0-100, with tier and block status
curl https://x402.asterpay.io/v1/agent/trust-score/0x742d35Cc6634C0532925a3b844Bc454e4438f44e

# Quick tier lookup with per-tx limit
curl https://x402.asterpay.io/v1/agent/tier/0x742d35Cc6634C0532925a3b844Bc454e4438f44e

# Settlement estimate before you commit
curl "https://x402.asterpay.io/v1/settlement/estimate?amount=100"

# Resolve a merchant by VAT or LEI to a verified IBAN
curl "https://x402.asterpay.io/v1/mpe/merchants/resolve?business_id=FI12345678&business_id_type=vat"

# Live EUR/USD rate
curl https://x402.asterpay.io/v2/x402/market/rates
```

Every free endpoint returns JSON with `success`, `data`, and a `simulated` boolean when the data is indicative rather than live.

## The five trust tiers

Higher trust unlocks higher per-transaction limits. Always check the tier before settling above one dollar.

| Tier | Score | Identity | Max per tx | Settlement |
|---|---|---|---|---|
| Open | 0 to 20 | wallet only | 1 USD | crypto only |
| Verified | 20 to 50 | ERC-8004 registered | 1,000 USD | EUR |
| Trusted | 50 to 80 | ERC-8004 plus operator KYC | 10,000 USD | EUR |
| Enterprise | 80 to 100 | full KYB | unlimited | EUR plus multi-fiat |

If `blocked: true` in any response the agent must stop. Sanctions hit, do not retry, do not route around.

## The standard payment flow

1. Read the destination from the user prompt or another agent
2. `GET /v1/agent/trust-score/{counterparty}` to check who you are paying
3. `GET /v1/settlement/estimate?amount={usdc}` to confirm fees and EUR amount
4. Execute the x402 or MPP payment
5. On success the response includes `eurSettlement.sepaReference` if EUR off-ramp was triggered

## Dual protocol: x402 and MPP

Every paid endpoint accepts both. The 402 response carries both header sets so the agent picks whichever SDK it has.

```text
HTTP 402 Payment Required
X-PAYMENT-REQUIRED: { x402 v2 payload }
WWW-Authenticate: Payment scheme=mpp realm="asterpay"
```

x402 SDK example:

```ts
import { createX402Fetch } from "x402-fetch";
const fetch402 = createX402Fetch(process.env.WALLET_PRIVATE_KEY);
const r = await fetch402("https://x402.asterpay.io/v1/agent/deep-analysis/0x...");
```

MPP SDK example:

```ts
import { mpp } from "mppx";
const r = await mpp.fetch("https://x402.asterpay.io/v1/agent/deep-analysis/0x...", {
  payment: { method: "usdc-base", maxAmount: "0.05" }
});
```

Both SDKs receive the same response. AsterPay does not charge a protocol-choice premium.

Supported networks for x402/MPP payment in: Base (USDC, EURC), Ethereum (USDC, EURC, EURCV), Polygon (USDC), Arbitrum (USDC), Optimism (USDC), Solana (USDC). Tempo (Stripe + Paradigm L1, USDC contract `0x20c000000000000000000000b9537d11c60e8b50`) is supported in preview; mainnet pending Stripe rollout 2026.

## MPE: from company name to verified IBAN

Most agents know the merchant name, not the bank account. MPE resolves this from five sources (national VAT registers, EBA Verification of Payee, public LEI data, supplier portals, manual cache) and runs a Verification of Payee check before returning.

```bash
curl "https://x402.asterpay.io/v1/mpe/merchants/resolve?business_id=NL854502777B01&business_id_type=vat"
```

Returns a verified IBAN, BIC, legal name match score, VoP confidence, and the source attribution. Refuse to settle if `vop_status` is `mismatch`.

## MCP tools (18 total)

When the agent runs `@asterpay/mcp-server` it gets these tools. The two that matter most:

- `agent_pay` runs the full pre-payment trust gate. Sanctions check, trust score, tier ceiling, recommended escrow, then either approves or blocks the call. Use this before every x402 payment that crosses one dollar.
- `get_payment_rail` returns the AsterPay payment rail as JSON-LD. Forward this to another agent and they can pay any AsterPay-connected counterparty without reading docs first. This is how the rail propagates between agents.

The other 16 cover trust score, settlement, MPE, session billing, ERC-8004 registration, EU AI Act attestation, and admin endpoints.

## Compliance defaults the agent must respect

- Never send a payment if the counterparty trust check returns `blocked: true`
- Never settle EUR over 1,000 USD per transaction without confirming the `tier` is `verified` or higher
- Never log private keys, signatures, or authorization payloads
- Always show the user the estimate (`netEurAmount` and `asterpayFeeEur`) before triggering an off-ramp
- AsterPay is MiCA-jurisdiction (Cyprus, AELIRA LTD) and applies Travel Rule data above 1,000 EUR
- Settlement is final on confirmation. There is no chargeback. Refunds happen via the x402r escrow path or counterparty cooperation.

## Common errors

| Status | Meaning | What to do |
|---|---|---|
| 400 | bad address or missing amount | fix the input, do not retry |
| 402 | payment required | sign the x402 or MPP payload and resend |
| 403 | sanctions block | stop the workflow, report to the user |
| 404 | wrong path | re-read this file, the path list is exhaustive |
| 429 | rate limited | exponential backoff, then retry |
| 500 | server error | retry with backoff, then escalate |

## Verification that the install worked

After install the agent should be able to run all three of these without error:

```bash
# 1. Health
curl -fsS https://x402.asterpay.io/v1/agent/framework | head -c 200

# 2. Trust check
curl -fsS https://x402.asterpay.io/v1/agent/trust-score/0x742d35Cc6634C0532925a3b844Bc454e4438f44e

# 3. Estimate
curl -fsS "https://x402.asterpay.io/v1/settlement/estimate?amount=10"
```

If all three return `success: true` the agent is ready.

## Where to go deeper

- Full API reference: <https://asterpay.io/llms-full.txt>
- Specific SKILLs (one per workflow): <https://github.com/AsterPay/asterpay-skills>
- KYA framework spec: <https://x402.asterpay.io/v1/agent/framework>
- EU agent launch guide (MiCA, VAT, CASP, ERC-8004): <https://github.com/AsterPay/asterpay-skills/tree/main/plugins/asterpay/skills/eu-launch>
- Discord: linked from <https://asterpay.io>

## License

Apache 2.0. Free to redistribute, fork, and bundle into other agent skills. AsterPay (AELIRA LTD, Cyprus) operates the hosted facilitator. The hosted server is AGPL 3.0 (see LICENSE_STRATEGY.md), but every client SDK and skill is Apache.

---

DISCLAIMER. Trust scores and settlement estimates are indicative. Actual EUR amounts depend on real-time FX at the moment of settlement. AsterPay enforces sanctions and Travel Rule on its EUR rail. Agents acting on behalf of users remain responsible for end-customer KYC where required.
