Entros_docs
Integrate

SAS attestation

Look up a wallet's Entros attestation through the Solana Attestation Service.

SAS is an optional composability surface. One SDK call performs PDA derivation, account fetch, and schema deserialization.

Lookup

import { verifyEntrosAttestation } from "@entros/pulse-sdk";
import { Connection } from "@solana/web3.js";

const connection = new Connection("https://api.devnet.solana.com");
const attestation = await verifyEntrosAttestation(walletBase58, connection);

if (attestation) {
  console.log({
    issuedScore: attestation.trustScore,
    verifiedAt: attestation.verifiedAt,
    expired: attestation.expired,
  });
}

This legacy lookup supports display. A null result can mean missing state or a failed lookup. It does not authenticate an action or implement the strict application policy contract. The return type contains the issuer's stored fields:

type EntrosAttestation = {
  isHuman: boolean;
  trustScore: number;
  verifiedAt: number;
  mode: string;
  expired: boolean;
};

Attestation and current identity evidence

An attestation records the issuer's verification result at issuance time. IdentityState holds the wallet's current stored verification state. SAS issuance is a separate step, so applications must not assume both accounts always contain the same score or timestamp. The legacy isHuman field does not establish unique personhood or trusted sensor provenance.

Use readIntegratorEvidence and evaluatePolicy for a protected server action. The strict reader checks account bindings and transaction evidence. The evaluator applies the application's score, freshness, and attestation requirements. An invalid attestation denies access even when attestation is optional. Missing and unavailable attestations have separate policy behavior. See Read verification evidence and Verification flow.

Schema fields

The Entros schema, registered on SAS, has four fields:

FieldTypeMeaning
isHumanboolWhether the wallet passed the issuer's Entros verification policy
trustScoreu16The Trust Score recorded at attestation time
verifiedAti64Unix timestamp of the verification this attestation snapshots
modestring"wallet-connected" or "walletless"

The current devnet issuer writes only wallet-connected. The field also reserves walletless for a future tier.

The schema is deployed at:

5LNc7syFW7USPLveVLcNcjjY1xqS7QTXVjHZ7CQCbAMQ

The credential issuing the attestations:

AMBtabCgRFwGLjoZ21Z2LhSKJ6c47NckxUkMogJ3Lpuw

The previous devnet credential remains readable for historical records. Use the current credential and schema for new integrations.

Reading from another program

For an on-chain action, validate the attestation's owner, address derivation, credential, schema, wallet binding, supported layout, validity, and expiry. Validate the relevant identity state and application requirements within the same transaction. Deserializing the schema fields alone does not authorize an action.

Wallet-connected issuance

The current issuer binds attestations to wallets that prove control when requesting issuance. The reference application supports wallet-connected verification. It does not offer the planned walletless tier. The reserved mode value does not imply that walletless issuance is available.

Where to look next

On this page