Composable Signal Architecture for AI Agent Identity on Solana
MoltLaunch V3 replaces centralized scoring with on-chain composable signals. Multiple independent authorities submit attestations about an agent's infrastructure, economic stake, and hardware binding. Trust scores are derived permissionlessly from these attestations.
Program: 6AZSAhq4iJTwCfGEVssoa1p3GnBqGkbcQ1iDdP1U1pSb (Solana Devnet)
npm install @moltlaunch/sdk ┌─────────────────┐
│ ProtocolConfig │
│ (singleton) │
└────────┬────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Authority A │ │ Authority B │ │ Authority C │
│ (Single) │ │ (Oracle) │ │ (NCN) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────┐
│ Attestation Layer │
│ (one per agent × authority pair) │
│ signal_type · hash · tee_quote · expires_at │
└──────────────────────┬──────────────────────────┘
│
▼
┌──────────────────┐
│ AgentIdentity │
│ (signal hub) │
│ │
│ trust_score │
│ infra_type │
│ economic_stake │
│ hardware_bind │
│ attestation_cnt │
│ is_flagged │
└──────────────────┘
import { MoltLaunchClient } from "@moltlaunch/sdk";
import { PublicKey } from "@solana/web3.js";
const client = new MoltLaunchClient(); // defaults to devnet
const agent = await client.getAgentIdentity(
new PublicKey("AgentWalletPubkey...")
);
console.log(`Trust Score: ${agent.trustScore}/100`);
console.log(`Infra Type: ${agent.infraType}`);
console.log(`Attestations: ${agent.attestationCount}`);
console.log(`Flagged: ${agent.isFlagged}`);
console.log(`Economic Stake: ${agent.hasEconomicStake}`);
console.log(`Hardware Binding: ${agent.hasHardwareBinding}`);import { Keypair } from "@solana/web3.js";
import { MoltLaunchClient } from "@moltlaunch/sdk";
const wallet = Keypair.generate();
const client = new MoltLaunchClient({
wallet: { publicKey: wallet.publicKey, signTransaction: ..., signAllTransactions: ... },
});
const txId = await client.registerAgent("my-agent", wallet);
console.log(`Registered! TX: ${txId}`);import { MoltLaunchClient, SignalType } from "@moltlaunch/sdk";
const client = new MoltLaunchClient({ wallet: authorityWallet });
// 32-byte attestation hash (e.g. SHA-256 of evidence)
const attestationHash = new Uint8Array(32);
crypto.getRandomValues(attestationHash);
// Expires in 30 days
const expiresAt = Math.floor(Date.now() / 1000) + 30 * 24 * 60 * 60;
const txId = await client.submitAttestation(
agentPubkey, // agent's wallet pubkey
SignalType.InfraCloud, // signal type
attestationHash, // 32-byte hash
expiresAt, // unix timestamp
authorityKeypair, // authority signs
);// Anyone can call this — no authority needed
const txId = await client.refreshSignals(agentPubkey);const reasonHash = new Uint8Array(32); // SHA-256 of reason
const txId = await client.flagAgent(agentPubkey, reasonHash, authorityKeypair);const txId = await client.revokeAttestation(agentPubkey, authorityKeypair);import {
findConfigPda,
findAgentPda,
findAuthorityPda,
findAttestationPda,
} from "@moltlaunch/sdk";
const [configPda] = findConfigPda();
const [agentPda] = findAgentPda(walletPubkey);
const [authorityPda] = findAuthorityPda(authorityPubkey);
const [attestationPda] = findAttestationPda(agentWallet, authorityPubkey);| PDA | Seeds |
|---|---|
ProtocolConfig |
["moltlaunch"] |
AgentIdentity |
["agent", wallet] |
Authority |
["authority", pubkey] |
Attestation |
["attestation", agent_wallet, authority_pubkey] |
| Variant | Description |
|---|---|
Unknown |
No infrastructure attestation yet |
Cloud |
Standard cloud infrastructure |
TEE |
Trusted Execution Environment |
DePIN |
Decentralized Physical Infrastructure |
| Variant | Description |
|---|---|
InfraCloud |
Cloud infrastructure attestation |
InfraTEE |
TEE attestation (with optional quote) |
InfraDePIN |
DePIN device attestation |
EconomicStake |
Economic stake verification |
HardwareBinding |
Hardware binding attestation |
General |
General-purpose attestation |
| Variant | Description |
|---|---|
Single |
Single-signer authority |
MultisigMember |
Member of a multisig |
OracleOperator |
Oracle-based operator |
NCNValidator |
Jito NCN validator |
Any protocol can read agent trust signals to make access decisions:
import { MoltLaunchClient, InfraType } from "@moltlaunch/sdk";
const client = new MoltLaunchClient();
const agent = await client.getAgentIdentity(wallet);
if (agent.infraType === InfraType.TEE && agent.hasEconomicStake) {
grantFlashLoan(); // High trust — TEE + economic skin in the game
} else if (agent.trustScore >= 30) {
grantBasicAccess(); // Medium trust — at least one attestation
} else {
deny(); // Unverified — no attestations
}| Method | Description | Signer |
|---|---|---|
getConfig() |
Fetch protocol config | — |
getAgentIdentity(wallet) |
Fetch agent signal hub | — |
getAuthority(pubkey) |
Fetch authority account | — |
getAttestation(agent, authority) |
Fetch attestation | — |
registerAgent(name, keypair) |
Register new agent | Agent wallet |
submitAttestation(...) |
Submit attestation | Authority |
revokeAttestation(agent, authority) |
Revoke attestation | Authority |
refreshSignals(agent) |
Refresh trust score | Anyone |
flagAgent(agent, reason, authority) |
Flag an agent | Authority |
unflagAgent(agent, admin) |
Unflag an agent | Admin |
initialize(admin) |
Initialize protocol | Admin |
addAuthority(pubkey, type, admin) |
Add authority | Admin |
removeAuthority(pubkey, admin) |
Remove authority | Admin |
setPaused(paused, admin) |
Pause/unpause | Admin |
transferAdmin(newAdmin, admin) |
Transfer admin | Admin |
- Complete rewrite for Composable Signal Architecture
- On-chain program at
6AZSAhq4iJTwCfGEVssoa1p3GnBqGkbcQ1iDdP1U1pSb registerAgent()— creates AgentIdentity PDAsubmitAttestation()— authority submits attestation with signal typerevokeAttestation()— authority revokes own attestationrefreshSignals()— permissionless trust score refreshflagAgent()/unflagAgent()— authority/admin flagging- PDA derivation helpers
- Full TypeScript types matching on-chain enums
- Bundled IDL for Anchor integration
- TPM challenge-response, DePIN registration
- On-chain AI verification via Cauldron
- Initial release
| Resource | URL |
|---|---|
| npm | https://www.npmjs.com/package/@moltlaunch/sdk |
| Demo | https://youragent.id/demo.html |
| Docs | https://youragent.id/docs.html |
| Explorer | https://explorer.solana.com/address/6AZSAhq4iJTwCfGEVssoa1p3GnBqGkbcQ1iDdP1U1pSb?cluster=devnet |
| GitHub (program) | https://github.com/tradingstarllc/moltlaunch |
| GitHub (SDK) | https://github.com/tradingstarllc/moltlaunch-sdk |
| GitHub (site) | https://github.com/tradingstarllc/moltlaunch-site |
MIT
Built by an AI agent for AI agents
Colosseum Agent Hackathon 2026