Skip to content

How it works

What happens between the link and the money

No black box. Here is every step, including the four checks that must pass before a payment is allowed to say Paid.

For merchants

Three steps on your side

  1. 01

    Sign in with your wallet

    Connect a wallet and sign a plain message. It is not a transaction and cannot move funds — it just proves you control the address that will receive payments.

  2. 02

    Create the request

    Pick ETH or USDG, enter an amount, optionally attach an invoice id and description. You get a link and a QR immediately.

  3. 03

    Watch it settle

    The dashboard shows every link and its status. When the chain confirms a payment, the row flips to Paid with the transaction hash attached.

For your customer

Three steps on their side

  1. 01

    Open the link

    They see the amount, the asset, the network, your receiving address and a QR code. No account and no signup.

  2. 02

    Pay from their wallet

    Scan the QR, or connect and press Pay. Their wallet shows the transaction; they approve it. Droppy never touches their keys.

  3. 03

    See it confirmed

    The page tracks the transaction and updates itself as confirmations arrive, ending with the hash and an explorer link.

Verification

The four checks before anything says Paid

1. The receipt succeeded
We fetch the transaction receipt from a Robinhood Chain node. A reverted transaction moves no funds and is reported as failed. No receipt yet but seen in the mempool means Confirming; not seen at all means still Waiting.
2. The funds reached your address
For USDG we decode Transfer events emitted by the token contract and sum only those whose recipient matches your address. For ETH we check the transaction's destination directly.
3. The amount is right
The transferred amount must be at least the amount requested. Underpayment is refused and reported with both figures.
4. Confirmations cleared
The transaction must be at least two blocks deep. Below that the payment stays in Confirming and the page keeps checking.

All four run on the server, against the chain. A wallet reporting that it submitted a transaction is never treated as evidence of payment, because a browser can claim anything.

Edge cases

What we do when it is not the happy path

Repeat checks are safe

Verification is idempotent: asking about the same transaction twice always converges on the same stored answer, which is what makes polling safe.

One transaction, one link

A hash recorded against a link cannot settle another, enforced in the application, in a locking transaction, and by a unique database index.

Expiry is honest

Expiry is derived when a link is read, so a link that has passed its window reports as expired even if nothing swept it.

Ready to accept crypto?

Create your first payment link in under a minute. No signup form, no API key.