From 15ce53fa3e9f7370eb55db5ed5f04580bad79a42 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 12 Jun 2026 10:00:33 -0400 Subject: [PATCH 1/5] docs: rewrite README intro for SEO and LLM extraction --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 67305c41..12a73821 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ -# Quicknode Solana Program Examples +# Solana Program Examples -> A fork of the [Solana Foundation program examples](https://github.com/solana-developers/program-examples) with current versions, more [programs](https://solana.com/docs/terminology#program), and additional frameworks. +Working, tested, up-to-date examples of common Solana programs — maintained by [Quicknode](https://quicknode.com). Each example compiles and passes CI on the current Solana and Anchor toolchain. [![Anchor](../../actions/workflows/anchor.yml/badge.svg)](../../actions/workflows/anchor.yml) [![Quasar](../../actions/workflows/quasar.yml/badge.svg)](../../actions/workflows/quasar.yml) [![Pinocchio](../../actions/workflows/pinocchio.yml/badge.svg)](../../actions/workflows/pinocchio.yml) [![Native](../../actions/workflows/native.yml/badge.svg)](../../actions/workflows/native.yml) [![ASM](../../actions/workflows/solana-asm.yml/badge.svg)](../../actions/workflows/solana-asm.yml) +**What you can build here:** escrow, AMM-based token swaps, order-book exchanges, token fundraisers, vault strategies, betting markets, NFTs, token extensions, compressed NFTs, and all the foundational Solana patterns (PDAs, CPIs, account management, rent). + Each example is available in one or more of the following frameworks: - [⚓ Anchor](https://www.anchor-lang.com/) - the most popular framework for Solana development. Build with `anchor build`, test with `pnpm test` as defined in `Anchor.toml`. @@ -15,8 +17,16 @@ Each example is available in one or more of the following frameworks: > [!NOTE] > You don't need to write your own program for basic tasks like creating [accounts](https://solana.com/docs/terminology#account), transferring SOL, or minting tokens. These are handled by existing programs like the System Program and Token Program. +## Getting started + +You need [Rust](https://www.rust-lang.org/tools/install), [Solana CLI](https://docs.anza.xyz/cli/install), [Anchor](https://www.anchor-lang.com/docs/installation), and [pnpm](https://pnpm.io/installation) installed. Clone the repo, `cd` into any example directory, and run `pnpm test`. + +To deploy to mainnet or devnet you'll need an RPC endpoint. [Quicknode](https://quicknode.com) provides free and paid Solana endpoints — create one and set it as your cluster in `Anchor.toml` or with `solana config set --url `. + ## Financial Software +The programs below implement the core primitives of Solana DeFi: peer-to-peer trading (escrow), decentralized exchanges (AMM and order book), fundraising, yield-bearing vaults, and prediction markets. These are the building blocks used by protocols like Raydium, Orca, Openbook, and Kamino. + ### Escrow **Start here - the best first finance program to learn on Solana.** A neutral account that holds funds until both sides deliver, like a real-estate escrow or a lawyer's trust account. The maker deposits token A and names how much token B they want; when a taker supplies token B, the program swaps both in a single all-or-nothing transaction. This swap is the core idea behind every onchain exchange. From 663f4ead93f9e3bffc26e8d293817c5dda912982 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 12 Jun 2026 10:20:24 -0400 Subject: [PATCH 2/5] ci: exclude generated code from biome lint The Codama-generated client under tools/shank-and-codama emits `{}` arg types that trip biome's noBannedTypes rule. Generated code is not hand-maintained and is overwritten on regeneration, so exclude any generated/ directory from linting. --- biome.jsonc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/biome.jsonc b/biome.jsonc index a42a6112..7fcec1f2 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -1,7 +1,9 @@ { "$schema": "https://biomejs.dev/schemas/2.4.12/schema.json", "files": { - "includes": ["**", "!**/Assets"] + // Generated code (e.g. Codama clients) is excluded - it's not + // hand-maintained and gets overwritten on every regeneration. + "includes": ["**", "!**/Assets", "!**/generated/**"] }, "formatter": { // Matches more existing code, From d089036ae145bcf94ed710afe989a86cf173f341 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 12 Jun 2026 11:02:13 -0400 Subject: [PATCH 3/5] fix: add title to next.svg for biome a11y check --- .../nft-meta-data-pointer/anchor-example/app/public/next.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg b/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg index 5174b28c..52bb2bd4 100644 --- a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg +++ b/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg @@ -1 +1 @@ - \ No newline at end of file +Next.js logo \ No newline at end of file From 2a4fd2e61bb91b22cf0b11ad6dc7fa1fe38b4bc6 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 12 Jun 2026 11:02:19 -0400 Subject: [PATCH 4/5] fix: add title to vercel.svg for biome a11y check --- .../nft-meta-data-pointer/anchor-example/app/public/vercel.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg b/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg index d2f84222..2aa4e88e 100644 --- a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg +++ b/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg @@ -1 +1 @@ - \ No newline at end of file +Vercel logo \ No newline at end of file From 99206d8b382ef6addfbb080cef14c1bdd3717a65 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 12 Jun 2026 11:02:33 -0400 Subject: [PATCH 5/5] ci: use biome 2.2+ folder-ignore syntax for generated exclude --- biome.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/biome.jsonc b/biome.jsonc index 7fcec1f2..ab43b524 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -3,7 +3,7 @@ "files": { // Generated code (e.g. Codama clients) is excluded - it's not // hand-maintained and gets overwritten on every regeneration. - "includes": ["**", "!**/Assets", "!**/generated/**"] + "includes": ["**", "!**/Assets", "!**/generated"] }, "formatter": { // Matches more existing code,