Skip to content

Basic Usage Examples ​

This page demonstrates common patterns for using Nosana Kit.

Initialize Client ​

ts
import { createNosanaClient } from '@nosana/kit';
const client = createNosanaClient();
ts
import { createNosanaClient, NosanaNetwork } from '@nosana/kit';
const client = createNosanaClient(NosanaNetwork.DEVNET);

TIP

The createNosanaClient function returns a fully typed NosanaClient instance. All methods and properties are type-checked at compile time.

Fetch a Job ​

ts
import { 
function createNosanaClient(network: NosanaNetwork | undefined, customConfig: PartialClientConfig & {
    connect: ConnectFactoryConfig & {
        clientSecret: string;
    };
}): NosanaClient & {
    connect: ServerConnect;
} (+3 overloads)
createNosanaClient
} from '@nosana/kit';
const const client: NosanaClientclient = function createNosanaClient(network?: NosanaNetwork, customConfig?: PartialClientConfig): NosanaClient (+3 overloads)createNosanaClient();

INFO

The Job type includes all properties from the on-chain account data. Hover over job in your IDE to see the full type definition, or check the SDK Reference.

Query Jobs with Filters ​

ts
import { 
function createNosanaClient(network: NosanaNetwork | undefined, customConfig: PartialClientConfig & {
    connect: ConnectFactoryConfig & {
        clientSecret: string;
    };
}): NosanaClient & {
    connect: ServerConnect;
} (+3 overloads)
createNosanaClient
, enum JobStateJobState } from '@nosana/kit';
const const client: NosanaClientclient = function createNosanaClient(network?: NosanaNetwork, customConfig?: PartialClientConfig): NosanaClient (+3 overloads)createNosanaClient();

Set Up Wallet ​

Wallet Configuration

A wallet is required for signing transactions. You can set it during client initialization or dynamically.
ts
import { createNosanaClient, NosanaNetwork } from '@nosana/kit';
import { generateKeyPairSigner } from '@solana/kit';
import type { Wallet } from '@nosana/kit';

// Option 1: Set wallet during initialization
const keypair: Wallet = await generateKeyPairSigner();
const client = createNosanaClient(NosanaNetwork.MAINNET, {
  wallet: keypair,
});
ts
import { Wallet, createNosanaClient, address } from '@nosana/kit';
import { generateKeyPairSigner } from '@solana/kit';

const client = createNosanaClient();
// Option 2: Set wallet dynamically
const keypair: Wallet = await generateKeyPairSigner();
client.wallet = keypair;

// Now you can perform transactions
const instruction = await client.jobs.post({
  market: address('market-address'),
  timeout: 3600,
  ipfsHash: 'QmXxx...',
});

await client.solana.buildSignAndSend(instruction);

WARNING

Never share your private key or seed phrase. Always use secure key management practices in production.