ERC-721 నాన్-ఫంగిబుల్ టోకెన్ ప్రమాణం
పేజీ చివరి అప్డేట్: 25 ఫిబ్రవరి, 2026
పరిచయం
నాన్-ఫంగిబుల్ టోకెన్ అంటే ఏమిటి?
ఒక నాన్-ఫంగిబుల్ టోకెన్ (NFT) ఏదైనా లేదా ఎవరినైనా ప్రత్యేకమైన మార్గంలో గుర్తించడానికి ఉపయోగించబడుతుంది. సేకరించదగిన వస్తువులు, యాక్సెస్ కీలు, లాటరీ టిక్కెట్లు, కచేరీలు మరియు క్రీడా మ్యాచ్ల కోసం నంబర్ చేసిన సీట్లు మొదలైనవాటిని అందించే ప్లాట్ఫారమ్లపై ఉపయోగించడానికి ఈ రకమైన టోకెన్ సరైనది. ఈ ప్రత్యేక రకమైన టోకెన్కు అద్భుతమైన అవకాశాలు ఉన్నాయి కాబట్టి ఇది సరైన ప్రమాణానికి అర్హమైనది, ERC-721 దానిని పరిష్కరించడానికి వచ్చింది!
ERC-721 అంటే ఏమిటి?
ERC-721 NFT కోసం ఒక ప్రమాణాన్ని పరిచయం చేస్తుంది, మరో మాటలో చెప్పాలంటే, ఈ రకమైన టోకెన్ ప్రత్యేకమైనది మరియు అదే స్మార్ట్ కాంట్రాక్ట్ నుండి మరొక టోకెన్ కంటే దాని వయస్సు, అరుదుగా ఉండటం లేదా దాని దృశ్యం వంటి వాటి వలన భిన్నమైన విలువను కలిగి ఉండవచ్చు. ఆగండి, దృశ్యమా?
అవును! అన్ని NFTలలో tokenId అని పిలువబడే uint256 వేరియబుల్ ఉంటుంది, కాబట్టి ఏ ERC-721 కాంట్రాక్ట్ కోసమైనా, కాంట్రాక్ట్ చిరునామా, uint256 tokenId జత ప్రపంచవ్యాప్తంగా ప్రత్యేకంగా ఉండాలి. అది చెప్పాలంటే, ఒక డాప్కు "కన్వర్టర్" ఉండవచ్చు, అది tokenIdని ఇన్పుట్గా ఉపయోగించి, జాంబీలు, ఆయుధాలు, నైపుణ్యాలు లేదా అద్భుతమైన పిల్లుల వంటి అద్భుతమైన వాటి చిత్రాన్ని అవుట్పుట్ చేస్తుంది!
అవసరాలు
బాడీ
జనవరి 2018లో విలియం ఎంట్రికెన్, డీటర్ షిర్లీ, జాకబ్ ఎవాన్స్, నస్టాసియా సాచ్స్ ద్వారా ప్రతిపాదించబడిన ERC-721 (Ethereum రిక్వెస్ట్ ఫర్ కామెంట్స్ 721), స్మార్ట్ కాంట్రాక్ట్లలో టోకెన్ల కోసం APIని అమలు చేసే ఒక నాన్-ఫంగిబుల్ టోకెన్ ప్రమాణం.
ఇది ఒక ఖాతా నుండి మరొక ఖాతాకు టోకెన్లను బదిలీ చేయడం, ఒక ఖాతా యొక్క ప్రస్తుత టోకెన్ బ్యాలెన్స్ను పొందడం, ఒక నిర్దిష్ట టోకెన్ యజమానిని పొందడం మరియు నెట్వర్క్లో అందుబాటులో ఉన్న టోకెన్ యొక్క మొత్తం సరఫరాను పొందడం వంటి కార్యాచరణలను అందిస్తుంది. వీటితో పాటు, ఒక ఖాతా నుండి కొంత మొత్తంలో టోకెన్ను మూడవ పార్టీ ఖాతా ద్వారా తరలించవచ్చని ఆమోదించడం వంటి ఇతర కార్యాచరణలు కూడా దీనికి ఉన్నాయి.
ఒక స్మార్ట్ కాంట్రాక్ట్ కింది పద్ధతులు మరియు ఈవెంట్లను అమలు చేస్తే దానిని ERC-721 నాన్-ఫంగిబుల్ టోకెన్ కాంట్రాక్ట్ అని పిలవవచ్చు మరియు, ఒకసారి అమలు చేయబడిన తర్వాత, ఇది ఇతీరియములో సృష్టించబడిన టోకెన్ల ట్రాక్ను ఉంచడానికి బాధ్యత వహిస్తుంది.
EIP-721 (opens in a new tab) నుండి:
పద్ధతులు
1 function balanceOf(address _owner) external view returns (uint256);2 function ownerOf(uint256 _tokenId) external view returns (address);3 function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;4 function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;5 function transferFrom(address _from, address _to, uint256 _tokenId) external payable;6 function approve(address _approved, uint256 _tokenId) external payable;7 function setApprovalForAll(address _operator, bool _approved) external;8 function getApproved(uint256 _tokenId) external view returns (address);9 function isApprovedForAll(address _owner, address _operator) external view returns (bool);అన్నీ చూపించుఈవెంట్లు
1 event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);2 event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);3 event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);ఉదాహరణలు
ఇతీరియములో ఏదైనా ERC-721 టోకెన్ కాంట్రాక్ట్ను పరిశీలించడానికి విషయాలను మన కోసం సులభతరం చేయడంలో ఒక ప్రమాణం ఎంత ముఖ్యమైనదో చూద్దాం. ఏదైనా ERC-721 టోకెన్కు ఇంటర్ఫేస్ను సృష్టించడానికి మనకు కేవలం కాంట్రాక్ట్ అప్లికేషన్ బైనరీ ఇంటర్ఫేస్ (ABI) అవసరం. దిగువన మీరు చూడగలిగినట్లుగా మేము దీనిని సులభమైన ఉదాహరణగా చేయడానికి ఒక సరళీకృత ABI ని ఉపయోగిస్తాము.
Web3.py ఉదాహరణ
మొదట, మీరు Web3.py (opens in a new tab) పైథాన్ లైబ్రరీని ఇన్స్టాల్ చేసుకున్నారని నిర్ధారించుకోండి:
1pip install web31from web3 import Web32from web3._utils.events import get_event_data345w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com"))67ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # క్రిప్టోకిట్టీస్ కాంట్రాక్ట్89acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # క్రిప్టోకిట్టీస్ సేల్స్ వేలం1011# ఇది ఒక ERC-721 NFT కాంట్రాక్ట్ యొక్క సరళీకృత కాంట్రాక్ట్ అప్లికేషన్ బైనరీ ఇంటర్ఫేస్ (ABI).12# ఇది కేవలం పద్ధతులను మాత్రమే బహిర్గతం చేస్తుంది: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply()13simplified_abi = [14 {15 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}],16 'name': 'balanceOf',17 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],18 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True19 },20 {21 'inputs': [],22 'name': 'name',23 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}],24 'stateMutability': 'view', 'type': 'function', 'constant': True25 },26 {27 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}],28 'name': 'ownerOf',29 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}],30 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True31 },32 {33 'inputs': [],34 'name': 'symbol',35 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}],36 'stateMutability': 'view', 'type': 'function', 'constant': True37 },38 {39 'inputs': [],40 'name': 'totalSupply',41 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}],42 'stateMutability': 'view', 'type': 'function', 'constant': True43 },44]4546ck_extra_abi = [47 {48 'inputs': [],49 'name': 'pregnantKitties',50 'outputs': [{'name': '', 'type': 'uint256'}],51 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True52 },53 {54 'inputs': [{'name': '_kittyId', 'type': 'uint256'}],55 'name': 'isPregnant',56 'outputs': [{'name': '', 'type': 'bool'}],57 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True58 }59]6061ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi)62name = ck_contract.functions.name().call()63symbol = ck_contract.functions.symbol().call()64kitties_auctions = ck_contract.functions.balanceOf(acc_address).call()65print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}")6667pregnant_kitties = ck_contract.functions.pregnantKitties().call()68print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}")6970# బదిలీ చేయబడిన కిట్టీల గురించి సమాచారం పొందడానికి ట్రాన్స్ఫర్ ఈవెంట్ ABIని ఉపయోగించడం.71tx_event_abi = {72 'anonymous': False,73 'inputs': [74 {'indexed': False, 'name': 'from', 'type': 'address'},75 {'indexed': False, 'name': 'to', 'type': 'address'},76 {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}],77 'name': 'Transfer',78 'type': 'event'79}8081# లాగ్స్ను ఫిల్టర్ చేయడానికి మాకు ఈవెంట్ యొక్క సంతకం అవసరం82event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex()8384logs = w3.eth.get_logs({85 "fromBlock": w3.eth.block_number - 120,86 "address": w3.to_checksum_address(ck_token_addr),87 "topics": [event_signature]88})8990# గమనికలు:91# - ఏ ట్రాన్స్ఫర్ ఈవెంట్ తిరిగి రాకపోతే బ్లాక్ల సంఖ్యను 120 నుండి పెంచండి.92# - మీకు ఏ ట్రాన్స్ఫర్ ఈవెంట్ కనుగొనబడకపోతే, మీరు ఇక్కడ కూడా ఒక tokenIdని పొందడానికి ప్రయత్నించవచ్చు:93# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events94# ఈవెంట్ యొక్క లాగ్లను విస్తరించడానికి క్లిక్ చేసి, దాని "tokenId" వాదనను కాపీ చేయండి95recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs]9697if recent_tx:98 kitty_id = recent_tx[0]['tokenId'] # పైన ఉన్న లింక్ నుండి "tokenId"ని ఇక్కడ అతికించండి99 is_pregnant = ck_contract.functions.isPregnant(kitty_id).call()100 print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}")అన్నీ చూపించుక్రిప్టోకిట్టీస్ కాంట్రాక్ట్లో ప్రామాణికమైన వాటి కంటే కొన్ని ఆసక్తికరమైన ఈవెంట్లు ఉన్నాయి.
వాటిలో రెండింటిని చూద్దాం, Pregnant మరియు Birth.
1# కొత్త కిట్టీల గురించి సమాచారం పొందడానికి ప్రెగ్నెంట్ మరియు బర్త్ ఈవెంట్స్ ABIని ఉపయోగించడం.2ck_extra_events_abi = [3 {4 'anonymous': False,5 'inputs': [6 {'indexed': False, 'name': 'owner', 'type': 'address'},7 {'indexed': False, 'name': 'matronId', 'type': 'uint256'},8 {'indexed': False, 'name': 'sireId', 'type': 'uint256'},9 {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}],10 'name': 'Pregnant',11 'type': 'event'12 },13 {14 'anonymous': False,15 'inputs': [16 {'indexed': False, 'name': 'owner', 'type': 'address'},17 {'indexed': False, 'name': 'kittyId', 'type': 'uint256'},18 {'indexed': False, 'name': 'matronId', 'type': 'uint256'},19 {'indexed': False, 'name': 'sireId', 'type': 'uint256'},20 {'indexed': False, 'name': 'genes', 'type': 'uint256'}],21 'name': 'Birth',22 'type': 'event'23 }]2425# లాగ్స్ను ఫిల్టర్ చేయడానికి మాకు ఈవెంట్ యొక్క సంతకం అవసరం26ck_event_signatures = [27 w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(),28 w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(),29]3031# ఇది ఒక ప్రెగ్నెంట్ ఈవెంట్:32# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog33pregnant_logs = w3.eth.get_logs({34 "fromBlock": w3.eth.block_number - 120,35 "address": w3.to_checksum_address(ck_token_addr),36 "topics": [ck_event_signatures[0]]37})3839recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs]4041# ఇది ఒక బర్త్ ఈవెంట్:42# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a43birth_logs = w3.eth.get_logs({44 "fromBlock": w3.eth.block_number - 120,45 "address": w3.to_checksum_address(ck_token_addr),46 "topics": [ck_event_signatures[1]]47})4849recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs]అన్నీ చూపించుప్రజాదరణ పొందిన NFTలు
- Etherscan NFT ట్రాకర్ (opens in a new tab) బదిలీల పరిమాణం ద్వారా ఇతీరియములో అగ్ర NFTలను జాబితా చేస్తుంది.
- CryptoKitties (opens in a new tab) అనేది మనం క్రిప్టోకిట్టీస్ అని పిలిచే పెంపకానికి, సేకరించడానికి మరియు ఎంతో ఆరాధనీయమైన జీవుల చుట్టూ కేంద్రీకృతమైన ఒక గేమ్.
- Sorare (opens in a new tab) ఒక గ్లోబల్ ఫాంటసీ ఫుట్బాల్ గేమ్, ఇక్కడ మీరు పరిమిత ఎడిషన్ సేకరించదగిన వస్తువులను సేకరించవచ్చు, మీ జట్లను నిర్వహించవచ్చు మరియు బహుమతులు సంపాదించడానికి పోటీపడవచ్చు.
- ఇతీరియము నేమ్ సర్వీస్ (ENS) (opens in a new tab) బ్లాక్చైన్ పైన మరియు బయట వనరులను సరళమైన, మానవ-చదవగల పేర్లను ఉపయోగించి చిరునామా చేయడానికి సురక్షితమైన & వికేంద్రీకృత మార్గాన్ని అందిస్తుంది.
- POAP (opens in a new tab) ఈవెంట్లకు హాజరయ్యే లేదా నిర్దిష్ట చర్యలను పూర్తి చేసే వ్యక్తులకు ఉచిత NFTలను అందిస్తుంది. POAPలను సృష్టించడం మరియు పంపిణీ చేయడం ఉచితం.
- Unstoppable Domains (opens in a new tab) అనేది శాన్ ఫ్రాన్సిస్కో ఆధారిత సంస్థ, ఇది బ్లాక్చైన్లపై డొమైన్లను నిర్మిస్తోంది. బ్లాక్చైన్ డొమైన్లు క్రిప్టోకరెన్సీ చిరునామాలను మానవ-చదవగల పేర్లతో భర్తీ చేస్తాయి మరియు సెన్సార్షిప్-నిరోధక వెబ్సైట్లను ప్రారంభించడానికి ఉపయోగించవచ్చు.
- Gods Unchained Cards (opens in a new tab) ఇతీరియము బ్లాక్చైన్పై ఒక TCG, ఇది గేమ్లోని ఆస్తులకు నిజమైన యాజమాన్యాన్ని తీసుకురావడానికి NFTలను ఉపయోగిస్తుంది.
- Bored Ape Yacht Club (opens in a new tab) అనేది 10,000 ప్రత్యేకమైన NFTల సమాహారం, ఇది నిరూపించదగిన-అరుదైన కళాఖండంగా ఉండటంతో పాటు, క్లబ్కు సభ్యత్వ టోకెన్గా పనిచేస్తుంది, కమ్యూనిటీ ప్రయత్నాల ఫలితంగా కాలక్రమేణా పెరిగే సభ్యుల ప్రోత్సాహకాలు మరియు ప్రయోజనాలను అందిస్తుంది.