ERC-721 tracks a single owner per `tokenId` and adds safe transfers that call `onERC721Received` on contract recipients. ERC-1155 stores `balanceOf(account, id)`, supporting fungible and non-fungible ids in one contract with batch transfers.
function ownerOf(uint256 id) external view returns (address); function balanceOf(address a, uint256 id) external view returns (uint256);
Metadata lives off chain at `tokenURI`; pin it to IPFS if you want it to survive.