{"author":{"address":null,"user":"https://learnblockchain.cn/people/23919"},"content":{"body":"\u003c!--StartFragment--\u003e\r\n\r\n在 solana 链上创建代币的步骤包括：获取 solana 钱包、创建帐户、获取 sol、使用 anchor framework、创建项目、定义代币程序、部署程序、创建 token、铸造代币和分配代币。具体步骤为：获取 solana 钱包（phantom 或 solflare）。创建或导入 solana 帐户。获取测试网 sol。安装 anchor framework。创建新的 anchor 项目。定义代币程序。部署程序。创建 token。铸造代币。分配代币。\r\n\r\n![如何在solana链创建新代币](https://img.php.cn/upload/article/001/420/570/171444078491452.jpg)\r\n\r\n**在 Solana 链上创建新代币**\r\n\r\n**步骤：**\r\n\r\n1. 获取 Solana 钱包：安装 Phantom 或 Solflare 等兼容 Solana 的钱包。\r\n2. 创建帐户：在钱包中创建或导入一个 Solana 帐户。\r\n3. 获取测试网 SOL：对于测试目的，从 Solana 测试网水龙头获取一些 SOL。\r\n4. 使用 Anchor Framework：安装 Anchor Framework，这是一个用于构建 Solana 程序的工具包。\r\n5. 创建项目：使用 anchor init 创建一个新的 Anchor 项目。\r\n6. 定义代币程序：在 programs/my_token/src/lib.rs 中定义代币程序。\r\n7. 布署程序：使用 anchor build 和 anchor deploy 部署程序。\r\n8. 创建 Token：使用 anchor new 创建 Token 实例。\r\n9. 铸造代币：使用 approve 和 transfer 功能铸造代币。\r\n10. 分配代币：将代币分配给其他帐户。\r\n\r\n**详细步骤：**\r\n\r\n**获取 Solana 钱包：**\r\n\r\n* 下载并安装 Phantom 或 Solflare 钱包。\r\n* 创建或导入一个 Solana 帐户。\r\n\r\n**创建项目：**\r\n\r\n* 安装 Anchor Framework：cargo install --[git] anchor-cli。\r\n* 创建一个新的 Anchor 项目：anchor init my_token。\r\n\r\n**定义代币程序：**\r\n\r\n* 在 programs/my_token/src/lib.rs 中添加以下代码：\r\n\u003c!--EndFragment--\u003e\r\n\r\n```js\r\n#[program]\r\npub mod my_token {\r\n    use anchor_lang::prelude::*;\r\n\r\n    #[state]\r\n    #[derive(Accounts)]\r\n    pub struct CreateToken {\r\n        #[account(init, payer = authority, space = 8 + 96)]\r\n        pub token: AccountInfo,\r\n        #[account(mut)]\r\n        pub authority: Signer,\r\n        pub system_program: Program\u003c'info, System\u003e,\r\n        pub token_program: Program\u003c'info, Token\u003e,\r\n    }\r\n\r\n    impl CreateToken {\r\n        pub fn new(ctx: Context\u003cSelf\u003e, name: String, symbol: String, amount: u64) -\u003e Result\u003c()\u003e {\r\n            let token_account = \u0026mut ctx.accounts.token;\r\n            let authority = \u0026ctx.accounts.authority;\r\n            let token_program = \u0026ctx.accounts.token_program;\r\n\r\n            let create_token_ix = anchor_lang::solana_program::system_instruction::create_account(\r\n                \u0026authority.key(),\r\n                \u0026token_account.key(),\r\n                ctx.accounts.system_program.key(),\r\n                \u0026token_program.key(),\r\n                8 + 96,\r\n            );\r\n\r\n            let init_token_ix = anchor_lang::solana_program::token::instruction::initialize_mint(\r\n                \u0026token_program.key(),\r\n                \u0026token_account.key(),\r\n                \u0026authority.key(),\r\n                None,\r\n                0,\r\n            );\r\n\r\n            let mint_ix = anchor_lang::solana_program::token::instruction::mint_to(\r\n                \u0026token_program.key(),\r\n                \u0026token_account.key(),\r\n                \u0026authority.key(),\r\n                None,\r\n                amount\r\n            );\r\n\r\n            anchor_lang::solana_program::program::invoke(\r\n                \u0026token_program.to_account_info(),\r\n                \u0026[\r\n                    create_token_ix,\r\n                    init_token_ix,\r\n                    mint_ix,\r\n                ],\r\n                \u0026[\r\n                    authority.to_account_info(),\r\n                    token_account.to_account_info(),\r\n                    token_program.to_account_info(),\r\n                    system_program.to_account_info()\r\n                ],\r\n            )?;\r\n\r\n            Ok(())\r\n        }\r\n    }\r\n}\r\n```\r\n\u003c!--StartFragment--\u003e\r\n\r\n**部署程序：**\r\n\r\n* 构建程序：anchor build。\r\n* 部署程序：anchor deploy。\r\n\r\n**创建 Token：**\r\n\r\n* 使用 anchor new 创建 Token 实例：anchor new my_token。\r\n\r\n**铸造代币：**\r\n\r\n* 使用 approve 和 transfer 功能铸造代币：\r\n\r\n\u003c!--EndFragment--\u003e\r\n\r\n```js\r\nanchor approve my_token --amount 100\r\nanchor transfer my_token --amount 10 --recipient \u003crecipient_address\u003e\r\n```\r\n\u003c!--StartFragment--\u003e\r\n\r\n**分配代币：**\r\n\r\n* 使用 transfer 功能将代币分配给其他帐户：\r\n\u003c!--EndFragment--\u003e\r\n\r\n```js\r\nanchor transfer my_token --amount 10 --recipient \u003crecipient_address\u003e\r\n```\r\n还有使用像这样的[一键发币平台](https://www.fabipingtai.com)，来创建代码，无代码操作。","title":"如何在solana链创建新代币"},"history":null,"timestamp":1736400778,"version":1}