Sol.College

Full lesson

blinkord

Bring Solana into your Discord Community

What it does

From the project README:

Blinkord is a platform design for allowing Discord community owners to enable Solana interactions directly within their server. Server owners can create their own Blinks on Blinkord, or they can use external blink URLs within the Discord app if the Blinkord Bot is added to the server.
Original
dimitrov-d/blinkord
SuperStack fork
Blockchains/blinkord @ 4199f5b
Stars
5
Last push (original)
2026-11-01
Languages
TypeScript, JavaScript, CSS, Dockerfile
Detected stack
Next.jsSolana Actionsweb3.js
Categories
GamingConsumer & Social
Licence
MIT
Homepage
https://blinkord.com

Architecture

131 source files. By extension: .tsx ×69, .ts ×56, .js ×4, .jsx ×2.

Top-level directorySource files
packages131

Dapp: deploying

This fork is queued for its own live dapp on Sol.College, with a Devnet/Mainnet switch. It appears here, at /dapps/blinkord/, once it is deployed and checked on devnet. Until then, 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.

dimitrov-d/blinkord · packages/backend/src/services/transaction.ts L13–35 @ 4199f5b · MIT · original
import env from './env';import { createTransferInstruction, getAssociatedTokenAddress } from '@solana/spl-token'; export async function generateSendTransaction(  from: string,  amount: number,  guild: Guild,  trackingInstruction: TransactionInstruction,) {  const fromPubkey = new PublicKey(from);  const toPubKey = new PublicKey(guild.address);   const lamports = amount * LAMPORTS_PER_SOL;  if (!guild.useUsdc && lamports > (await getSolBalance(from))) {    throw new Error(`Insufficient balance`);  }   const connection = new Connection(env.SOLANA_RPC_URL);  const { blockhash } = await connection.getLatestBlockhash();   const instructions = guild.useUsdc    ? await getTransferUsdcInstructions(fromPubkey, toPubKey, lamports)    : getTransferSolInstructions(fromPubkey, toPubKey, lamports);
  1. Line 14 import { createTransferInstruction, getAssociatedTokenAddress } from '@solana/spl-token';: An SPL token transfer through the Token Program.
  2. Line 31 const { blockhash } = await connection.getLatestBlockhash();: Fetches a recent blockhash. Transactions expire if it gets too old.

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
packages/discord-botnpm run startnodemon ./src/index.ts
packages/discord-botnpm run linteslint -c .eslintrc.js --ext .ts ./src
packages/discord-botnpm run deployts-node ./src/deploy-commands.ts
packages/frontendnpm run devnext dev
packages/frontendnpm run startnext start
packages/frontendnpm run buildnext build
packages/frontendnpm run lintnext lint
packages/backendnpm run startnodemon ./src/index.ts

What you could build from it

Used in lessons