# Harvester

2026 · Web3 + Full-stack · Pinocchio, Anchor, Yellowstone gRPC, Postgres, Rust, Next.js

Permissionless RWA yield aggregation protocol on Solana.

[Source](https://github.com/anmol0b/Harvester)

## Problem
RWA yield sources on Solana are fragmented across protocols with no permissionless way to aggregate and route capital toward the best available yield.

## Approach
Started as an Anchor program, then rewritten in Pinocchio to cut compute-unit usage. Anchor's account macros are convenient but add CU overhead; Pinocchio's zero-dependency approach meant writing account (de)serialisation by hand, but it kept the account layout byte-identical, so existing state did not need migrating. A Node.js/TypeScript indexer streams on-chain events over Yellowstone gRPC into Postgres, and a Next.js frontend reads from it.

## What I'd do next
- Ship the Pinocchio program to mainnet behind a capped TVL.
- Fan the Yellowstone stream out so the frontend and risk jobs share one feed.

[All projects](https://www.anmol0b.xyz/projects)
Anmol Bhardwaj

Harvester

2026 · Web3 + Full-stack · Pinocchio, Anchor, Yellowstone gRPC, Postgres, Rust, Next.js

Permissionless RWA yield aggregation protocol on Solana.

Results

Anchor → Pinocchio rewrite with byte-identical account layouts, so live accounts needed no migration

Problem

RWA yield sources on Solana are fragmented across protocols with no permissionless way to aggregate and route capital toward the best available yield.

Approach

Started as an Anchor program, then rewritten in Pinocchio to cut compute-unit usage. Anchor's account macros are convenient but add CU overhead; Pinocchio's zero-dependency approach meant writing account (de)serialisation by hand, but it kept the account layout byte-identical, so existing state did not need migrating. A Node.js/TypeScript indexer streams on-chain events over Yellowstone gRPC into Postgres, and a Next.js frontend reads from it.

What I'd do next

  • Ship the Pinocchio program to mainnet behind a capped TVL.
  • Fan the Yellowstone stream out so the frontend and risk jobs share one feed.