- Non-custodial — Swish never holds funds. The payer pays from their own wallet.
- No fees from Swish — the payer covers only the underlying privacy-protocol fee (see Fees).
- No web3 to bundle — the package ships no Solana or wallet dependencies.
Try it live
Configure a Plug, click the real button, and copy the snippet in the
interactive playground.
Install
Use the React component, or drop in the vanilla script — no build step needed.Quickstart
onSuccess fires with the transaction signature and your reference.
Options
Every option is optional — open the Plug with none of them and the payer enters the recipient and amount themselves. In practice you’ll usually setrecipient (so funds come to you), and most integrations also set amount, reference, and onSuccess.
React-only extras:
children (a custom trigger element that replaces the default button), plus className and style for the wrapper.
Custom trigger (React)
Passchildren to use your own button instead of the default:
How routing works
The Plug routes each payment through the best available privacy protocol automatically (Auto), choosing between MagicBlock and Privacy Cash. The payer doesn’t pick a protocol. See Privacy Protocols for how each works.The Plug is Pay-only and routes across MagicBlock and Privacy Cash. Umbra is not included. SOL payments route through Privacy Cash (MagicBlock is USDC-only), so a SOL payment is always a private Privacy Cash send.