$npx -y skills add keep-starknet-strange/starknet-agentic --skill starknet-mini-paySimple P2P payments on Starknet. Generate QR codes, payment links, invoices, and transfer ETH/STRK/USDC. Like Lightning, but native.
| 1 | # Starknet Mini-Pay Skill |
| 2 | |
| 3 | Simple P2P payments on Starknet. Like Lightning, but native. |
| 4 | |
| 5 | Related modules: [skills catalog](../README.md). |
| 6 | |
| 7 | ## When to Use |
| 8 | |
| 9 | - Generating payment links, QR codes, invoices, or Telegram payment flows on Starknet. |
| 10 | - Sending simple user-to-user ETH, STRK, or USDC transfers with payment UX around them. |
| 11 | |
| 12 | ## When NOT to Use |
| 13 | |
| 14 | - DeFi-specific swaps, staking, or lending flows. |
| 15 | - Cairo contract authoring, deployment-only tasks, or security auditing. |
| 16 | |
| 17 | ## Overview |
| 18 | |
| 19 | ``` |
| 20 | ┌─────────────────────────────────────────────────────────┐ |
| 21 | │ STARKNET MINI-PAY │ |
| 22 | ├─────────────────────────────────────────────────────────┤ |
| 23 | │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ |
| 24 | │ │ QR Codes │ │ Payment │ │ Telegram Bot │ │ |
| 25 | │ │ Generator │ │ Links │ │ Interface │ │ |
| 26 | │ └─────────────┘ └─────────────┘ └─────────────────┘ │ |
| 27 | │ │ │ │ │ |
| 28 | │ └────────────────┴───────────────────┘ │ |
| 29 | │ │ │ |
| 30 | │ ┌─────────▼─────────┐ │ |
| 31 | │ │ starknet-py │ │ |
| 32 | │ │ SDK + RPC │ │ |
| 33 | │ └──────────────────┘ │ |
| 34 | │ │ │ |
| 35 | │ ┌───────────────┼───────────────┐ │ |
| 36 | │ ▼ ▼ ▼ │ |
| 37 | │ ┌─────────┐ ┌──────────┐ ┌──────────┐ │ |
| 38 | │ │ ArgentX │ │ Braavos │ │ Generic │ │ |
| 39 | │ │ Account │ │ Account │ │ Account │ │ |
| 40 | │ └─────────┘ └──────────┘ └──────────┘ │ |
| 41 | └─────────────────────────────────────────────────────────┘ |
| 42 | ``` |
| 43 | |
| 44 | ## Features |
| 45 | |
| 46 | | Feature | Description | |
| 47 | |---------|-------------| |
| 48 | | **P2P Transfers** | Send ETH/STRK/USDC to any Starknet address | |
| 49 | | **QR Codes** | Generate QR codes for addresses (scan to pay) | |
| 50 | | **Payment Links** | `starknet:<addr>?amount=1&memo=coffee` | |
| 51 | | **Invoice System** | Generate payment requests with expiry | |
| 52 | | **Telegram Bot** | Send/receive via Telegram commands | |
| 53 | | **Transaction History** | Track all transfers with status | |
| 54 | |
| 55 | ## Quick Start |
| 56 | |
| 57 | ### CLI Usage |
| 58 | |
| 59 | ```bash |
| 60 | # Send payment |
| 61 | python3.12 scripts/cli.py send 0x123... 0.5 --memo "coffee" |
| 62 | |
| 63 | # Generate QR code for your address |
| 64 | python3.12 scripts/cli.py qr 0x123... --output qr.png |
| 65 | |
| 66 | # Create payment link |
| 67 | python3.12 scripts/cli.py link 0x123... --amount 0.1 --memo "lunch" |
| 68 | |
| 69 | # Create invoice |
| 70 | python3.12 scripts/cli.py invoice 0x123... 25.00 --expires 1h |
| 71 | |
| 72 | # Check transaction status |
| 73 | python3.12 scripts/cli.py status 0xabcdef... |
| 74 | |
| 75 | # Balance check |
| 76 | python3.12 scripts/cli.py balance 0x123... |
| 77 | ``` |
| 78 | |
| 79 | ### Payment Link Format |
| 80 | |
| 81 | ``` |
| 82 | starknet:<address>?amount=<value>&memo=<text>&token=<ETH|STRK|USDC> |
| 83 | ``` |
| 84 | |
| 85 | **Example:** |
| 86 | ``` |
| 87 | starknet:0x053c91253bc9682c04929ca02ed00b3e423f6714d2ea42d73d1b8f3f8d400005?amount=0.01&memo=coffee&token=ETH |
| 88 | ``` |
| 89 | |
| 90 | ### Telegram Bot Commands |
| 91 | |
| 92 | ``` |
| 93 | /pay <address> <amount> [memo] - Send payment |
| 94 | /qr - Show your QR code |
| 95 | /balance - Check balance |
| 96 | /link <amount> [memo] - Generate payment link |
| 97 | /invoice <amount> - Create invoice |
| 98 | /history - Transaction history |
| 99 | /help - Show help |
| 100 | ``` |
| 101 | |
| 102 | ## Architecture |
| 103 | |
| 104 | ``` |
| 105 | starknet-mini-pay/ |
| 106 | ├── SKILL.md |
| 107 | ├── README.md |
| 108 | ├── scripts/ |
| 109 | │ ├── cli.py # Main CLI interface |
| 110 | │ ├── mini_pay.py # Core payment logic |
| 111 | │ ├── qr_generator.py # QR code generation |
| 112 | │ ├── link_builder.py # Payment link builder |
| 113 | │ ├── invoice.py # Invoice system |
| 114 | │ ├── telegram_bot.py # Telegram bot |
| 115 | │ └── starknet_client.py # Starknet RPC client |
| 116 | ├── contracts/ |
| 117 | │ └── payment_request.cairo # Optional invoice contract |
| 118 | └── tests/ |
| 119 | └── test_payments.py |
| 120 | ``` |
| 121 | |
| 122 | ## Dependencies |
| 123 | |
| 124 | ```bash |
| 125 | pip install starknet-py --break-system-packages |
| 126 | pip install qrcode[pil] --break-system-packages |
| 127 | pip install python-telegram-bot --break-system-packages |
| 128 | pip install httpx aiosqlite --break-system-packages |
| 129 | ``` |
| 130 | |
| 131 | ## Configuration |
| 132 | |
| 133 | ```bash |
| 134 | # Environment variables |
| 135 | export STARKNET_RPC="https://rpc.starknet.lava.build:443" |
| 136 | export MINI_PAY_PRIVATE_KEY="0x..." |
| 137 | export MINI_PAY_ADDRESS="0x..." |
| 138 | export TELEGRAM_BOT_TOKEN="..." |
| 139 | export TELEGRAM_CHAT_ID="..." |
| 140 | ``` |
| 141 | |
| 142 | ## Core Functions |
| 143 | |
| 144 | ### Send Payment |
| 145 | |
| 146 | ```python |
| 147 | from mini_pay import MiniPay |
| 148 | |
| 149 | pay = MiniPay(rpc_url="https://rpc.starknet.lava.build:443") |
| 150 | |
| 151 | # Send ET |