PREVIEW · agent counts, activity & volume shown here are a simulation for demoon-chain program: live & verified on mainnet ↗
Developers

Docs & SDK.

The .agent registry is a real, verified native Solana program. Interact with it directly using @solana/web3.js — no custom SDK required.

Overview

NEURONS (NeuralNS) is a namespace protocol on Solana that assigns persistent, human-readable identities to AI agents. Each name is a Program Derived Address (PDA) storing its owner, resolver and expiry on chain.

PDA derivation is [ "name", sha256(name) ]. Forward resolution is simply "derive the PDA and read the account" — no indexer needed.

Program

The program is deployed and verified on Solana mainnet-beta:

Program ID7DFyauedGVDRHGooFB5bQjVEApEgNxie2jEsWsKuR5J6
StatusVerified ✓ (OtterSec)
LoaderBPFLoaderUpgradeable

Install

One real dependency — everything else lives in the program repo.

npm install @solana/web3.js

Resolve a name (read on-chain)

Derive the PDA, read the account, decode the fields. This works today against mainnet.

import { Connection, PublicKey } from '@solana/web3.js';
import { createHash } from 'node:crypto';

const PROGRAM_ID = new PublicKey('7DFyauedGVDRHGooFB5bQjVEApEgNxie2jEsWsKuR5J6');
const conn = new Connection('https://api.mainnet-beta.solana.com');

function namePda(name) {
  const hash = createHash('sha256').update(name).digest();
  return PublicKey.findProgramAddressSync(
    [Buffer.from('name'), hash], PROGRAM_ID,
  )[0];
}

const pda = namePda('neuralns.agent');
const acc = await conn.getAccountInfo(pda);
if (!acc) throw new Error('not registered');

const d = acc.data;            // layout below (§ On-chain record)
const owner    = new PublicKey(d.subarray(2, 34));
const resolver = new PublicKey(d.subarray(34, 66));
const expiry   = d.readBigInt64LE(66);
const nameLen  = d.readUInt32LE(74);
const name     = d.subarray(78, 78 + nameLen).toString('utf8');

console.log({ name, owner: owner.toBase58(), resolver: resolver.toBase58(), expiry });

Register a name (send a tx)

Build the Register instruction (Borsh) and sign it with the payer / connected wallet.

// Borsh: variant 0 + name(string) + resolver(pubkey) + years(u32)
function encodeRegister(name, resolver, years) {
  const n = Buffer.from(name, 'utf8');
  const len = Buffer.alloc(4); len.writeUInt32LE(n.length);
  const yr = Buffer.alloc(4);  yr.writeUInt32LE(years);
  return Buffer.concat([Buffer.from([0]), len, n, resolver.toBuffer(), yr]);
}

const ix = new TransactionInstruction({
  programId: PROGRAM_ID,
  keys: [
    { pubkey: payer.publicKey, isSigner: true,  isWritable: true },  // payer
    { pubkey: namePda(name),   isSigner: false, isWritable: true },  // record PDA
    { pubkey: TREASURY,        isSigner: false, isWritable: true },  // fee receiver
    { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
  ],
  data: encodeRegister(name, payer.publicKey, 1),
});
await sendAndConfirmTransaction(conn, new Transaction().add(ix), [payer]);

On-chain record layout

Each name PDA stores exactly these bytes (Borsh):

offset size field
0      1    is_initialized (u8)
1      1    bump (u8)
2      32   owner (Pubkey)
34     32   resolver (Pubkey)
66     8    expiry (i64, unix seconds; 0 = none)
74     4+N  name (string: u32 len + utf8 bytes)

Richer agent metadata (capability manifest, reputation, AgentCard NFT) is on the roadmap — the current program is intentionally minimal.

Program instructions

IX
Register { name, resolver, years }
Create the PDA, pay fee, set owner/resolver/expiry
IX
UpdateResolver { resolver }
Repoint resolution (owner signs)
IX
Transfer { new_owner }
Change owner (owner signs)
IX
Renew { years }
Extend expiry, pay fee

Demo API

Note: this site's REST endpoints (/api/explore, /api/stats…) serve a simulated agent population for the live demo — they are not on-chain data. For real data, read the program directly (see Resolve above).

Roadmap

NEXT
Capability AgentCard
Token-2022 NFT manifest (skills, chains, endpoints)
NEXT
Reverse & discover
Off-chain indexer over getProgramAccounts
NEXT
Integrations
SAID Protocol · Metaplex · SNS resolver