Simple steps for maintainers and contributors.
This page explains what each role must do. No product pitch, just the steps needed to make a reward work.
What the maintainer does
The maintainer creates the reward and locks USDC. This part uses normal wallet transactions.
Connect wallet
Use the wallet that will pay for the reward. The maintainer signs the funding transactions.
Select a GitHub issue
Pick an open issue from your repo, or paste a public GitHub issue URL.
Set the reward
Enter the USDC amount, deadline, optional criteria, and reward mode.
Approve and lock USDC
Approve USDC, then lock it in escrow. Safeguarded mode also locks a bond.
Connect the repo
Install the GitHub App on your repo so PullPay knows when a PR is merged.
Gasless only means the contributor does not pay gas to receive USDC. The maintainer still signs transactions to fund the reward.
What the contributor does
The contributor links GitHub to a wallet, opens a PR, and receives USDC if the PR is merged and the payout completes.
Connect wallet
Use the wallet that should receive the USDC payout.
Link GitHub to wallet
Verify your GitHub handle, then sign a message to link it to your wallet.
Work on a funded issue
Open a funded issue, read the requirements, and submit a pull request.
Get the PR merged
After merge, the repo notifies PullPay. PullPay checks GitHub again.
Receive payout
If the payout completes, you receive USDC without paying gas.
The signature proves which wallet should receive payouts for your GitHub handle.
Receiving USDC does not require ETH from the contributor. Other actions may still require wallet transactions.
Connect GitHub to PullPay
PullPay must hear about merged PRs. Install the PullPay GitHub App on your repository to automatically trigger payouts upon merge.
The App listens for PR merge events and notifies the PullPay smart contract automatically.
PullPay verifies the PR status on GitHub before releasing any payout.
Choose a reward mode
Use Instant for simple rewards. Use Safeguarded when the payout needs an UMA check.
Use when: Use for simple maintainer-funded rewards.
Mechanics: A merge can trigger payout. If payout stalls after the deadline, the contributor can escalate to UMA.
Use when: Use when the reward needs extra checks.
Mechanics: PullPay sends the payout request to UMA before payment. A false request can be disputed.
Fallback actions
These actions appear on the reward detail page when they apply.
Maintainer direct release
MaintainerFor Instant rewards, the maintainer can manually pay a contributor address.
Contributor escalation
ContributorIf an Instant reward is stuck after the deadline, the contributor can escalate to UMA.
Refund
MaintainerIf no valid payout happens before the deadline, the maintainer can refund.
Each reward should end in one place: paid, rejected, or refunded. Avoid duplicate rewards for the same issue unless you intentionally want multiple rewards.