Coinbase Verifications
Identity
Official
Best for: Agents needing verified human operator identity; KYC-gated DeFi; compliance-first applications
Not ideal for: Anonymous operations; non-Base chains (primarily Base); self-sovereign identity
Key Signals
Attestation Type
KYC-backed attestations
Pricing
Free for verified users
Features
✅
KYC-Backed On-chain Attestations via EAS
Coinbase issues on-chain attestations via the Ethereum Attestation Service for users who have completed KYC on Coinbase. The attestation proves that the holder is a verified real person, bridging Web2 identity verification with on-chain credentials.
🆔
"Verified Account" and "Verified Country" Schemas
Two pre-built schemas: "cbVerifiedAccount" confirms the address belongs to a KYC-verified Coinbase user, "cbVerifiedCountry" confirms the user's verified country of residence. Smart contracts can gate access to these specific schemas.
🔵
Base-Native
Deployed primarily on Base, Coinbase's L2 network. Attestations are cheap to check (near-zero gas on Base) and integrate naturally with other Base-native DeFi protocols. Also available on Ethereum mainnet for cross-chain use cases.
💸
Free for Verified Coinbase Users
Any Coinbase user who has completed KYC can claim their on-chain verification for free. Agent operators can direct their users to claim attestations as part of onboarding, enabling KYC-gated agent features without building custom identity infrastructure.
Ratings
Ratings based on documentation review, GitHub activity, and public developer reports. Not independently verified in production.
Integration
npm install @ethereum-attestation-service/eas-sdk ethers
import { EAS } from '@ethereum-attestation-service/eas-sdk';
import { ethers } from 'ethers';
const CB_VERIFIED_ACCOUNT = '0xf8b05c79f090979bf4a80270aba232dff11a10d9ba197aca2d398d3f941b9907';
const CB_VERIFIED_COUNTRY = '0x1801901fabd0e6189356b4fb52bb0ab855276d84f7ec140839checkpoints';
const EAS_BASE_ADDRESS = '0x4200000000000000000000000000000000000021';
const eas = new EAS(EAS_BASE_ADDRESS);
const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
async function isVerifiedCoinbaseUser(walletAddress) {
const attestations = await eas.getAttestations({
schema: CB_VERIFIED_ACCOUNT,
recipient: walletAddress,
revoked: false,
});
return attestations.length > 0;
}
const operatorAddress = '0xOPERATOR_WALLET';
const verified = await isVerifiedCoinbaseUser(operatorAddress);
console.log(`Operator KYC verified: ${verified}`);