{"license":"CC-BY-4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","attribution":"ChainChoice (https://chainchoice.io)","category":"attestations","evidenceReadAt":"2026-09-27","generatedAt":"2026-11-04","criteria":[{"id":"revocation_and_expiry","label":"Revocation and expiry semantics","weight":32},{"id":"issuer_accountability","label":"Issuer permissioning and identity","weight":26},{"id":"deployment_verifiability","label":"Verifiable chain deployments","weight":24},{"id":"issuance_cost","label":"Cost per attestation","weight":18}],"providers":{"eas":{"revocation_and_expiry":{"s":9,"q":"uint64 expirationTime; // The time when the attestation expires (Unix timestamp). | uint64 revocationTime; // The time when the attestation was revoked (Unix timestamp). | bool revocable; // Whether the attestation is revocable.","u":"https://raw.githubusercontent.com/ethereum-attestation-service/eas-contracts/master/contracts/Common.sol","d":"2026-09-27"},"issuer_accountability":{"s":6,"q":"if (attestation.attester != revoker) {","u":"https://raw.githubusercontent.com/ethereum-attestation-service/eas-contracts/master/contracts/EAS.sol","d":"2026-09-27"},"deployment_verifiability":{"s":9,"q":"#### Optimism Goerli | #### Base Goerli | #### Arbitrum Goerli | #### Linea Goerli | Contract: [0xA1207F3BBa224E2c9c3c6D5aF63D0eb1582Ce587](https://etherscan.io/address/0xA1207F3BBa224E2c9c3c6D5aF63D0eb1582Ce587)","u":"https://raw.githubusercontent.com/ethereum-attestation-service/eas-docs-site/main/docs/quick--start/contracts.md","d":"2026-09-27"},"issuance_cost":{"s":9,"q":"EAS is a free service. However, when making onchain attestations, users will incur gas fees, which vary based on network activity, attestation complexity, and the specific chain used. Offchain attestations, on the other hand, are completely gas-free.","u":"https://raw.githubusercontent.com/ethereum-attestation-service/eas-docs-site/main/docs/quick--start/faqs.md","d":"2026-09-27"}},"verax":{"revocation_and_expiry":{"s":8,"q":"uint64 revocationDate; // The date when the attestation was revoked. | bool revoked; // Whether the attestation is revoked or not. | bytes32 replacedBy; // Whether the attestation was replaced by a new one. | bool isRevocable; // Whether attestations issued can be revoked.","u":"https://raw.githubusercontent.com/Consensys/linea-attestation-registry/dev/contracts/src/types/Structs.sol","d":"2026-09-27"},"issuer_accountability":{"s":9,"q":"function setIssuer(address issuer) public onlyOwner { | ) public onlyAllowlisted(msg.sender) { | if (bytes(name).length == 0) revert PortalNameMissing(); | if (bytes(ownerName).length == 0) revert PortalOwnerNameMissing(); | return isTestnet || isIssuer(user);","u":"https://raw.githubusercontent.com/Consensys/linea-attestation-registry/dev/contracts/src/PortalRegistry.sol","d":"2026-09-27"},"deployment_verifiability":{"s":8,"q":"The core registry and `AttestationReader` addresses below are sourced from the deployment env templates under | Linea Mainnet | Arbitrum Mainnet | Base Mainnet | BSC Mainnet | [0x3de3893aa4Cdea029e84e75223a152FD08315138](https://lineascan.build/address/0x3de3893aa4Cdea029e84e75223a152FD08315138)","u":"https://raw.githubusercontent.com/Consensys/linea-attestation-registry/dev/README.md","d":"2026-09-27"},"issuance_cost":{"s":7,"q":"It is possible to deploy a Portal without writing a single line of code, by simply calling the `deployDefaultPortal` function on the Portal Registry contract.","u":"https://docs.ver.ax/verax-documentation/developer-guides/for-attestation-issuers/create-a-portal.md","d":"2026-09-27"}},"sign_protocol":{"revocation_and_expiry":{"s":10,"q":"This struct represents an on-chain attestation record. This record is not deleted after revocation. | `revokeTimestamp`: When the attestation was revoked. This is automatically populated by `_revoke(...)`. | `validUntil`: The expiration timestamp of the Attestation.","u":"https://docs.sign.global/for-builders/index-1/index/index/index-1/attestation.md","d":"2026-09-27"},"issuer_accountability":{"s":6,"q":"`attester`: The attester. At this time, the attester must be the caller of `attest()`.","u":"https://docs.sign.global/for-builders/index-1/index/index/index-1/attestation.md","d":"2026-09-27"},"deployment_verifiability":{"s":9,"q":"Maintained EVM deployments are upgraded to version `1.1.4` and are owned by `0xAE45849165E17Dc555B8264dD4Ae01a3F42344e2`. Crossed-out networks are legacy deployments that are no longer maintained. | These networks are no longer maintained.","u":"https://docs.sign.global/for-builders/address-book.md","d":"2026-09-27"},"issuance_cost":{"s":8,"q":"To fund the account balance to pay for API key usage, you can purchase credits with USDC (1 USDC = 100 Credits). | Please note the above fees may be adjusted without notice. All fee units are in Credits.","u":"https://docs.sign.global/for-builders/sdp.md","d":"2026-09-27"}},"solana_attestation_service":{"revocation_and_expiry":{"s":3,"q":"Closes an attestation account, permanently removing it from the blockchain. | The attestation's data will be permanently removed from the blockchain | To close an attestation, an `authorized_signer` must sign a *CloseAttestation* instruction.","u":"https://attest.solana.com/docs/llms-full.txt","d":"2026-09-27"},"issuer_accountability":{"s":8,"q":"/// The pubkey of the signer. Must be one of the `authorized_signer`s at time of attestation","u":"https://raw.githubusercontent.com/solana-foundation/solana-attestation-service/master/program/src/state/attestation.rs","d":"2026-09-27"},"deployment_verifiability":{"s":6,"q":"Each of these components is represented on-chain as an account governed by the SAS Program: [`22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdG`](https://explorer.solana.com/address/22zoJMtdu4tQc2PzL74ZUT7FrwgB1Udec8DdW4yw4BdG).","u":"https://attest.solana.com/docs/llms-full.txt","d":"2026-09-27"},"issuance_cost":{"s":7,"q":"let space = 1 + 32 + 32 + 32 + (4 + args.data.len()) + 32 + 8 + 32;","u":"https://raw.githubusercontent.com/solana-foundation/solana-attestation-service/master/program/src/processor/create_attestation.rs","d":"2026-09-27"}},"coinbase_verifications":{"revocation_and_expiry":{"s":4,"q":"represents the status of the relevant individual’s Coinbase account as of the time of issuance, and subsequent changes to the status of such individual’s Coinbase account that result in such attestation no longer being true may not be reflected immediately in the Ethereum Attestation Service.","u":"https://raw.githubusercontent.com/coinbase/verifications/main/README.md","d":"2026-09-27"},"issuer_accountability":{"s":8,"q":"All Coinbase attestations will be issued from this contract / address. | A custom EAS schema resolver contract used by permissioned Coinbase schemas to restrict schema usage to permitted attesters, and to index attestations to the indexer on attest.","u":"https://raw.githubusercontent.com/coinbase/verifications/main/README.md","d":"2026-09-27"},"deployment_verifiability":{"s":6,"q":"Goerli is no longer supported. | [0x357458739F90461b99789350868CD7CF330Dd7EE](https://basescan.org/address/0x357458739F90461b99789350868CD7CF330Dd7EE)","u":"https://raw.githubusercontent.com/coinbase/verifications/main/README.md","d":"2026-09-27"},"issuance_cost":{"s":8,"q":"All Coinbase attestations will be issued from this contract / address.","u":"https://raw.githubusercontent.com/coinbase/verifications/main/README.md","d":"2026-09-27"}},"human_passport-attestations":{"revocation_and_expiry":{"s":5,"q":"Offchain Stamps expire after 90 days. | Onchain scores do not have an explicit expiry date associated with them. Integrators can use the attestation transaction time as a proxy for the issuance date. As a rule of thumb, we recommend expiring scores 90 days after it was created.","u":"https://docs.passport.human.tech/building-with-passport/stamps/major-concepts/expirations","d":"2026-09-27"},"issuer_accountability":{"s":6,"q":"Passport uses a combination of private Passport smart contracts and EAS contracts to create Passport attestations and mint them to the blockchain. | Returns a single boolean, indicating if the user’s score is above the minimum threshold, which is currently set to 20.","u":"https://docs.passport.human.tech/building-with-passport/stamps/smart-contracts/contract-reference","d":"2026-09-27"},"deployment_verifiability":{"s":8,"q":"The decoder is currently deployed to the following networks: | 0xaa24a127d10C68C8F9Ac06199AA606953cD82eE7 | Alternative flow — Deprecated","u":"https://docs.passport.human.tech/building-with-passport/stamps/smart-contracts/contract-reference","d":"2026-09-27"},"issuance_cost":{"s":3,"q":"During this process, the user is charged a $2 mint fee to write the attestations onchain.","u":"https://docs.passport.human.tech/building-with-passport/stamps/smart-contracts/contract-reference","d":"2026-09-27"}},"privado_id-attestations":{"revocation_and_expiry":{"s":7,"q":"Mobile applications can get the Revocation Status of a particular credential by requesting that information straight from the Issuer Node. However, if the Issuer Node is offline for some reason, that communication would not work.","u":"https://raw.githubusercontent.com/PrivadoID/docs/main/docs/issuer/features.md","d":"2026-09-27"},"issuer_accountability":{"s":7,"q":"State Contracts are used for publishing data on the blockchain in scenarios such as issuing MTP-type credentials, generating on-chain proofs, enforcing credential revocations, and providing a timestamping service for tracking expirations during on-chain proof verifications.","u":"https://raw.githubusercontent.com/PrivadoID/docs/main/docs/smart-contracts.md","d":"2026-09-27"},"deployment_verifiability":{"s":7,"q":"We have deployed contracts across the following mainnets and testnets so far: | [Polygon zkEVM](https://zkevm.polygonscan.com/address/0x3C9acB2205Aa72A05F6D77d708b5Cf85FCa3a896) | As part of our unified address methodology, we deployed contracts via the CREATE2 EVM opcode.","u":"https://raw.githubusercontent.com/PrivadoID/docs/main/docs/smart-contracts.md","d":"2026-09-27"},"issuance_cost":{"s":6,"q":"For cloud deployments, the costs will largely depend on the chosen infrastructure services, such as EC2 instances.","u":"https://raw.githubusercontent.com/PrivadoID/docs/main/docs/faqs/content/issuer-node-reducing-infrastructure-costs.md","d":"2026-09-27"}}}}