paythefly
v1.0.8Create crypto payment & withdrawal links for your app. Works with BSC, Ethereum, TRON. Users pay via PayTheFlyPro gateway - you get shareable URLs with built-in signature verification.
Installation
Please help me install the skill `paythefly` from SkillHub official store.
npx skills add seanlan/paythefly
PayTheFlyPro
Generate EIP-712 signed payment and withdrawal links for PayTheFlyPro crypto payment gateway. Supports BSC, Ethereum, and TRON networks.
Security Notice
The signer private key (PTF_SIGNER_KEY) is used ONLY for signing order authorization messages (EIP-712/TIP-712). It does NOT have access to any funds.
Recommendations: - Generate a dedicated wallet for signing - do NOT use your main wallet - The signer wallet does not need to hold any funds - Register the signer address in PayTheFlyPro dashboard as your project's authorized signer
Install Dependencies
npm install ethers tronweb
Create Payment Link
node {baseDir}/scripts/payment.mjs --amount "0.01" --serialNo "ORDER001"
node {baseDir}/scripts/payment.mjs --amount "100" --serialNo "ORDER002" --token "0x55d398326f99059fF775485246999027B3197955"
node {baseDir}/scripts/payment.mjs --amount "50" --serialNo "ORDER003" --redirect "https://mystore.com/success" --brand "MyStore"
Options
--amount <value>: Payment amount (required)--serialNo <value>: Unique order number (required)--token <address>: Token contract address (omit for native token)--redirect <url>: URL to redirect after payment--brand <name>: Custom brand name--lang <code>: UI language (en, zh, ko, ja)--deadline <hours>: Signature validity hours (default: 24)
Create Withdrawal Link
node {baseDir}/scripts/withdrawal.mjs --amount "100" --serialNo "WD001" --user "0x1234567890123456789012345678901234567890"
node {baseDir}/scripts/withdrawal.mjs --amount "50" --serialNo "WD002" --user "0xabcd..." --token "0x55d398..."
Options
--amount <value>: Withdrawal amount (required)--serialNo <value>: Unique withdrawal number (required)--user <address>: Recipient wallet address (required)--token <address>: Token contract address (omit for native)--redirect <url>: URL to redirect after withdrawal--brand <name>: Custom brand name--lang <code>: UI language--deadline <hours>: Signature validity hours (default: 24)
Query Order Status
node {baseDir}/scripts/query.mjs --type payment --serialNo "ORDER001"
node {baseDir}/scripts/query.mjs --type withdrawal --serialNo "WD001"
Options
--type <value>: Order type:paymentorwithdrawal(required)--serialNo <value>: Serial number to query (required)
Environment Variables
| Variable | Required | Description |
|---|---|---|
PTF_PROJECT_ID |
Yes | PayTheFlyPro project identifier |
PTF_CONTRACT_ADDRESS |
Yes | Project smart contract address |
PTF_SIGNER_KEY |
Yes | Private key for signing (dedicated wallet, no funds needed) |
PTF_CHAIN_ID |
Yes | Chain ID (56, 97, 1, tron:mainnet, tron:nile) |
PTF_CUSTOM_RPC |
No | Custom RPC endpoint |
Supported Chains
| Chain | chainId | Native Token |
|---|---|---|
| BSC Mainnet | 56 | BNB |
| BSC Testnet | 97 | BNB |
| Ethereum | 1 | ETH |
| TRON Mainnet | tron:mainnet | TRX |
| TRON Nile | tron:nile | TRX |
Notes
- Each serial number can only be used once
- Withdrawal signatures expire after deadline (default 24 hours)
- For TRON, addresses use Base58 format (starting with T)
- Native token payments omit the
--tokenparameter