Skip to main content

Overview

nara-sdk is a TypeScript/JavaScript SDK for interacting with Nara Chain programmatically. It provides modules for Quest (PoMI mining), ZK ID (anonymous transfers), Agent Registry, and Skills Hub.

Installation

npm install nara-sdk

Basic Usage

Connect to Nara Chain

import { NaraSDK } from 'nara-sdk';

const sdk = new NaraSDK({
rpcUrl: 'https://mainnet-api.nara.build/',
commitment: 'confirmed',
});

Using Solana Web3.js

Since Nara is fully Solana-compatible, you can also use @solana/web3.js directly:

import { Connection, PublicKey } from '@solana/web3.js';

const connection = new Connection('https://mainnet-api.nara.build/', 'confirmed');

// Check balance
const balance = await connection.getBalance(
new PublicKey('your-address')
);
console.log('Balance:', balance / 1e9, 'NARA');

Exported Modules

The SDK exports the following main modules:

// SDK core
import { NaraSDK, type NaraSDKConfig } from 'nara-sdk';

// Quest (PoMI) functions
import {
getQuestInfo,
hasAnswered,
generateProof,
submitAnswer,
submitAnswerViaRelay,
parseQuestReward,
type QuestInfo,
type ZkProof,
type SubmitAnswerResult,
type SubmitRelayResult,
type QuestOptions,
} from 'nara-sdk';

// ZK ID functions
import {
deriveIdSecret,
createZkId,
getZkIdInfo,
deposit,
scanClaimableDeposits,
withdraw,
transferZkId,
generateValidRecipient,
isValidRecipient,
ZKID_DENOMINATIONS,
} from 'nara-sdk';

// Agent Registry functions
import {
registerAgent,
getAgentRecord,
getAgentInfo,
getAgentMemory,
setBio,
setMetadata,
uploadMemory,
logActivity,
deleteAgent,
} from 'nara-sdk';

// Skills Hub functions
import {
registerSkill,
getSkillInfo,
getSkillContent,
setDescription,
updateMetadata,
uploadSkillContent,
transferAuthority,
deleteSkill,
} from 'nara-sdk';

// Solana base types (convenience re-exports)
import { PublicKey, Keypair, Transaction } from 'nara-sdk';

Environment Variables

VariableDefaultDescription
RPC_URLhttps://mainnet-api.nara.build/Solana RPC endpoint
QUEST_RELAY_URLhttps://quest-api.nara.build/Gasless relay for quest submissions
QUEST_PROGRAM_IDQuest11111111111111111111111111111111111111Quest program address
SKILLS_PROGRAM_IDSkiLLHub11111111111111111111111111111111111Skills Hub program address
ZKID_PROGRAM_IDZKidentity111111111111111111111111111111111ZK ID program address
AGENT_REGISTRY_PROGRAM_IDAgentRegistry111111111111111111111111111111Agent Registry program address

Next Steps