ERC-1271: Smart Contract Signature Verification
ERC-1271 lets smart contracts "sign" messages — useful for multi-sigs, smart accounts, DAOs that need to authorize off-chain operations like marketplace listings or governance votes. The contract implements isValidSignature(hash, signature) and returns the magic value 0x1626ba7e on success.
Why It Exists on Ethereum
ecrecover only verifies EOA signatures. Without ERC-1271, a smart contract cannot participate in any flow that uses off-chain signatures (NFT marketplaces, DAO snapshot votes, meta-transactions).
Neo Equivalent
Neo doesn't differentiate "EOA signs" vs "contract signs". Every Neo address is the script hash of a verification script — single-sig CHECKSIG, multi-sig CHECKMULTISIG, or arbitrary contract via NEP-30 verify. The protocol invokes the right verifier automatically. Off-chain signature verification uses CryptoLib.VerifyWithECDsa.
Live on Neo TestNet
Both implementations deployed on Neo N3 TestNet.
| Implementation | TestNet Address | Contract Hash |
|---|---|---|
Solidity (neo-solc) | Nh2dZYCdvA6KfgeJ78712Twq5tZVRANtdk | 0x88eec008…e92b9de7 |
Neo C# (nccs) | NXq82dqPfYsB4gYxpurbn2sft8tT9v4NL2 | 0x88079ecd…a8cfb682 |
Checked-in snapshot covers pre-setup state. The manifest now also exercises one-owner setup, threshold update, and owner membership; the C# version exposes Verify() for native NEP-30 multi-sig witnessing. docs/standards-mirror/deployments/erc-1271/.
