Sol.College

Full lesson

solforge

AI-Powered Solana Development Suite 🤖⚡ The next-generation Solana development environment combining blazing-fast localnet performance with integrated AI assistance. Build faster, debug smarter, ship sooner.

What it does

From the project README:

[](https://github.com/nitishxyz/solforge) [](LICENSE) [](https://github.com/litesvm/litesvm) [](AGI_QUICKSTART.md)
Original
nitishxyz/solforge
SuperStack fork
Blockchains/solforge @ 7522934
Stars
23
Last push (original)
2026-01-25
Languages
TypeScript, Astro, JavaScript, CSS, Shell, HTML
Detected stack
@solana/kitweb3.js
Categories
AI & Agents
Licence
MIT
Homepage
https://solforge.sh

Architecture

495 source files. By extension: .ts Ă—296, .tsx Ă—189, .js Ă—10.

Top-level directorySource files
apps347
packages116
infra10
tests10
(root)6
scripts6

Dapp: devnet deploy pending

⏳ Devnet deploy pending — goes live when the devnet wallet is topped up. This fork's own dapp is not deployed yet, so there is no program address or transaction to show. It is queued in dapp-queue.txt; once devnet SOL is available it is deployed, exercised with real devnet transactions, and this section switches to the live dapp at /dapps/solforge/. Until then, the lesson and step-by-step guide below are complete, and you can run it locally with the commands below.

Key code, explained

Excerpts chosen automatically where the code uses the most Solana concepts, pinned to the fork's commit.

nitishxyz/solforge · scripts/test-all-parsers.ts L13–36 @ 7522934 · MIT · original
 *   3. Open explorer: http://localhost:3000 */ import {	Connection,	Keypair,	type PublicKey,	SystemProgram,	Transaction,	sendAndConfirmTransaction,	LAMPORTS_PER_SOL,} from "@solana/web3.js";import {	TOKEN_PROGRAM_ID,	TOKEN_2022_PROGRAM_ID,	createInitializeMintInstruction,	createInitializeMint2Instruction,	createInitializeAccountInstruction,	createInitializeAccount2Instruction,	createInitializeAccount3Instruction,	createMintToInstruction,	createMintToCheckedInstruction,	createTransferInstruction,	createTransferCheckedInstruction,
  1. Line 22 sendAndConfirmTransaction,: Submits the signed transaction to the cluster.
  2. Line 27 TOKEN_2022_PROGRAM_ID,: Targets the Token-2022 program instead of the original Token Program.
  3. Line 33 createMintToInstruction,: Mints new tokens. The mint authority must sign.
  4. Line 35 createTransferInstruction,: An SPL token transfer through the Token Program.
  5. Line 36 createTransferCheckedInstruction,: A checked token transfer, which also verifies the mint and decimals.
nitishxyz/solforge · packages/server/src/methods/index.ts L193–216 @ 7522934 · MIT · original
	solforgeAdminCloneTokenAccounts,	solforgeCreateTokenAccount,	solforgeLoadProgram,	solforgeCreateMint,	solforgeListMints,	solforgeMintTo,	solforgeAdoptMintAuthority,}; Object.assign(rpcMethods, adminMethods); export {	getAccountInfo,	getBalance,	getMultipleAccounts,	requestAirdrop,	sendTransaction,	simulateTransaction,	getTransaction,	getSignatureStatuses,	getSignaturesForAddress,	getConfirmedTransaction,	getLatestBlockhash,	getSlot,
  1. Line 198 solforgeMintTo,: Mints new tokens. The mint authority must sign.
  2. Line 209 sendTransaction,: Submits the signed transaction to the cluster.
  3. Line 215 getLatestBlockhash,: Fetches a recent blockhash. Transactions expire if it gets too old.
nitishxyz/solforge · packages/server/src/methods/admin/mint-to.ts L1–24 @ 7522934 · MIT · original
import {	ACCOUNT_SIZE,	AccountLayout,	createAssociatedTokenAccountInstruction,	createMintToCheckedInstruction,	getAssociatedTokenAddressSync,	MINT_SIZE,	MintLayout,	TOKEN_2022_PROGRAM_ID,	TOKEN_PROGRAM_ID,} from "@solana/spl-token";import type { TransactionInstruction } from "@solana/web3.js";import {	PublicKey,	TransactionMessage,	VersionedTransaction,} from "@solana/web3.js";import type { RpcMethodHandler } from "../../types";import { sendTransaction as sendTxRpc } from "../transaction/send-transaction"; // Mint via a real SPL Token transaction signed by faucet (must be mint authority)export const solforgeMintTo: RpcMethodHandler = async (id, params, context) => {	try {		const [mintStr, ownerStr, rawAmount] = params as [
  1. Line 5 createMintToCheckedInstruction,: Mints new tokens. The mint authority must sign.
  2. Line 9 TOKEN_2022_PROGRAM_ID,: Targets the Token-2022 program instead of the original Token Program.
  3. Line 19 import { sendTransaction as sendTxRpc } from "../transaction/send-transaction";: Submits the signed transaction to the cluster.
nitishxyz/solforge · packages/server/src/lib/parsers/spl-token.ts L1–24 @ 7522934 · MIT · original
import type { PublicKey, TransactionInstruction } from "@solana/web3.js";import {	decodeMintToCheckedInstruction,	decodeTransferInstruction,	decodeTransferCheckedInstruction,	decodeInitializeAccount3Instruction,	decodeInitializeImmutableOwnerInstruction,	decodeTransferCheckedInstructionUnchecked,	decodeTransferInstructionUnchecked,	decodeInitializeAccount3InstructionUnchecked,	decodeInitializeImmutableOwnerInstructionUnchecked,	// Additional core instruction decoders	decodeApproveInstruction,	decodeApproveCheckedInstruction,	decodeRevokeInstruction,	decodeSetAuthorityInstruction,	decodeMintToInstruction,	decodeBurnInstruction,	decodeBurnCheckedInstruction,	decodeCloseAccountInstruction,	decodeFreezeAccountInstruction,	decodeThawAccountInstruction,	decodeInitializeAccountInstruction,	decodeInitializeAccount2Instruction,
  1. Line 3 decodeMintToCheckedInstruction,: Mints new tokens. The mint authority must sign.
  2. Line 5 decodeTransferCheckedInstruction,: A checked token transfer, which also verifies the mint and decimals.

How to run, build and test

These commands come from the repo's own manifests (package.json scripts, Anchor.toml, Cargo, go.mod, Makefile). Check the README for prerequisites and environment variables.

DirectoryCommandRuns
.npm run buildbun run build:cli:all
.npm run lintbunx @biomejs/biome check apps packages scripts
apps/chatnpm run devvite
apps/chatnpm run buildtsc -b && vite build
apps/chatnpm run linteslint .
apps/websitenpm run devastro dev
apps/websitenpm run buildastro check && astro build
apps/mobilenpm run startexpo start
apps/mobilenpm run lintexpo lint
apps/webnpm run devvite
apps/webnpm run buildvite build
apps/webnpm run lintbiome lint
apps/routernpm run devbun run --watch src/index.ts
apps/routernpm run startbun run src/index.ts
apps/routernpm run buildbun build src/index.ts --outdir dist --target bun
apps/clinpm run devbun index.ts

What you could build from it

Used in lessons