Wallet
Wallet
Nosana runs on the Solana blockchain, so every interaction with the network is a signed transaction. To sign a transaction you need a Solana keypair stored in a wallet.
If you are new to Solana, the official Intro to Cryptography course explains how keypairs work: Intro to keypairs.
There are three ways to interact with the Nosana Network:
- Nosana Dashboard – no‑code web UI
@nosana/cli
– command‑line interface@nosana/sdk
– TypeScript/JavaScript library
This guide shows how to import and export the same keypair between those three environments.
1. Nosana Dashboard
The Dashboard is the quickest way to submit jobs. It runs in your browser and relies on a browser wallet extension to sign transactions.
Supported Solana browser wallets:
Phantom
Solflare
@nosana/cli
2. @nosana/cli
expects the private key as a JSON array containing 64 bytes (the same format used by the Solana CLI).
Importing a key
If your wallet exports the key as a base58 string (Phantom) or a seed phrase, convert it to the JSON array once:
npm install --global @solana/web3.js bs58
const web3 = require('@solana/web3.js');
const bs58 = require('bs58');
const secretKey = bs58.decode(process.argv[2]); // pass the base58 key as first arg
console.log(JSON.stringify([...web3.Keypair.fromSecretKey(secretKey).secretKey]));
Save the script output to ~/.nosana/nosana_key.json
, then verify:
npx @nosana/cli address
The printed address should match your wallet.
Exporting a key
To move your CLI key back into Phantom or Solflare:
Read the JSON file:
cat ~/.nosana/nosana_key.json
Convert the array to base58 or a seed phrase with a tool such as
solana-keygen
or the Node script above (run in reverse).Follow the Import guide for your chosen wallet.
@nosana/sdk
3. The SDK accepts:
- 64‑byte JSON arrays
- base58 private keys
- 12/24‑word seed phrases
Pass any of these to new Client('mainnet', private)
and the SDK will handle the rest. Use your preferred wallet export format; no conversion is usually necessary.
You can read more on how to use the @nosana/sdk
at SDK Start