AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Xrpl Go

skill-peersyst-xrplskills-xrpl-go · by Peersyst

Apply opinionated rules and security patterns to Go code that uses the Peersyst/xrpl-go client library to interact with the XRP Ledger. Use when users want to write a new XRPL integration in Go, review or refactor existing xrpl-go code, sign or submit a transaction, construct or credit a payment, subscribe to ledger or transaction streams, work with issued currencies, AMM, NFToken, escrow, or pay…

No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-peersyst-xrplskills-xrpl-go

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-peersyst-xrplskills-xrpl-go)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Xrpl Go? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

xrpl-go

Each rule under rules/ is self-contained: a short prose summary of the failure mode and the idiomatic fix, with links to the relevant package source under Peersyst/xrpl-go and a runnable example under examples/. Use the index below to jump to the rule that fits the task.

This skill is not an API reference. For exhaustive type signatures, see pkg.go.dev/github.com/Peersyst/xrpl-go. For XLS protocol specs, use the companion [xrpl-standards](../xrpl-standards) skill — when work touches AMM, MPT, NFToken, Credentials, Batch, etc., load both skills.

Read first: Security

These four rules are non-negotiable. Funds have been lost over every one of them.

  • [security-partial-payment](rules/security-partial-payment.md) — always credit meta.DeliveredAmount, never the transaction Amount on incoming payments. Partial-payment inflation is the canonical XRPL exchange exploit.
  • [security-validate-meta](rules/security-validate-meta.md) — a preliminary tesSUCCESS from SubmitTxBlob does not mean the tx was applied. Wait for Validated == true on the TxResponse.
  • [security-lastledgersequence](rules/security-lastledgersequence.md) — never skip client.Autofill(&flatTx) before signing. Autofill is what sets LastLedgerSequence, Sequence, Fee, and NetworkID.
  • [security-validate-destination-tag](rules/security-validate-destination-tag.md) — check the destination's LsfRequireDestTag flag before sending; xrpl-go does not.

What to read when

Map the user's task to the rules to consult before writing code.

| User's task or phrase | Read these rules | |---|---| | "Credit an incoming payment", "watch for payments", "deposit handler" | security-partial-payment, security-validate-meta, ws-lifecycle | | "Sign and submit", "send a transaction", "send XRP" | tx-autofill-and-sign, tx-submitandwait, security-lastledgersequence, tx-handle-tec-codes | | "Set up an exchange deposit address", "custodial account" | security-validate-destination-tag, wallet | | "Generate a wallet", "key management" | wallet | | "Connect to rippled", "websocket", "subscribe to a stream" | client, ws-lifecycle | | "Balance math", "convert XRP / drops", "IOU value" | amounts | | "Retry a failed tx", "tec error" | tx-handle-tec-codes, tx-idempotent-retry, tx-submitandwait | | "List trust lines / NFTs / offers", "accountlines", "accountobjects" | read-pagination-marker | | "Audit our xrpl-go integration" | Read all security-* rules first, then amounts, wallet, and ws-lifecycle. |

Full rule index

Impact tags below match each rule file's frontmatter (CRITICAL, HIGH, MEDIUM).

Security

  • [security-partial-payment](rules/security-partial-payment.md) — CRITICAL — Read meta.DeliveredAmount, not the transaction Amount
  • [security-validate-meta](rules/security-validate-meta.md) — CRITICAL — Wait for TxResponse.Validated == true before crediting
  • [security-lastledgersequence](rules/security-lastledgersequence.md) — CRITICAL — Always client.Autofill(&flatTx) before signing
  • [security-validate-destination-tag](rules/security-validate-destination-tag.md) — CRITICAL — Honor LsfRequireDestTag on the destination account

Amounts & numbers

  • [amounts](rules/amounts.md) — CRITICAL — Drops + currency.XrpToDrops for XRP, pkg/big-decimal for IOUs, never float64; respect the 15-digit IOU mantissa

