Build guide
Build an agent that sends USDC on Solana as a reward when a GitHub pull request is merged
On Solana, the top-ranked stack for this goal is ElizaOS (agent framework), Bankr (wallet & keys) and x402 (payments), as of 2026-10-01.
Ranked by Sato Score, liveness, a Sato Hub-reproduced install, the share of daily checks answered, and fit to what the goal names. A Sato Score measures how open, active and verifiable a project is; it is not a safety, quality or returns grade.
Derived from 436 listings by the same engine as the MCP tool onchain_agent_recommend_stack · picks last checked 2026-10-01
The stack, layer by layer
1. Agent framework
ElizaOS Sato Score 87 · High
Sato Check: not yet read. Not key- or fund-bearing by its category, standards or setup.
bun add -g elizaos@beta· install reproduced by Sato Hub 2026-09-21 · Sato CheckAlmanak Sato Score 83 · High
Sato Check (2026-10-01, declared): Key access unknown — we could not read this version.
pipx install almanak· install reproduced by Sato Hub 2026-09-21 · Sato Check
2. Wallet & keys
This wallet sends the payouts. Cap each payout and each day before it holds real USDC, and test on devnet first.
Bankr Sato Score 87 · High
Sato Check (v0.3.43, 2026-09-30, declared+traced+observed): Reads your key and signs locally — what a wallet does; a planted key was not observed leaving (during install and start-up in our sandbox; code paths that run later or on a trigger are not covered).
npm install -g @bankr/cli· install reproduced by Sato Hub 2026-09-21 · Sato CheckTrust Wallet Agent Kit (TWAK) Sato Score 87 · High
Sato Check (v0.20.0, 2026-09-26, declared+traced): No private-key read found in its setup or published code; not yet run with planted keys.
npm install -g @trustwallet/cli # binary: twak· install reproduced by Sato Hub 2026-09-21 · Sato Check
3. Payments
x402 Sato Score 87 · High
Sato Check (v1.2.0, 2026-09-26, declared+traced+observed): Asks for a private key or seed phrase in its setup; a planted key was not observed leaving (during install and start-up in our sandbox; code paths that run later or on a trigger are not covered).
npm install x402-fetch· install reproduced by Sato Hub 2026-09-21 · Sato CheckBankr Sato Score 87 · High
Sato Check (v0.3.43, 2026-09-30, declared+traced+observed): Reads your key and signs locally — what a wallet does; a planted key was not observed leaving (during install and start-up in our sandbox; code paths that run later or on a trigger are not covered).
npm install -g @bankr/cli· install reproduced by Sato Hub 2026-09-21 · Sato Check
Left out on purpose
- An MCP server is an optional interface. The trigger for this job is a GitHub event, and the payment goes through the wallet and rail above.
Install steps and checks
Each pick shows the first install line from its deploy spec and whether Sato Hub reproduced that install in a container or only parsed it from the project's docs. The Sato Check link under each pick opens what its code does with a key. For a fuller reading of any pick before you install, connect or pay, run Preflight.
An agent can pull this same stack, with install steps for every pick, in one call:
onchain_agent_build_plan {"goal":"an agent that pays USDC rewards to contributors when a GitHub pull request is merged","chain":"Solana"}Server: https://satohub.ai/api/mcp, no key.
What this does not cover
- The trigger. Detecting a merged pull request is a GitHub webhook or Action you write. It is not a directory listing, and no stack pick supplies it.
- Which address to pay. Mapping a contributor to a Solana address is your data, and a wrong address is a payment you cannot recall.
- A template. No create-sato-agent template covers this flow, so there is no one-command scaffold for it. Each pick's own install steps are the path.
- Tax and legal treatment of paying contributors.
How to read the numbers
- A Sato Score measures how open, active and verifiable a project is. It is not a safety, quality or returns grade.
- A Sato Check line describes what was read and run, with its date and its limits. A missing reading is unknown, not clear.
- Unknown means Sato Hub holds no record. It does not mean something is wrong.
- This is a build guide. It is not trading, investment or legal advice.
- Sato Hub has no token. A token using the Sato name is not ours.