Entros_docs
Reference

Costs

The canonical numbers for fees, compute units, and rent.

Two cost surfaces matter: the user pays a small fee per verification, and each on-chain operation consumes compute units against Solana's block budget.

Protocol fee

A single user transaction invokes one of the instructions below—not a sum across them. Per-action cost is 0.005 SOL.

OperationFeeConfigurableWhen
mint_anchor0.005 SOLverification_fee in ProtocolConfigFirst verification (one-time per wallet)
update_anchor0.005 SOLsameEach subsequent re-verification
reset_identity_state0.005 SOLsameRecovery path, gated behind a 7-day cooldown

The two-signer migrate_identity flow used for wallet migration charges through a separate migration_fee field on ProtocolConfig, set independently of the main verification fee.

The fee is charged to the user in wallet-connected mode—signed and paid in the same transaction that mints or updates the Anchor. The walletless capture path on entros.io/verify is a no-wallet preview of the capture experience and incurs no protocol fee; it does not write on-chain identity, attestations, or Trust Score.

The fee accumulates in the Treasury PDA owned by entros-registry. The protocol authority (currently the team, decentralizing post-audit) draws from the treasury for protocol operations.

Compute units

The dominant on-chain cost is the Groth16 proof verification, which runs as part of the verification transaction alongside the update_anchor (re-verification) or mint_anchor (first verification) PDA write. The SDK pre-bundles a ComputeBudgetProgram.setComputeUnitLimit instruction so the batched transaction fits within Solana's compute budget: 300,000 when the encrypted-baseline write rides along, 250,000 otherwise.

OperationCeiling CU
verify_proof (standalone, Groth16 verification)~123,000
Full re-verification transaction (create_challenge + verify_proof + update_anchor + set_encrypted_baseline)~167,000
Full first-verification transaction (create_challenge + verify_proof + mint_anchor)~240,000
Reading IdentityState (off-chain RPC)0
Cross-program PDA read of IdentityStateunder 1,000
Voter-weight plugin update_voter_weight_record~5,000

The above are upper bounds enforced by the regression suite—each ceiling is the worst-case measurement across ten runs of the LiteSVM test suite (entros-anchor + entros-verifier + entros-registry integration tests). The standalone verify_proof instruction at 123K fits comfortably within Solana's 200K default per-instruction budget. The batched first-verification path at 240K leaves ~10K headroom against the 250K request budget; the re-verification path at 167K leaves ~83K headroom. Selective migration of the hot-path instructions to Pinocchio post-mainnet is planned (see Programs reference) to restore additional headroom on the first-verification path.

Rent

Each new account on Solana requires rent-exempt funding. Numbers below are the amounts the programs actually fund on devnet, which for the mint exceeds bare rent on its declared data size because the metadata extension is funded up front.

AccountSizeRentRefundable
IdentityState593 bytes0.00501816 SOLNo (held while Anchor is active)
Mint (Token-2022 with NonTransferable + MintCloseAuthority + MetadataPointer + TokenMetadata)415 bytes0.00383496 SOLNo
Associated Token Account (Token-2022 with ImmutableOwner)174 bytes0.00210192 SOLNo
Challenge90 bytes0.001517 SOLYes, via close_challenge
VerificationResult182 bytes0.002158 SOLYes, via close_verification_result
Agent metadata entrygoverned by Solana Agent Registry~0.003 SOLIf marked mutable; immutable entries are permanent

Total user-side cost on first verification: protocol fee (0.005 SOL) plus rent for IdentityState + Mint + ATA (~0.01096 SOL one-time) ≈ 0.01596 SOL, plus transaction fees.

A re-verification costs ~0.00867 SOL: the 0.005 SOL protocol fee, plus rent on the two per-attempt accounts the transaction opens (Challenge and VerificationResult), plus transaction fees. The persistent accounts are already funded. Both per-attempt accounts are reclaimable through close_challenge and close_verification_result, which recover 0.00367 SOL per verification once called.

Economic notes

The fee is set deliberately small per individual verification and high enough that holding many Anchors carries real cumulative cost. The verification_fee field on ProtocolConfig is updateable by the protocol authority via update_protocol_config and may evolve as the protocol decentralizes or as SOL economics shift.

Where to look next

On this page