A card processor sits in the middle of a payment by holding the money for a while. Rayl sits in the middle by writing and enforcing the rules of each payment, and the money never stops with us. The difference is easiest to see by following one payment from start to finish.
The four steps
- Your server creates a payment intent with an amount and a token, for example 100 USDC on Base. Rayl calculates the fee and signs the exact terms: the amount, the token, your verified receiving wallet, the fee rate and an expiry. You get back a client secret that your frontend can safely hold.
- The customer pays from their own wallet, on a hosted checkout page, a payment link or your own frontend. Their wallet signs two transactions: an approval for the token, then the payment call to Rayl’s contract.
- The contract checks Rayl’s signature against the terms and pays your wallet in the same transaction. On Checkout it splits off the 1% fee as the payment passes through. If anything doesn’t match the signed terms, the whole transaction reverts.
- Rayl watches the chain, waits for about 12 block confirmations, marks the intent confirmed and sends your server a signed webhook. That is your signal to ship.
What the contract enforces
The contract is a program on the blockchain that runs the same way for everyone and can’t be changed once it is deployed. For every payment it checks that:
- the signature is valid and the terms match it exactly,
- the money goes to one of your verified receiving wallets,
- each intent is paid only once, and never after it expires,
- the fee is at or below a cap written into the contract,
- only allowlisted tokens are accepted, and the full amount arrives.
Why the same invoice can’t be paid twice
If two payments for the same intent reach the chain at the same moment, the first one included in a block goes through and the second reverts. The second payer loses only the network fee, never the amount.
Where the money is at each step
At no point is it with Rayl. Before the payment it is in the customer’s wallet. During the payment it passes through the contract for a fraction of a second, inside a single transaction, and the contract keeps no balance between transactions. After the payment it is in your wallet.
Refunds and payouts work the other way round, because they move money out of your wallet. They only happen with your explicit approval on-chain: either you sign each one yourself, or you approve Rayl’s executor contract to spend up to an amount you choose. You can revoke that approval from your wallet at any time, and it takes effect in the next block.


