blink-tips
Live on devnet · MIT licensed

Recurring tips on Solana.
One link.

Share a Blink. One click opens a vault that streams SOL to you per slot. No keeper bots. No subscriptions. No middleman — a ~150-line Anchor program and the recipient claims whenever they want.

How it works

01
Deposit

Tipper signs one tx that opens a PDA-derived vault, locks in a per-slot vesting rate, and deposits SOL.

02
Stream

Every Solana slot (~400 ms), more lamports vest. Empty-vault periods don't accrue back-pay.

03
Claim

Recipient (or anyone cranking on their behalf) calls claim. The program pays out whatever has vested.

Why pull, not push? Solana has no native scheduler and Clockwork shut down in 2024. Keeper bots add centralization and liveness risk. Pull means zero off-chain infrastructure and gas is paid by the party who cares.

Generate your Blink

Paste the Solana pubkey you want tips sent to. The URL below renders as an inline "subscribe" card in any Blinks-aware client.

 

Shareable Blink URL
https://…/tip/<pubkey>

Paste this into X, Discord, Telegram, or any Blinks-aware client.

Preview · as rendered in a Blinks client
Tip
Open a recurring tip vault. Funds stream per-slot; recipient claims anytime.

Under the hood

Solana Actions, JSON in

The subscribe endpoint returns a standard Actions payload. Blink clients render the card inline, POST back the tipper's pubkey, and get an unsigned transaction to sign.

GET /api/actions/subscribe/<pubkey>

{
  "type": "action",
  "icon": "https://.../tip-icon.png",
  "title": "Tip 4Nd1…pump",
  "description": "Open a recurring tip vault...",
  "links": {
    "actions": [
      { "label": "0.1 SOL / 7 days", "href": "...?amount=0.1&days=7" },
      { "label": "0.5 SOL / 30 days", "href": "...?amount=0.5&days=30" },
      { "label": "Custom", "href": "...?amount={amount}&days={days}" }
    ]
  }
}