4

我有 solana 不可替代的代币和资产(图片)。

我想将图像与令牌链接。

我也想创建智能合约但不知道它是什么?

任何人都知道如何做到这一点?

4

2 回答 2

1

I want to link image with token.

  1. 将您的图像上传到服务。这是一个很好的:https ://nft.storage/files/

  2. 创建 json 文件 ( https://docs.metaplex.com/nft-standard )。将uri字段设置为上面的图像链接

  3. 将 `json 文件上传到服务 ( https://docs.metaplex.com/nft-standard )。

  4. 为您的令牌创建一个元数据帐户:它是程序派生地址 (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 团队已经部署了它。

于 2021-12-27T07:18:03.867 回答
0

是的,使用区块链 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()
于 2021-10-19T18:09:25.457 回答