Create a Shieldz crypto payment link or tip jar for a wallet the USER explicitly provides, and read payment status back. Use ONLY when the user directly asks...
---
name: crypto-payments
description: Create a Shieldz crypto payment link or tip jar for a wallet the USER explicitly provides, and read payment status back. Use ONLY when the user directly asks to create a crypto payment link or tip jar (or to check what a Shieldz link has received), has named or confirmed the destination wallet, and has confirmed the amount. Do not infer or auto-create from vague phrasing. Every creation sends data to the external Shieldz service (shieldz.cash) and must be confirmed with the user first.
---
# Shieldz crypto payments
Turn a wallet address the **user controls** into a hosted crypto payment link or a
reusable tip jar via Shieldz, and read back how much has been paid. Non-custodial:
funds settle straight to the user's wallet; Shieldz never holds funds or keys.
Keyless: no account and no API key.
## Read this before using it (data & privacy)
This skill calls **external Shieldz network services**, the keyless REST API at
`https://shieldz.cash/api/v1/...` and, optionally, the remote MCP server at
`https://shieldz.cash/mcp`. It is **not** a local or offline flow.
On each action, the following is transmitted to Shieldz (a third party):
- the destination **wallet address**, chain, and asset
- the **amount** and any **memo / title** the user provides
- an **email address**, only if the user explicitly provides one (see below)
- when reading status, the **manage_token**
Treat every `manage_url` / `manage_token` as a **private access credential**:
anyone holding it can read the account's totals and settings. Do not post them
publicly, paste them into shared contexts, or write them to logs.
Only proceed if the user is comfortable sending the above to Shieldz's external
infrastructure. This skill does **not** collect credentials, read local files,
harvest environment variables, run dynamic code, or persist anything on the
machine. It contacts `shieldz.cash` and nothing else.
## When to use, and when NOT to
Use this skill only when **all** of these hold:
- the user **explicitly asks** to create a Shieldz crypto payment link or tip jar,
or to check what a specific Shieldz link received, **and**
- the user has **named or confirmed the destination wallet address**, **and**
- for a fixed-amount link, the user has **confirmed the amount**.
Do **not** activate on vague or adjacent phrasing such as "I need to get paid",
"how do payments work", or "set something up". If the intent, the wallet, or the
amount is unclear, **ask, do not create anything**.
**Confirm before every external call.** Before creating a link or tip jar,
restate the exact wallet address, chain, asset, amount, memo, and whether an
email will be sent, then get an explicit "yes". Never create autonomously and
never batch-create.
## Email is optional and consent-gated
`email` is optional and only lets the human owner claim a dashboard later.
Because it is **personal data sent to a third party**, do **not** include it
unless the user explicitly provides an address and agrees to send it. Omit it by
default, settlement works without it.
## Create a payment link (fixed amount)
Keyless, no `Authorization` header. Only call this after the confirmation above.
```bash
curl https://shieldz.cash/api/v1/links \
-H "Content-Type: application/json" \
-d '{
"settlement": { "chain": "BASE", "asset": "USDC", "address": "0xUserProvidedWallet" },
"amount_usd_cents": 4900,
"memo": "Order #1234"
}'
```
- `chain`: `BASE`, `ARBITRUM`, `OPTIMISM`, `POLYGON`, or `ETHEREUM`. `asset`: `USDC` or `USDT`.
- `amount_usd_cents`: amount in USD cents (`4900` = `$49.00`, range `$1`-`$100k`).
- Response includes `pay_url` (share this with the payer), and `manage_url` +
`manage_token` (**private**, keep secret per the rules above).
Give the payer the `pay_url`. Do not add `email` unless the user opted in.
## Create a tip jar (pay-what-you-want, reusable)
```bash
curl https://shieldz.cash/api/v1/tip-jars \
-H "Content-Type: application/json" \
-d '{
"settlement": { "chain": "BASE", "asset": "USDC", "address": "0xUserProvidedWallet" },
"title": "Buy me a coffee",
"suggested_amounts_usd_cents": [300, 500, 1000]
}'
```
Response includes `url` (share this) and `manage_token` (**private**).
## Read status (how much has been paid)
```bash
curl https://shieldz.cash/a/<manage_token>.json
```
Returns totals and the invoice list. The `manage_token` is a capability secret,
only use one the user has given you, never guess it, and never share it.
## Optional: MCP instead of REST
If the agent uses MCP, the same three actions are available keyless via the
Shieldz MCP server: remote at `https://shieldz.cash/mcp`, or local with a
**pinned** version `npx -y @shieldz/mcp@0.3.0`. Tools: `create_payment_link`,
`create_tip_jar`, `get_account_status`. The same confirmation, data-disclosure,
and email-consent rules above apply unchanged.
## Safety summary
- Contacts `shieldz.cash` only. No other network destination.
- Confirms wallet + amount + email-choice with the user before every creation.
- Never creates from vague intent, and never creates without an explicit "yes".
- `manage_url` / `manage_token` are private, protect them like a password.
- `email` is optional, consent-gated, and off by default.
- No local persistence, no credential / environment / file access, no dynamic
code execution, and a pinned MCP dependency.
don't have the plugin yet? install it then click "run inline in claude" again.
added explicit 12-step procedure with input-output per step, detailed decision points for vague intent and missing consent, comprehensive inputs section with external connection details, clear output contract specifying response fields and error handling, and outcome signals covering all three actions (payment link, tip jar, status) plus failure cases.
Turn a wallet address the user controls into a hosted crypto payment link or reusable tip jar via Shieldz, then read back how much has been paid. Non-custodial: funds settle straight to the user's wallet. Keyless: no account and no API key required.
This skill creates Shieldz crypto payment links (fixed-amount) or tip jars (pay-what-you-want) pointing to a wallet the user owns, and reads back payment totals. Use it only when the user explicitly asks to create a payment link, check a link's status, or set up a tip jar, has named the destination wallet, and has confirmed the amount (for fixed links). Every creation sends wallet address, chain, asset, amount, and optional email to shieldz.cash, a third-party service. Do not infer intent from vague phrasing, do not auto-create, and always confirm with the user before any external call.
User-provided data:
External connection:
https://shieldz.cash/api/v1/links, https://shieldz.cash/api/v1/tip-jars, https://shieldz.cash/a/<manage_token>.jsonhttps://shieldz.cash/mcp (remote) or npx -y @shieldz/mcp@0.3.0 (local pinned version)Data privacy note: On each request, Shieldz receives the wallet address, chain, asset, amount, memo, and optional email. The manage_token and manage_url are private capability secrets equivalent to passwords; treat them as such and never log, share, or post them.
Step 1: Verify explicit user intent.
Step 2: Collect and confirm wallet and chain details.
Step 3: Collect and confirm amount (payment link only).
Step 4: Collect asset preference.
Step 5: Collect optional memo and email.
Step 6: Final confirmation before external call.
Step 7: Create payment link (fixed-amount only).
https://shieldz.cash/api/v1/links with JSON body:{
"settlement": {
"chain": "<CHAIN>",
"asset": "<ASSET>",
"address": "<WALLET_ADDRESS>"
},
"amount_usd_cents": <AMOUNT>,
"memo": "<MEMO>"
}
(omit "memo" if empty; omit entire "email" field if user did not provide one)pay_url, manage_url, and manage_token.Step 8: Create tip jar (pay-what-you-want, reusable).
https://shieldz.cash/api/v1/tip-jars with JSON body:{
"settlement": {
"chain": "<CHAIN>",
"asset": "<ASSET>",
"address": "<WALLET_ADDRESS>"
},
"title": "<TITLE>",
"suggested_amounts_usd_cents": [300, 500, 1000]
}
(omit "email" field if user did not provide one)url and manage_token.Step 9: Share public URL with user.
pay_url (from step 7) or url (from step 8)manage_url or manage_token.Step 10: Secure the manage credentials.
manage_url and manage_token from step 7 or 8manage_url and manage_token are private credentials. advise them to store securely, never post publicly, never paste into logs or shared documents, and never share with third parties. do not log or echo these values yourself.Step 11: Read payment status (on user request).
https://shieldz.cash/a/<manage_token>.json.Step 12: Report status to user.
If the user's intent is vague or ambiguous (e.g., "i need to get paid", "how do i set up payments"):
If the user has not provided a wallet address, or has not confirmed it is one they control:
If the user is creating a fixed-amount payment link and has not confirmed the amount:
If the user has not explicitly provided an email address, or has declined to provide one:
email field from the request body. email is optional and off by default.If the user has provided an email address but has not explicitly agreed to send it to Shieldz:
If the user is reading the status of a link and provides no manage_token, or provides an invalid one:
If the Shieldz API returns a 4xx or 5xx error:
If there is a network timeout or connection refused error:
If the API response is empty or missing expected fields (e.g., no pay_url or manage_token):
If the user asks to use the MCP server instead of REST:
https://shieldz.cash/mcp) or the local pinned version (npx -y @shieldz/mcp@0.3.0). call the appropriate create_payment_link, create_tip_jar, or get_account_status tool. apply the same confirmation and data-privacy rules as the REST flow.If the user requests to create multiple payment links or tip jars in one session:
For payment link creation (success):
pay_url (string): public shareable URL, e.g., https://pay.shieldz.cash/p/xxxxxmanage_url (string): private dashboard URL, e.g., https://shieldz.cash/manage/xxxxxmanage_token (string): private capability token, used to read statuspay_url to the user for sharing with payers.manage_token securely for future status checks; do not log or echo it.For tip jar creation (success):
url (string): public shareable tip jar URL, e.g., https://tip.shieldz.cash/t/xxxxxmanage_token (string): private capability token for status checksurl to the user for sharing.manage_token securely; do not log or echo it.For payment status read (success):
totals (object): summary of USD received and any other metricsinvoices (array): list of individual payments with timestamps and amountsFor all failures:
Storage and location:
The skill has worked successfully when:
For payment link creation: the user receives a public pay_url they can immediately share with payers. they acknowledge the manage_token is private and stored securely. the link resolves in a browser and shows the expected amount and wallet.
For tip jar creation: the user receives a public url they can share. they understand the manage_token is private and secured. the tip jar resolves in a browser and shows the expected title and wallet.
For payment status check: the user receives a summary of the total amount received and a list of recent payments. the numbers match what they expect, and they can see timestamps for each invoice.
For all actions: no external data (wallet, amount, email) was sent to Shieldz without explicit user confirmation beforehand. the user confirmed the exact parameters before any HTTP call was made. the user was not surprised by the result.
Absence of outcome signal: the user is asked a clarifying question because intent, wallet, amount, or consent was unclear. no link or tip jar is created. the skill does not make an external call until the user approves.