set-moonpay-standing-quotes
Skill76 starsChanged 20 days agoApache-2.0View on GitHub
CROSS/moonpay — EVM origin chains and source token labels: Destinations include all the above chains plus solanamainnet. Targets — destination router slot labels: Ask ONE clarifying question before proceeding if any dimension is unclear: Step 1 — Derive flags from the request. Step 2 — Preview with --dry-run to confirm the exact lanes and current→new bps against live on-chain state (no signer/submitter keys are needed for this):
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 82
Ask ONE clarifying question before proceeding if any dimension is unclear:
- Very specific: line 137
When the user asks to see current fees or standing quotes (e.g.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Set MoonPay Standing Quotes Skill
When to Use
- "update fees from arbitrum USDC to all USDT destinations to 5bps"
- "set moonpay fee for katana → base DEFAULT slot to 3bps"
- "change all fees to 4bps"
- Any request to modify standing quote bps for the CROSS/moonpay warp route
- "show current moonpay fees" / "what are the current standing quotes?" → run
print-quotes.ts(see below)
Route Reference
CROSS/moonpay — EVM origin chains and source token labels:
| Chain | Source tokens |
| arbitrum | USDC, USDT |
| base | USDC, USDT |
| bsc | USDC, USDT |
| citrea | ctUSD |
| ethereum | USDC, USDT |
| katana | USDC, USDT |
| polygon | USDC, USDT |
Destinations include all the above chains plus solanamainnet.
Targets — destination router slot labels:
DEFAULT— fallback slot covering any router with no specific overrideUSDC— per-router slot for the USDC router on the destinationUSDT— per-router slot for the USDT router on the destinationctUSD— per-router slot for the citrea routerXO— per-router slot for the solanamainnet router
Parsing Natural Language → CLI Flags
| Concept in request | Flag | Value |
| origin chain(s) | --origins | comma-separated names or all |
| source token(s) on origin | --source-tokens | USDC, USDT, ctUSD, or all |
| destination chain(s) | --destinations | comma-separated names or all |
| destination router target(s) | --targets | DEFAULT, USDC, USDT, or all |
| fee amount | --bps | number (e.g. 3, 5, 0.5) |
| quote lifetime | --ttl | duration with unit suffix (24h, 2d, 86400s) |
Heuristics:
- "from X" →
--origins X - "USDC/USDT" before "→" or "to" →
--source-tokens - "to X" / "→ X" as destination chain →
--destinations X - "USDT destinations" / "USDC targets" →
--targets USDT/USDC - target not mentioned →
--targets DEFAULT - "all ..." →
all - TTL not mentioned →
--ttl 24h
Examples:
"update all fees from arbitrum usdc to all usdt destinations to 5bps"
→ --origins arbitrum --source-tokens USDC --destinations all --targets USDT --bps 5 --ttl 24h
"set katana to arbitrum default fee to 3bps"
→ --origins katana --source-tokens all --destinations arbitrum --targets DEFAULT --bps 3 --ttl 24h
"update all moonpay fees to 3bps"
→ --origins all --source-tokens all --destinations all --targets all --bps 3 --ttl 24h
"set ethereum USDT → base and polygon DEFAULT to 4.5bps with 7d TTL"
→ --origins ethereum --source-tokens USDT --destinations base,polygon --targets DEFAULT --bps 4.5 --ttl 7dAmbiguity
Ask ONE clarifying question before proceeding if any dimension is unclear:
- Target not specified → ask whether they mean
DEFAULTonly or all per-router slots too - "all fees" with no further detail → confirm ALL origins × ALL tokens × ALL destinations × ALL targets
- Destination sounds like a token name (e.g. "to USDT") → clarify if it's a target or a destination chain
Execution Flow
Step 1 — Derive flags from the request.
Step 2 — Preview with --dry-run to confirm the exact lanes and current→new bps against live on-chain state (no signer/submitter keys are needed for this):
cd <monorepo-root> && pnpm tsx typescript/infra/scripts/moonpay/set-quotes.ts \
-r http://localhost:3333 \
--origins <origins> \
--source-tokens <source-tokens> \
--destinations <destinations> \
--targets <targets> \
--bps <bps> \
--ttl <duration, e.g. 24h> \
--dry-runFind the monorepo root with git rev-parse --show-toplevel if needed. The HTTP registry (-r http://localhost:3333) provides private RPC URL overrides — start it first with /start-http-registry if it isn't running.
Step 3 — Run it for real, immediately and without asking for approval: re-run the same command with --dry-run swapped for --yes (GCP defaults are used automatically for signer/submitter keys):
cd <monorepo-root> && pnpm tsx typescript/infra/scripts/moonpay/set-quotes.ts \
-r http://localhost:3333 \
--origins <origins> \
--source-tokens <source-tokens> \
--destinations <destinations> \
--targets <targets> \
--bps <bps> \
--ttl <duration, e.g. 24h> \
--yesStep 4 — Summarize the result in plain language, grouped by lane, before showing raw output. For each lane report old→new bps, or (unchanged, was already correct) when the current value already matched the target — plus the TTL used:
Done. Katana↔katana quotes now:
- USDC→USDC: 3bps (unchanged, was already correct)
- USDT→USDT: 3bps (unchanged, was already correct)
- USDC→USDT: 3→30bps, 7-day TTL
- USDT→USDC: 18→30bps, 7-day TTLThen show the script's raw output below the summary so the user can verify the actual submissions. Surface any errors clearly without retrying silently.
Reading Current Standing Quotes
When the user asks to see current fees or standing quotes (e.g. "show me the current moonpay fees", "what bps are we charging?"), run print-quotes.ts instead:
cd <monorepo-root> && pnpm tsx typescript/infra/scripts/moonpay/print-quotes.ts \
-r http://localhost:3333Show the output directly. No confirmation needed — this is read-only.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-registry-changesetSkill
- build-docker-imageSkill
- classify-onchain-ownerSkill
- code-reviewSkill
- debug-messageSkill
- debug-rpc-providerSkill
- debug-validator-checkpoint-inconsistencySkill
- denylist-stuck-messagesSkill
- fetch-linear-ticketSkill
- fetch-safe-tx-batchSkill
- find-docker-imageSkill
- fix-merkle-root-mismatchSkill
- fix-rpc-urlsSkill
- gcp-logsSkill
- hyperlane-message-utilsSkill
- hyperlane-utilsSkill
- inline-pr-commentsSkill
- investigate-merkle-root-mismatchSkill
- investigate-stuck-messagesSkill
- registry-yaml-sort-policySkill
- security-reviewSkill
- self-relay-hyperlane-messageSkill
- start-http-registrySkill
- stop-http-registrySkill
- svm-warp-alt-manageSkill
- svm-warp-program-upgradeSkill
- tob-reviewSkill
- verify-warp-contractsSkill
- warp-balancesSkill
- warp-deploy-fund-deployerSkill
- warp-deploy-init-routeSkill
- warp-deploy-nexusSkill
- warp-deploy-register-routeSkill
- warp-deploy-select-keysSkill
- warp-deploy-send-testSkill
- warp-deploy-update-ownersSkill
- warp-deploy-validate-ownersSkill
- warp-forkSkill
- warp-key-value-expansionSkill
- warp-manage-offchain-quotesSkill
- warp-route-checkSkill
- warp-run-logSkill
- warp-simulate-svm-txsSkill
- warp-update-extendSkill
- warp-update-proposeSkill
- warp-update-resolve-artifactsSkill
- warp-updateSkill
- warp-verify-onchain-configSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

