Crypto + Tip Jar

Donation and tipping component with QR code, wallet address or handle display, and copy-to-clipboard. Supports crypto chains (Ethereum, Bitcoin, Solana, and more) and platforms (PayPal, Ko-fi, Patreon). Six layout variants for different contexts.

uqrlucide-react

Preview

Support this project

Choose your preferred network

0x1a2B3c4D5e6F7890AbCdEf1234567890aBcDeF12

Installation

$ shadcn add https://ui.justinlevine.me/r/tip-jar.json

Usage

import { TipJarCard, TipJarTabs, TipJarList, TipJarCompact, TipJarInline, TipJarQR } from "@/components/tip-jar"
<TipJarCard provider="ethereum" address="0x1a2B..." title="Support" />

Six layout variants are exported from the same file. Use TipJarTabs for multi-wallet donation cards with QR, TipJarList for stacked wallet rows, TipJarCard for single-provider cards, TipJarCompact for sidebars, TipJarInline for inline rows, and TipJarQR for standalone QR codes.

Examples

Wallet list

Multi-chain list

Donate

Pick any network

Ethereum0x1a2B3c…aBcDeF12
Bitcoinbc1qar0s…zzwf5mdq
Solana7EcDhSYG…zXwCFLtV
Base0x1a2B3c…aBcDeF12

Mixed crypto + platforms

Support my work

Ethereum0x1a2B3c…aBcDeF12
Bitcoinbc1qar0s…zzwf5mdq
PayPal@justinlevine
Ko-fi@justinlevine
Patreon@justinlevine

No title

EthereumUSDC0x1a2B3c…aBcDeF12
Solana7EcDhSYG…zXwCFLtV

Single-provider variants

Card

Buy me a coffee

Send ETH to support this project

Ethereum
0x1a2B3c4D5e6F7890AbCdEf1234567890aBcDeF12

Compact

Bitcoin
bc1qar…wf5mdq

BTC tips welcome

Inline

Solana
7EcDhS…wCFLtV

Inline + QR

Solana
7EcDhS…wCFLtV

QR Only

Ethereum

Scan to donate

Crypto chains

Ethereum

Ethereum
0x1a2B…cDeF12

Bitcoin

Bitcoin
bc1qar…wf5mdq

Solana

Solana
7EcDhS…wCFLtV

Base

Base
0x1a2B…cDeF12

Ethereum + USDC token

EthereumUSDC
0x1a2B…cDeF12

Platforms

PayPal — Card

Support my work

Send a tip via PayPal

PayPal
@justinlevine

Ko-fi — Compact

Ko-fi
@justinlevine

Buy me a coffee

Patreon — Inline

Patreon
@justinlevine

PayPal — Inline

PayPal
@justinlevine

Provider icons

Brand colors (default)

ethereum
bitcoin
solana
polygon
base
arbitrum
optimism
avalanche
bnb
litecoin
paypal
kofi
patreon

Muted (inherits text color)

ethereum
bitcoin
solana
polygon
base
arbitrum
optimism
avalanche
bnb
litecoin
paypal
kofi
patreon

When to use

  • TipJarTabs — accept donations across multiple chains or platforms in a single card with QR codes. Best for landing pages and sponsorship sections.
  • TipJarList — stacked list of wallet rows. No QR codes — just icon, address, copy, and explorer link per row. Good for footers and profile pages.
  • TipJarCard — full single-provider donation widget with QR, address, copy, and optional amount presets.
  • TipJarCompact — sidebar widget or footer placement where space is limited.
  • TipJarInline — inline address row with copy button. Good for dashboards and settings.
  • TipJarQR — standalone QR code for print materials, slides, or payment screens.

API Reference

Shared props

PropType

TipJarTabs

PropType

TipJarList

PropType

TipJarCard

PropType

TipJarQR

PropType

Notes

  • Client component. Uses the Clipboard API and interactive state (tab switching, preset selection).
  • QR generation. Powered by uqr — a zero-dependency, tree-shakable SVG QR code library.
  • Crypto vs. platform behavior. For crypto providers, the QR encodes a payment URI and the copy button copies the wallet address. For platforms, the QR encodes the donation URL and the copy button copies the URL.
  • Extensible providers. Add new chains or platforms by extending the providers map in lib/chains.ts.