Technical guide

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.

Maintainer

What the maintainer does

The maintainer creates the reward and locks USDC. This part uses normal wallet transactions.

step 1

Connect wallet

Use the wallet that will pay for the reward. The maintainer signs the funding transactions.

step 2

Select a GitHub issue

Pick an open issue from your repo, or paste a public GitHub issue URL.

step 3

Set the reward

Enter the USDC amount, deadline, optional criteria, and reward mode.

step 4

Approve and lock USDC

Approve USDC, then lock it in escrow. Safeguarded mode also locks a bond.

step 5

Connect the repo

Install the GitHub App on your repo so PullPay knows when a PR is merged.

Route
/create
Token
USDC
Bond
10 USDC in Safeguarded mode

Gasless only means the contributor does not pay gas to receive USDC. The maintainer still signs transactions to fund the reward.

Contributor

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.

step 1

Connect wallet

Use the wallet that should receive the USDC payout.

step 2

Link GitHub to wallet

Verify your GitHub handle, then sign a message to link it to your wallet.

step 3

Work on a funded issue

Open a funded issue, read the requirements, and submit a pull request.

step 4

Get the PR merged

After merge, the repo notifies PullPay. PullPay checks GitHub again.

step 5

Receive payout

If the payout completes, you receive USDC without paying gas.

GitHub to wallet link

The signature proves which wallet should receive payouts for your GitHub handle.

Contributor pays no gas

Receiving USDC does not require ETH from the contributor. Other actions may still require wallet transactions.

GitHub

Connect GitHub to PullPay

PullPay must hear about merged PRs. Install the PullPay GitHub App on your repository to automatically trigger payouts upon merge.

GitHub App Webhook

The App listens for PR merge events and notifies the PullPay smart contract automatically.

Safety check

PullPay verifies the PR status on GitHub before releasing any payout.

Payout

Choose a reward mode

Use Instant for simple rewards. Use Safeguarded when the payout needs an UMA check.

Instant

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.

Safeguarded

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.

Operations

Fallback actions

These actions appear on the reward detail page when they apply.

Maintainer direct release

Maintainer

For Instant rewards, the maintainer can manually pay a contributor address.

Contributor escalation

Contributor

If an Instant reward is stuck after the deadline, the contributor can escalate to UMA.

Refund

Maintainer

If 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.