PDAs
Every seed and Program Derived Address used by the protocol.
Each PDA is derived deterministically from its seeds. Knowing the program ID and the seeds is enough to compute the address client-side.
entros-anchor
Program: GZYwTp2ozeuRA5Gof9vs4ya961aANcJBdUzB7LN6q4b2
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
IdentityState | ["identity", user] | entros-anchor | Per-wallet score and commitment record |
Mint | ["mint", user] | entros-anchor | Token-2022 NonTransferable mint |
MintAuthority | ["mint_authority"] | entros-anchor | Program-wide mint authority |
EncryptedBaseline | ["encrypted_baseline", user] | entros-anchor | Wallet-encrypted baseline blob, derived via deriveEncryptedBaselinePda |
entros-verifier
Program: 4F97jNoxQzT2qRbkWpW3ztC3Nz2TtKj3rnKG8ExgnrfV
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
Challenge | ["challenge", challenger, nonce] | entros-verifier | Per-challenge anti-replay |
VerificationResult | ["verification", verifier, nonce] | entros-verifier | Proof outcome record |
entros-registry
Program: 6VBs3zr9KrfFPGd6j7aGBPQWwZa5tajVfA7HN6MMV9VW
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
ProtocolConfig | ["protocol_config"] | entros-registry | Fee, expiry, score caps |
ValidatorState | ["validator", validator] | entros-registry | Per-validator stake |
Vault | ["vault"] | entros-registry | Stake vault |
Treasury | ["protocol_treasury"] | entros-registry | Protocol fee accumulation |
entros-voter-weight
Program: 99nwXzcugse3x8kxE9v6mxZiq8T9gHDoznaaG6qcw534
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
Registrar | ["registrar", realm, governing_token_mint] | entros-voter-weight | Per-realm plugin config |
VoterWeightRecord | ["voter-weight-record", realm, governing_token_mint, voter] | entros-voter-weight | Per-voter weight |
MaxVoterWeightRecord | ["max-voter-weight-record", realm, governing_token_mint] | entros-voter-weight | Realm-wide max-weight cap |
SAS
The Solana Attestation Service program owns the credential, schema, and per-wallet attestation accounts.
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
| Entros credential | hardcoded AMBtabCgRFwGLjoZ21Z2LhSKJ6c47NckxUkMogJ3Lpuw | SAS | Issuer record |
| Entros schema | hardcoded 5LNc7syFW7USPLveVLcNcjjY1xqS7QTXVjHZ7CQCbAMQ | SAS | Schema definition |
| Attestation | ["attestation", credential, schema, user] | SAS | Per-wallet attestation |
Solana Agent Registry
Program: 8oo4J9tBB3Hna1jRQ3rWvJjojqM5DYTDJo5cejUuJy3C on devnet. The SDK reserves a separate mainnet Agent Registry address for future Entros support.
| PDA | Seeds | Owner | Purpose |
|---|---|---|---|
| Agent account | ["agent", agent_asset] | Agent registry | Cached owner and the agent wallet that presents permits |
| Agent metadata entry | ["agent_meta", agent_asset, sha256(key)[0..16]] | Agent registry | Metadata entry against an agent asset |
readAgentState reads the agent's Metaplex Core asset for the owner and the agent account for the agent wallet. The agent wallet counts only while the account's cached owner matches the Core owner.
The entros:human-operator metadata entry holds JSON-encoded UTF-8 inside the registry's Borsh Vec<u8> envelope, with the shape { anchorPda, trustScore, verifiedAt, wallet }. Any agent owner can write it, and it grants no permission. Read it with readAgentOperatorSnapshot as a historical snapshot.
Where to look next
- Programs—each program's instructions
- Read on-chain—code examples for deriving and reading PDAs