diff --git a/pages/learn/checks.js b/pages/learn/checks.js new file mode 100644 index 000000000..94eb44b75 --- /dev/null +++ b/pages/learn/checks.js @@ -0,0 +1,316 @@ +import { serverSideTranslations } from 'next-i18next/serverSideTranslations' +import SEO from '../../components/SEO' +import { getIsSsrMobile } from '../../utils/mobile' +import { nativeCurrency, network } from '../../utils' +import { explorerName, xahauNetwork, webSiteName, ledgerName } from '../../utils' +import Link from 'next/link' +import Image from 'next/image' +import Breadcrumbs from '../../components/Breadcrumbs' + +export async function getServerSideProps(context) { + const { locale } = context + return { + props: { + isSsrMobile: getIsSsrMobile(context), + ...(await serverSideTranslations(locale, ['common'])) + } + } +} + +export default function Checks() { + const imagePath = '/images/' + (xahauNetwork ? 'xahau' : 'xrpl') + 'explorer/learn/checks/' + return ( + <> + +
+ +
+

{explorerName} checks Explained

+
+
+ Checks +
{explorerName} checks
+
+
+

+ The {ledgerName} offers many powerful features beyond simple payments — including checks, an underutilized + but highly flexible mechanism for {nativeCurrency} transfers. +

+

+ In this article, we explain what {explorerName} checks are, when and why to use them, and how you can create + and redeem checks using {xahauNetwork ? 'Xahau Explorer' : 'Bithomp XRP Explorer'}. +

+ +

What are checks on the {ledgerName}?

+ +

+ A Check is a transaction type that allows one account to promise a payment that can be claimed later by a + designated recipient. +

+ +

Unlike ordinary payments that settle immediately, a check:

+ +
    +
  • Is created and stored on-ledger until redeemed or expired
  • +
  • Requires the intended recipient to claim it — funds do not transfer automatically
  • +
+ +

+ A check works like a traditional bank check, but it is created and stored directly on the {ledgerName}, + where its status can be publicly verified. +

+ +

When and Why Use checks?

+ +

+ Common use cases include: +

+ +

Manual claiming of funds

+ +

+ checks allow the recipient to decide when to redeem the {nativeCurrency}. The payment does not settle + automatically — the recipient must claim it. +

+ +

+ This is useful when a transfer should not be completed immediately, for example pending internal approval or + recipient confirmation. The funds remain in the sender’s account until the check is redeemed, providing + flexibility without locking funds in escrow. +

+

Verifiable payment promises

+ +

Because the check object exists on-ledger, it acts as a publicly verifiable payment commitment.

+ +

Deposit authorization restrictions

+ +

+ If the recipient has enabled Deposit Authorization and does not accept direct payments from unknown + accounts, a check provides a practical workaround. Instead of sending funds immediately, you issue a check + that the recipient can explicitly approve and redeem. +

+ +

+ By the way, if you need to enable or disable the Deposit Authorization flag, you can do so here:{' '} + Account settings page. +

+ +

Sending tokens without an existing trustline

+ +

checks are also useful when the recipient has not yet established a trust line for a specific token.

+ +

+ A direct Payment would fail if the required trust line does not exist. However, a check can still be + created. Once the recipient sets up the trust line, they can redeem the check using a CheckCash transaction. +

+ +

Difference from Escrow

+
+
+ Checks vs Escrows +
Checks vs Escrows
+
+
+

+ Check: Funds remain in the sender’s account until redeemed. Recipient action is required to + claim the payment. Flexible and recipient-controlled. +

+ +

+ Escrow: Funds are locked in the ledger until specific conditions (like a time or approval) + are met. Less flexible, but enforces settlement automatically. +

+
+

+ + 💡 + {' '} + Learn more about Escrows on {ledgerName} +

+
+

How checks Work

+ +

1. Creating a check

+ +

The sender initiates a CheckCreate transaction, specifying all the necessary information.

+ +

+ Once processed, the {ledgerName} creates a check object. This object can later be removed by either the + sender or recipient using a CheckCancel transaction. +

+ +

2. Redeeming a check

+ +

+ The recipient redeems the check by submitting a CheckCash transaction, which transfers the funds and deletes + the check object. +

+ +

+ Because the funds for a check are not reserved, redemption can fail if the sender’s balance is insufficient + or there isn’t enough liquidity to complete the transfer. In such cases, the check stays on the ledger, and + the recipient can attempt to cash it again later, either for the same or a different amount. The recipient + can choose how much of the check to claim, but if he receives less than the full amount on the first + attempt, there is no second chance to claim the remainder. +

+ +

3. Expired checks

+ +

+ If the recipient does not redeem the check before it expires, the check object remains on the ledger until + it is canceled by the sender or recipient. +

+ +

Create and Redeem checks on {xahauNetwork ? 'Xahau Explorer' : 'Bithomp'}

+ +

+ {xahauNetwork ? 'Xahau Explorer' : 'Bithomp XRP Explorer'} provides a user-friendly interface for working + with checks. +

+ +

Create a check

+ +

+ You can issue a check HERE +
+

+
+
+ Issue a check +
Issue check on {ledgerName}
+
+
+

Specify:

+ +
    +
  • The recipient’s account
  • +
  • The amount that can be claimed
  • +
  • An optional expiration period
  • +
  • Destination tag (if required)
  • +
  • Memo (will be public)
  • +
+ +

This removes the need to manually construct and submit {ledgerName} transactions.

+

+ Besides, our PRO Subscribers can also specify a custom transaction fee, Invoice ID, and Source Tag when + creating a check, under Advanced Options. +

+
+
+ Advanced options for check creation +
+
+
+

+ + 💡 + {' '} + Upgrade to Pro Here +

+
+ +

Redeem a check

+ +

To redeem a check issued to your address:

+ +
+
+ Redeem a check +
Redeem checks on {webSiteName}
+
+
+
    +
  • + Visit your Account page +
  • +
  • View received checks associated with your address
  • +
  • Click “Redeem”
  • +
  • Sign the CheckCash transaction using any of the available signing options.
  • +
+ +

After confirmation, {nativeCurrency} is credited to your account.

+ +

Why Use {xahauNetwork ? 'Xahau Explorer' : 'Bithomp'} for checks?

+ +

+ Although checks are a native {ledgerName} feature, interacting with them directly can require manual + transaction construction. +

+ +

We simplify the process by:

+ +
    +
  • Offering a user-friendly web interface for quick and easy check creation.
  • +
  • + Supporting wallet-based signing (Ledger, Xaman, Gem, MataMask, WalletConnect, CROSSMARK, and others ). +
  • +
  • + Displaying issued and received checks on your account page which can be immediately redeemed or canceled. +
  • +
+ +

Final Thoughts

+ +

checks are a powerful but often overlooked feature of the {ledgerName}. They provide:

+ +
    +
  • Controlled payment settlement
  • +
  • Recipient-initiated redemption
  • +
  • On-ledger verification of payment commitments
  • +
+ +

+ For use cases where immediate transfers are not ideal, checks offer a practical alternative without + requiring complex smart contract logic. +

+

+ 🔥 With {xahauNetwork ? 'Xahau Explorer' : 'Bithomp'}, creating and redeeming checks is simple, intuitive, + and efficient — making advanced {ledgerName} features easy to use for everyone, not just developers. +

+
+
+
+
+ + ) +} diff --git a/pages/learn/index.js b/pages/learn/index.js index 53394b028..3c1294e18 100644 --- a/pages/learn/index.js +++ b/pages/learn/index.js @@ -49,7 +49,8 @@ const buildLearnContent = () => { { title: 'Bithomp Image Services', slug: 'image-services' }, { title: 'Understanding Trustlines', slug: 'trustlines' }, { title: 'NFT Explorer', slug: 'nft-explorer' }, - { title: 'Send Payments with us: Key Benefits', slug: 'send-payments' } + { title: 'Send Payments with us: Key Benefits', slug: 'send-payments' }, + { title: 'Checks explained', slug: 'checks' } ] } ] diff --git a/pages/services/check.js b/pages/services/check.js index 7769668f8..df29e377a 100644 --- a/pages/services/check.js +++ b/pages/services/check.js @@ -25,7 +25,7 @@ import { amountFormat, fullDateAndTime, timeFromNow, shortHash } from '../../uti import { LinkTx, LinkAccount } from '../../utils/links' import Link from 'next/link' import { errorCodeDescription } from '../../utils/transaction' - +import { explorerName} from '../../utils' export default function IssueCheck({ setSignRequest, sessionToken, @@ -239,6 +239,12 @@ export default function IssueCheck({

