我有 solana 不可替代的代币和资产(图片)。
我想将图像与令牌链接。
我也想创建智能合约但不知道它是什么?
任何人都知道如何做到这一点?
I want to link image with token.
将您的图像上传到服务。这是一个很好的:https ://nft.storage/files/
创建 json 文件 ( https://docs.metaplex.com/nft-standard )。将uri
字段设置为上面的图像链接
将 `json 文件上传到服务 ( https://docs.metaplex.com/nft-standard )。
为您的令牌创建一个元数据帐户:它是程序派生地址 (PDA),派生密钥为 ['metadata', metadata_program_id, mint_id]。https://docs.metaplex.com/nft-standard
现在你可以将你的代币铸造给任何人。他们应该能够在钱包中看到 NFT。
这是我创建元数据帐户的示例代码:https ://github.com/batphonghan/minter_machine/blob/dbb1e4cd82f47d5062ca14615f0511d4c8631517/minter_server_actix/src/mint_token.rs#L29
I also want to create smart contract but don't know what it is ?
这是一个在 solana 中称为 program 的链上代码。您不需要它来创建元数据帐户。Metaplex 团队已经部署了它。
是的,使用区块链 API 非常容易做到这一点。
请参阅他们文档中的“在 Solana 上创建 NFT”端点。
以下是一些示例(Python、Javascript)。
以下是如何在 Python 中执行此操作:
pip install theblockchainapi
然后:
from theblockchainapi import TheBlockchainAPIResource, SolanaCurrencyUnit
# Get an API key pair for free here: https://dashboard.theblockchainapi.com/
MY_API_KEY_ID = None
MY_API_SECRET_KEY = None
BLOCKCHAIN_API_RESOURCE = TheBlockchainAPIResource(
api_key_id=MY_API_KEY_ID,
api_secret_key=MY_API_SECRET_KEY
)
def example():
"""
This example creates a new wallet, gets an airdrop to mint an NFT, and then mints an NFT.
"""
try:
assert MY_API_KEY_ID is not None
assert MY_API_SECRET_KEY is not None
except AssertionError:
raise Exception("Fill in your key ID pair!")
# Create a wallet
secret_key = BLOCKCHAIN_API_RESOURCE.generate_secret_key()
public_key = BLOCKCHAIN_API_RESOURCE.derive_public_key(
secret_recovery_phrase=secret_key
)
print(f"Public Key: {public_key}")
print(f"Secret Key: {secret_key}")
# Get an airdrop on the devnet in order to be able to mint an NFT
BLOCKCHAIN_API_RESOURCE.get_airdrop(public_key)
# We need to make sure this has time to process before minting the NFT!
import time
time.sleep(25)
def get_balance():
balance_result = BLOCKCHAIN_API_RESOURCE.get_balance(public_key, unit=SolanaCurrencyUnit.SOL)
print(f"Balance: {balance_result['balance']}")
get_balance()
# Mint an NFT
nft = BLOCKCHAIN_API_RESOURCE.create_nft(
secret_recovery_phrase=secret_key,
nft_name="The Blockchain API",
nft_symbol="BLOCKX",
nft_url="https://pbs.twimg.com/profile_images/1441903262509142018/_8mjWhho_400x400.jpg"
)
print("NFT: ", nft)
print(f"You can view the NFT here: {nft['explorer_url']}")
if __name__ == '__main__':
example()