from web3 import Web3 import requests import json # Web3 프로바이더 설정 (여기서는 Infura 사용, 자신의 프로젝트 ID로 대체) INFURA_URL = "https://polygon-mainnet.infura.io/v3/16185d569adf4d00a04f2d2a200cf231" web3 = Web3(Web3.HTTPProvider(INFURA_URL)) # 토큰 컨트랙트 주소 및 ABI (최소한 tokenURI 함수를 포함해야 함) token_contract_address = "0xA4B37bE40F7b231Ee9574c4b16b7DDb7EAcDC99B" token_id = 1654492 # 컨트랙트 ABI의 일부 예시 (실제 ABI로 대체 필요) contract_abi = [ { "constant": True, "inputs": [{"name": "_tokenId", "type": "uint256"}], "name": "tokenURI", "outputs": [{"name": "", "type": "string"}], "payable": False, "stateMutability": "view", "type": "function" }, ] # 컨트랙트 인스턴스 생성 contract = web3.eth.contract(address=token_contract_address, abi=contract_abi) # tokenURI 호출하여 메타데이터 URI 가져오기 token_uri = contract.functions.tokenURI(token_id).call() # 메타데이터 URI에서 JSON 메타데이터 다운로드 metadata_response = requests.get(token_uri) metadata = metadata_response.json() # 메타데이터에서 NFT 이름 추출 nft_name = metadata.get("name", "Name not found") print(f"NFT Name: {nft_name}")