Dashboard
Pi Mainnet
Pi Browser Required
Pi Payroll currently works only inside the official Pi Browser.
Please open this application using the Pi Browser.
π Pi Payroll — Decentralized Payroll System
Built on Pi Network · On-chain payments · Zero traditional banking fees
Sent this cycle
π 0
No payments yet
Active recipients
0
No recipients yet
Total transactions
0
All time
Scheduled payments
0
No schedules set
Recent transactions
No transactions yet
Payments you send will appear here
Breakdown by category
No data yet
Categories will appear after your first payment
New payment
Payment queue
0 in queue
RecipientUsernameAmountMemoCategoryStatus
Drag a CSV here or click to select
Expected columns: name, pi_username, amount, memo, category
Expected format
nameJohn Smith
pi_username@john_smith
amount350.00
memoJuly 2025 salary
categorySalary
New recurring payment
Active schedules
No recurring payments
Create a schedule above to automate payroll
No transactions yet
Sent payments will appear here with their on-chain hashes
Total sent (all time)
π 0
Top recipient
No data yet
Success rate
No transactions yet
Unique recipients
0
Across all payments
Generated reports
No reports yet
Reports are generated automatically after each payment cycle
Pi Network SDK Integration
1. Add the SDK to your HTML
<script src="https://sdk.minepi.com/pi-sdk.js"></script>
2. Initialize and authenticate
Pi.init({ version: "2.0", sandbox: false });

const auth = await Pi.authenticate(
  ['payments', 'username'],
  onIncompletePaymentFound
);
// auth.user.username, auth.accessToken
3. Create a payment
const payment = await Pi.createPayment({
  amount: 350,
  memo: "July 2025 salary",
  metadata: { recipient: "@john_smith" }
}, {
  onReadyForServerApproval: async (paymentId) => {
    // approve on your backend
    await fetch('/api/approve', { ... });
  },
  onReadyForServerCompletion: async (paymentId, txid) => {
    // complete and store txid on-chain
    await fetch('/api/complete', { ... });
  },
  onCancel: (paymentId) => console.log('cancelled'),
  onError: (err) => console.error(err)
});
4. Handle incomplete payments on load
function onIncompletePaymentFound(payment) {
  // called if a previous payment was not completed
  console.log('Incomplete payment:', payment.identifier);
  // complete or cancel it via your backend
}
Pi Browser Required
Pi Payroll currently works only inside the official Pi Browser.
Please open this application using the Pi Browser.
Connected Wallet
Not connected
UID
User identifier
Network
Pi Mainnet
SDK not initialized
Payroll Statistics
π 0
No transactions
Total Pi Sent
π 0
0 scheduled payments
Transactions
0
No transactions yet
Pi SDK Status
Balance information currently unavailable via Pi SDK.
Connect your Pi Wallet to view your account details.
Done