Tipping
Account-owned tipping; no merchant required.
Public entries /payment (merchant payments) and /link (general payment collection) currently redirect temporarily to the homepage. Dashboard URLs are unchanged.
Wallet cards show network and public address. New listeners require server-enabled networks and tokens; old display addresses are not automatically monitored. The public profile displays configured wallets, their addresses and QR codes independently of the payment form. The payment form is hidden when no monitored wallets are available. Static Story QR codes still point to one address. Public tipping links use https://polypay.ai/tip/{token}. Existing checkout-domain profile links redirect to the main domain and preserve the language and channel parameters.
The public page and editor preview use the same centered profile layout: avatar, name, introduction, wallet icons, QR code and address. The public page fills the screen on phones and uses a 580px column on desktop, without checkout navigation. Share opens a bottom sheet on phones and a centered dialog on desktop. The editor can switch between phone and web previews.
Upload a local profile image and confirm the 256×256 crop. After upload, the avatar updates in the live preview and saves automatically. Canceling or a failed upload keeps the previous avatar. Merchant avatars are unchanged.
New pages start with a default introduction that you can edit or clear. Existing introductions remain unchanged.
Changes in every tab save automatically about 800 ms after editing stops, without a Save button or saving-status messages. The preview updates immediately. Invalid drafts and image uploads pause saving. Failed saves retain your edits and provide a retry; do not leave while an error remains.
The Share button in the preview’s top-right corner opens a dialog with your avatar, name and introduction. Copy the link or open X, Facebook, WhatsApp, LinkedIn or Telegram to confirm sharing there. Instagram uses link copying or Story export; sharing never publishes automatically. In the editor, the dialog and overlay stay inside the preview: a bottom sheet on phone previews and a centered dialog on web previews. The editing form remains usable; the public page retains its full-screen overlay.
All platforms share the tipping link and receiving wallets. GitHub exports a README badge, X uses saved metadata, and Instagram exports a Story with independently saved profile details. Changes save automatically.
X uses a fixed post sample, a customizable title and an uploaded image or the PolyPay default image. The title overlays the image; only the domain appears below. The page biography supplies description metadata. Payments open on PolyPay.
The share menu includes X, Threads, Facebook, Instagram, Discord, WhatsApp, Telegram, LinkedIn, Bluesky, Reddit and LINE. Web share buttons open a composer or sharing page; you decide whether to publish. Instagram and Discord copy the link and show where to paste it. Sharing options stay on one row. Swipe horizontally, or hover over the row and use the arrows to scroll.
Platform tabs switch settings and preview. GitHub badge text and X card title and image are saved per account. X uses a fixed sample post and the tipping page biography. Instagram Story has its own avatar, name and introduction. New pages prefill editable GitHub badge text and the X card title in the current language. Existing or deliberately cleared values are not replaced.
GitHub settings only edit the badge label. The preview uses sample README text rather than your profile. Copy Markdown exports only the linked badge; the sample text is not included.
Choose an emoji beside the GitHub badge label or type your own at the start of the text. The preview and copied Markdown use the same label, without a PolyPay logo.
Hover and click the X image to replace it, then crop to 1200×630. Changes save automatically. Images cannot be deleted and do not change merchant avatars.
Story avatar, name and introduction are saved independently. Initially they are copied from the tipping page; later edits do not sync. Select one shared receiving chain from the dropdown; add chains on the tipping page. Preview and download match at 1440×2560 (9:16), without top or copy buttons. Long content scales to fit. Add a tipping Link sticker in Instagram.
Only registered, monitored tipping wallets can generate verified records. Direct transfers to unmonitored wallets cannot be automatically confirmed or recorded. Check these transfers in your wallet or a blockchain explorer.
Payment confirmation and thanks require server-verified receipt. An address copy, hash submission or thanks URL proves nothing. Messages are creator-private; static address QR transfers cannot guarantee session attribution.
Wallet-mode donations bind the payer address when the session is created. A transaction hash is verification evidence, not confirmation that funds arrived.
After a wallet broadcasts a donation, retry verifies the existing transaction rather than sending funds again. The browser retains its hash and serializes payment across tabs. An unknown broadcast result blocks another payment; check your wallet and submit the existing hash. This requires browser storage, Web Locks and configured wallet connectivity.
When needed, enter the zero-based position in all logs of the complete transaction receipt, including unrelated logs. It is not the block-wide logIndex shown by some explorers.
Wallet payments use exact token quantities converted from a trusted USD quote. QR payments add a matching suffix but must remain within the USD maximum. Ambiguous transfers remain unmatched until verification; expiry does not prove attribution.
USD quotes are bound to the network and token contract, not the token name. Stablecoins are not fixed at 1 USD; stale or unavailable prices cannot be used for new payments.
The requested amount is in USD, while the payment amount is in tokens. USD accepts at most two decimal places; the server resolves the token quantity from a trusted quote. The committed USD amount, price and token quantity remain unchanged when retrying or editing page settings. For QR payments, use the full displayed token amount, including its allocation suffix.
Choose a receiving wallet, token, payment method and USD amount on the public profile. Optional messages are delivered after confirmation. Wallet mode connects the real sender without transferring at this step. Interrupted creation preserves the original request in the same tab; refresh or language changes do not reprice it. Reopen the created session or explicitly start another tip.
Payable assets in a donation session come from registered monitoring and live asset verification, not the full chain list on the wallet display page. A failed query or stale scan state cannot create a new session. Existing sessions retain their original receiving snapshot.
Wallet registration calls the original scanner's address/create API with a stable idempotency key. Income synchronization reads its transfer/list cursor instead of creating another block scanner. Wallet registration uses symbol: ALL without a contract snapshot or token selector. Each address tracks native coins and all currently enabled system contracts on its chain. Adding, enabling or disabling a contract through the scanner configuration API refreshes the monitoring cache for existing addresses; no re-registration is required. Changes apply to subsequent scanning and do not automatically rescan historical blocks. Previously recorded income is preserved. Invalid receiving addresses return code 10027 and localized format guidance, without registration. Successful synchronous registration immediately reports listening (Monitoring enabled). First statistics synchronization is separate; scan errors, stale progress and paused states remain visible.
New listening wallets are limited to server-configured networks and tokens. Pending registrations occupy wallet quota; retry the same address to recover rather than repeatedly adding wallets. Each account can add at most 5 tip wallets. Display-only wallets, pending registrations and paused wallets all count toward this limit; retrying an existing registration does not use another slot.
Wallet registration and statistics reuse the existing multi-chain scanner. Networks and assets, including native coins, follow its enabled database configuration. Exact income is synchronized by owned address and an idempotent transfer cursor, separately per asset. Recorded means scanner ingestion, not independent RPC confirmation, and does not automatically trigger thanks or message delivery. Existing verified receipts are preserved. Failed registrations can retry the same reserved address; display-only wallets are not automatically monitored. The selector includes the component’s complete chain catalog. Other chains are collapsed; selecting one requires a warning confirmation and saves it as display-only (display_only: true), without starting monitoring. This wallet will disappear from your tipping page and stop being monitored. Its slot is released; past tips and messages are kept.
Manage thank-you text and message permissions on Tipping → Interaction. Changes save automatically and apply only to new sessions, independently of page and Instagram profiles. View donor messages alongside transfers in Tipping → Overview. Only messages delivered after confirmed payment are displayed; drafts and revoked payments are excluded. Messages remain private to the creator.
Delivered messages create one private inbox reminder; drafts do not. Reminders contain no message text, wallet address or paid-status claim. Check current status in the records. Reconfirmation preserves read state and does not duplicate reminders. No email, push or merchant Webhook is sent.
The account-authenticated Overview page shows only confirmed transfers and their delivered donor messages. Confirming, revoked, review-required and scanner-only records are excluded. Search and filters apply to the record list; the account statistics remain independent. Records show the donor, amount, network, token, time and message; technical transaction details are hidden. Overview is the first Tipping page, with the daily chart at the top, followed by statistics, asset totals and confirmed tip records. Search automatically runs after typing pauses; clearing the input removes the keyword filter. Partial matches cover nickname, delivered message, network, token, exact decimal amount, UTC receipt time, transaction hash and addresses. Network filters remain independent. The sender wallet address is the primary identifier. No donor avatar is shown; any nickname is self-entered and appears only as secondary information.
Statistics include scanner-recorded income and independently confirmed receipts outside quarantine. Exact totals are grouped by network and contract, including native assets. Different assets are not summed or converted to USD; the 30-day chart uses the account timezone.
Tipping page
Configure receiving and edit your profile; changes save automatically.
Automatic saving publishes the page without a draft or enable switch. Configure receiving before accepting tips. The Tipping page preview shows the public link in a browser-style address bar above the preview; copy it or open it in a new tab.
Tipping management always uses production, with no environment switch. Account sign-in is required; merchant API keys are not accepted.
Create tipping page