Issue Check

+

+ A check lets you send funds that the recipient can claim later.{" "} + + Learn more about checks on {explorerName}. + +

diff --git a/public/images/pages/learn/checks/checks-escrows.png b/public/images/pages/learn/checks/checks-escrows.png new file mode 100644 index 000000000..ad069f6eb Binary files /dev/null and b/public/images/pages/learn/checks/checks-escrows.png differ diff --git a/public/images/xahauexplorer/learn/checks/advanced.png b/public/images/xahauexplorer/learn/checks/advanced.png new file mode 100644 index 000000000..f14fa384d Binary files /dev/null and b/public/images/xahauexplorer/learn/checks/advanced.png differ diff --git a/public/images/xahauexplorer/learn/checks/cover.jpg b/public/images/xahauexplorer/learn/checks/cover.jpg new file mode 100644 index 000000000..4dd415099 Binary files /dev/null and b/public/images/xahauexplorer/learn/checks/cover.jpg differ diff --git a/public/images/xahauexplorer/learn/checks/redeem.png b/public/images/xahauexplorer/learn/checks/redeem.png new file mode 100644 index 000000000..2c2d997f8 Binary files /dev/null and b/public/images/xahauexplorer/learn/checks/redeem.png differ diff --git a/public/images/xahauexplorer/learn/checks/screen.png b/public/images/xahauexplorer/learn/checks/screen.png new file mode 100644 index 000000000..6b6525f6f Binary files /dev/null and b/public/images/xahauexplorer/learn/checks/screen.png differ diff --git a/public/images/xrplexplorer/learn/checks/advanced.png b/public/images/xrplexplorer/learn/checks/advanced.png new file mode 100644 index 000000000..77de12e1a Binary files /dev/null and b/public/images/xrplexplorer/learn/checks/advanced.png differ diff --git a/public/images/xrplexplorer/learn/checks/cover.jpg b/public/images/xrplexplorer/learn/checks/cover.jpg new file mode 100644 index 000000000..631e2b17d Binary files /dev/null and b/public/images/xrplexplorer/learn/checks/cover.jpg differ diff --git a/public/images/xrplexplorer/learn/checks/redeem.png b/public/images/xrplexplorer/learn/checks/redeem.png new file mode 100644 index 000000000..edfbdfb06 Binary files /dev/null and b/public/images/xrplexplorer/learn/checks/redeem.png differ diff --git a/public/images/xrplexplorer/learn/checks/screen.png b/public/images/xrplexplorer/learn/checks/screen.png new file mode 100644 index 000000000..6109014e0 Binary files /dev/null and b/public/images/xrplexplorer/learn/checks/screen.png differ