Scope of the proposal
One wallet-signed envelope; apps validate off-chain; stable proof ID.- Identities: CAIP-10 style (
did:pkh:…) where used - Chains: CAIP-2 (
eip155:1,solana:mainnet, …)
NEUS anchor
qHash (0x…) is SHAKE-256 (256-bit) of the standardized proof request fields (fixed encoding and field order). SDK responses use proofId for the same value. Verification results
Inputs (conceptual)
Account + chain,verifierIds, data (JSON; use /standardize so field order matches what was signed), signedTimestamp, EVM chainId or non-EVM chain.
Signer string
Six-line UTF-8, LF. The wallet must sign these exact bytes.POST /api/v1/verification/standardize returns signerString for raw HTTP and debugging; the SDK verify() path builds the same message client-side (or use standardizeVerificationRequest when you need the API round-trip).
Profiles
| Chain | Signature | |
|---|---|---|
| EVM | chainId | EIP-191 / 1271 / 6492 |
| Solana | solana:… | Ed25519 |
| Other | CAIP-2 | Profile-specific |
Freshness
RejectsignedTimestamp if older than 5 minutes or more than 60 seconds in the future.