Client & connection

  • [client](rules/client.md) — HIGHrpc.Client for one-shots, websocket.Client for streams; share the client, don't construct per call
  • [ws-lifecycle](rules/ws-lifecycle.md) — HIGH — Register handlers, Connect, Subscribe; on shutdown Disconnect. Never call Connect() inside a handler. Don't block in handlers.

Wallet & signing

  • [wallet](rules/wallet.md) — CRITICALwallet.New(crypto.ED25519()) by default; never log Seed / PrivateKey; SetRegularKey for hot wallets

Transactions & submission

  • [tx-autofill-and-sign](rules/tx-autofill-and-sign.md) — HIGHtx.Flatten()client.Autofill(&flatTx)wallet.Sign(flatTx)client.SubmitTxBlobAndWait(blob, false)
  • [tx-submitandwait](rules/tx-submitandwait.md) — HIGH — Prefer SubmitTxBlobAndWait / SubmitTxAndWait over SubmitTxBlob / SubmitTx
  • [tx-handle-tec-codes](rules/tx-handle-tec-codes.md) — HIGH — Branch on meta.TransactionResult: tec* is applied-but-failed (fee burned, sequence consumed)
  • [tx-idempotent-retry](rules/tx-idempotent-retry.md) — HIGH — Reuse Sequence or a TicketSequence on retry; do not blindly re-Autofill
  • [read-pagination-marker](rules/read-pagination-marker.md) — MEDIUM — Loop on Marker for paginated Get* requests

How to use a rule file

Once you have picked a rule from the table above, read its file:

Read /rules/.md

` resolves to wherever the skill is installed — ~/.claude/skills/xrpl-go/ for a user-level Claude Code install, .claude/skills/xrpl-go/ for a project-level install, /mnt/skills/user/xrpl-go/` on claude.ai, or a plugin-managed path. Don't hard-code the directory; rely on the path the host resolves.

Each rule file contains:

  • Frontmattertitle, impact (CRITICAL / HIGH / MEDIUM), tags, and where applicable xrpl_go_source, upstream_docs, example. Fields with no good link are omitted; treat any of these as optional metadata.
  • Why it matters — one or two sentences explaining the failure mode.
  • The fix — a prose summary of the idiomatic Go pattern, naming the exact xrpl-go types and helpers involved.
  • Notes — edge cases, related amendments, version caveats.
  • See also — explicit links back to the relevant xrpl-go package source and a runnable example under examples/.

Runnable examples

The rules in this skill explain what to do and why. When you need a runnable, end-to-end example — how to actually construct, sign, and submit a transaction — go to the xrpl-go examples directory. They are maintained alongside the library and stay current with the API. Prefer them over inventing example code.

| Task | Example | |---|---| | Send XRP (RPC + WS variants) | send-xrp, send-payment | | Partial payment | partial-payment | | Subscribe to ledger / transaction streams | subscription | | Multi-signing | multisigning | | Use Tickets for parallel submission | use-tickets | | Regular key / disable master | set-regular-key | | Account / ledger queries | queries, ledger | | Batch transactions | batch | | Issued currency / clawback | token-issuance, clawback | | NFTs | nft | | MPT | mptoken | | Faucet | faucet |

Companion skill: xrpl-standards

If the task touches a specific XLS amendment (AMM, MPT, NFToken, Credentials, Batch, DID, Clawback, Permissioned DEX, etc.), load the [xrpl-standards](../xrpl-standards) skill alongside this one. That skill holds the raw spec text — field definitions, transaction formats, ledger objects, failure conditions — that this skill deliberately does not duplicate.

Authoritative external resources

  • xrpl-go API reference: https://pkg.go.dev/github.com/Peersyst/xrpl-go
  • xrpl-go source: https://github.com/Peersyst/xrpl-go
  • xrpl-go examples: https://github.com/Peersyst/xrpl-go/tree/main/examples
  • Protocol docs: https://xrpl.org/docs
  • Standards (XLS): load the [xrpl-standards](../xrpl-standards) skill

Source & license

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

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

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.