Sol.College

Full lesson

fridon-ai

What it does

From the project README:

FridonAI is an open-source project dedicated to providing AI-powered tools and services for cryptocurrency analysis, blockchain operations, and more. Our mission is to simplify complex blockchain interactions and offer insightful analytics through an intuitive chat interface.
Original
FridonAI/fridon-ai
SuperStack fork
Blockchains/fridon-ai @ b7b9988
Stars
76
Last push (original)
2025-05-28
Languages
Python, TypeScript, HCL, Dockerfile, HTML, JavaScript
Detected stack
Metaplexweb3.js
Categories
AI & Agents
Licence
MIT

Architecture

247 source files. By extension: .py ×125, .ts ×120, .js ×2.

Top-level directorySource files
apps134
libs112
(root)1

Dapp: deploying

This fork is queued for its own live dapp on Sol.College, with a Devnet/Mainnet switch. It appears here, at /dapps/fridon-ai/, 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.

FridonAI/fridon-ai · apps/fridon_backend/src/blockchain/factories/transaction-factory.ts L25–48 @ b7b9988 · MIT · original
}; export type TransactionData = {  message: TransactionMessage;  signers: (Keypair | Signer)[];  addressLookupTable: AddressLookupTableAccount[];}; @Injectable()export class TransactionFactory {  constructor(    private readonly connection: Connection,    private readonly transactionListenerService: TransactionListenerService,  ) {}   async sendTransaction(ix: TransactionInstruction, keypairs: Keypair) {    const tx = new Transaction();     tx.add(ix);     const blockHashResponse = await this.connection.getLatestBlockhash();     tx.recentBlockhash = blockHashResponse.blockhash;    tx.feePayer = keypairs.publicKey;
  1. Line 40 async sendTransaction(ix: TransactionInstruction, keypairs: Keypair) {: Submits the signed transaction to the cluster.
  2. Line 45 const blockHashResponse = await this.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
apps/fridon_backendnpm run startnest start
apps/fridon_backendnpm run buildnest build
apps/fridon_backendnpm run testjest
apps/fridon_backendnpm run linteslint "{src,apps,libs,test}/**/*.ts" --fix

What you could build from it