Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Solana 101: Get Data from Solana Blockchain (From's Solana 101 Course)
import type {NextApiRequest, NextApiResponse} from 'next';
import {Connection, PublicKey} from '@solana/web3.js';
import {getNodeURL} from '@figment-solana/lib';
import * as borsh from 'borsh';
// The state of a greeting account managed by the hello world program
class GreetingAccount {
counter = 0;
constructor(fields: {counter: number} | undefined = undefined) {
if (fields) {
this.counter = fields.counter;
// Borsh schema definition for greeting accounts
const GreetingSchema = new Map([
[GreetingAccount, {kind: 'struct', fields: [['counter', 'u32']]}],
export default async function getter(
req: NextApiRequest,
res: NextApiResponse<string | number>,
) {
try {
const {network, greeter} = req.body;
const url = getNodeURL(network);
const connection = new Connection(url, 'confirmed');
const greeterPublicKey = new PublicKey(greeter);
const accountInfo = await connection.getAccountInfo(greeterPublicKey);
if (accountInfo === null) {
throw new Error('Error: cannot find the greeted account');
// Find the expected parameters.
const greeting = borsh.deserialize(
// A little helper
// Pass the counter to the client-side as JSON
} catch (error) {
let errorMessage = error instanceof Error ? error.message : 'Unknown Error';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment