ERC-5192: Minimal Soulbound NFTs
A soulbound token (SBT) is an NFT that cannot be transferred once issued. Use cases: credentials, attestations, badges, voting power tied to identity, KYC artifacts. ERC-5192 adds a single locked(tokenId) view method plus Locked / Unlocked events.
Required Interface
function locked(uint256 tokenId) external view returns (bool);
event Locked(uint256 tokenId);
event Unlocked(uint256 tokenId);A locked token's transferFrom MUST revert.
Neo Equivalent: Direct Port
Neo C# port: track per-token lock state in storage, check it in Transfer. The Neo contract is even simpler than the Solidity version because the witness model naturally enforces who can lock/unlock.
Live on Neo TestNet
Both implementations deployed on Neo N3 TestNet.
| Implementation | TestNet Address | Contract Hash |
|---|---|---|
Solidity (neo-solc) | NQfv7FPi2BWZBnc3PGB9PggK72bJtZL9HH | 0x1b75ecb9…7f3c3034 |
Neo C# (nccs) | NPuqRsgHLPkRZsxEJgs3igKKhZE1nqHVL3 | 0x7081fcf3…3c07da2b |
Checked-in snapshot verifies Solidity issue/locked behavior and the C# symbol; the manifest now also exercises C# issue/locked behavior. docs/standards-mirror/deployments/erc-5192/.
