# 潜在空投-Botanixlabs测试网操作教程 **Published by:** [Mossmind](https://paragraph.com/@mossmind/) **Published on:** 2024-12-20 **URL:** https://paragraph.com/@mossmind/botanixlabs ## Content 项目介绍Botanix 是比特币上完全去中心化的第 2 层 EVM,项目结合EVM 的易用性和多功能性与比特币的去中心化和安全性相结合,在比特币之上构建以太坊虚拟机 (EVM)。其定位非常清晰,希望成为比特币DeFi的中心,激活比特币资本市场,解锁比特币链上的万亿美元市场。 如果你关心btc相关的项目,值得参与测试网,参与方式:配置钱包网络、领水、使用生态Dapp,部署合约或代币等。安装 EVM钱包Botanix EVM 与以太坊完全等效。因此,它可与所有 EVM 钱包(如 MetaMask / Okx 插件)直接配合使用。连接到测试网有两种不同的方式可以连接到测试网络。自动连接:打开链接:https://bridge.botanixlabs.dev/ 点击“Connect”钱包授权确认即可自动连接测试网 如果您想自动连接到 Botanix 测试网,只需导航到我们的Bridge,我们将指导您完成整个过程。手动连接:要将 Botanix Testnet 手动添加到您的钱包,请使用以下信息: Network Name: Botanix Testnet New RPC URL: https://node.botanixlabs.dev Chain ID: 3636 Currency Symbol: BTC Block Explorer URL: https://testnet.botanixscan.io/ 如何添加自定义测试网络,请按照此处的 MetaMask 说明进行操作即可:领取测试代币-领水做日常交互需要测试代币,下面介绍2种领水方式:Mutinynet 水龙头 + Botanix Bridge前往https://bridge.botanixlabs.dev/,连接并验证你的 web3 钱包,复制您的存款地址(Gateway Address)前往https://faucet.mutinynet.com/ 选择金额,将存款地址粘贴到目标字段,然后 -> rainps:这个环节,我经常操作失败,多试几回才能提交成功。 Make in rain 成功后,按照链接“在 mempool.space 上查看”(https://mutinynet.com/)并复制 交易 tx ID返回https://bridge.botanixlabs.dev/ 页面填写注册您的交易ID:经过 2 次确认后(claim)即可领取资金,资金将在约 5 秒后显示在您的钱包中:银河任务领取访问银河:https://app.galxe.com/quest/botanixlabs 选择相关的任务去做,可以领到不同数量的测试代币(领水)第一种最简单的方式,访问链接:https://docs.google.com/forms/d/e/1FAIpQLScTauOXpRQLYpg7I0lL4cs37scVkicH5VaxjSidhLYhsliiAw/viewform填写您的evm address, 第二天会接收到少量的btc转账发送你的不同 evm 地址之间,用metamask等钱包插件,选择发送菜单,输入发送金额, 提交即可完成交易:提款 Withdraw访问链接:https://bridge.botanixlabs.dev/,连接您的钱包,进行身份验证并选择“Withdraw”选项卡。 选择提款金额,填写接收的比特币钱包地址(可以填写你领水那个地址,也可以填写退回水龙的公共地址:(tb1qd28npep0s8frcm3y7dxqajkcy2m40eysplyr9v)只需单击“提款”,按照钱包中的说明进行操作,一段时间后,资金就会显示在您的比特币钱包中, 您可以在Mutinynet 内存池中检查此地址的传入交易: https://mutinynet.com/zh/address/tb1ppqsnqpql3qxl4uw5hm7es2pw6r9krwy08y3c3xcfwnhx8jsp0lusqqp5y3 链接换成你自己的接收地址,即可查看:部署合约前往合约编辑工具 Ethereum Remix IDE:https://remix.ethereum.org/ 并创建一个新的 Solidity 文件,例如Botanix-token.sol。将以下代码粘贴到新的 Solidity 脚本中:pragma solidity ^0.4.24; //Safe Math Interface contract SafeMath { function safeAdd(uint a, uint b) public pure returns (uint c) { c = a + b; require(c >= a); } function safeSub(uint a, uint b) public pure returns (uint c) { require(b <= a); c = a - b; } function safeMul(uint a, uint b) public pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function safeDiv(uint a, uint b) public pure returns (uint c) { require(b > 0); c = a / b; } } //ERC Token Standard #20 Interface contract ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } //Contract function to receive approval and execute function in one call contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; } //Actual token contract contract BotanixTestToken is ERC20Interface, SafeMath { string public symbol; string public name; uint8 public decimals; uint public _totalSupply; mapping(address => uint) balances; mapping(address => mapping(address => uint)) allowed; constructor() public { symbol = "代币名"; name = "Botanix testnet token"; decimals = 2; _totalSupply = 1000000000; balances[evm 钱包地址] = _totalSupply; emit Transfer(address(0), evm 钱包地址, _totalSupply); } function totalSupply() public constant returns (uint) { return _totalSupply - balances[address(0)]; } function balanceOf(address tokenOwner) public constant returns (uint balance) { return balances[tokenOwner]; } function transfer(address to, uint tokens) public returns (bool success) { balances[msg.sender] = safeSub(balances[msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); emit Transfer(msg.sender, to, tokens); return true; } function approve(address spender, uint tokens) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } function transferFrom(address from, address to, uint tokens) public returns (bool success) { balances[from] = safeSub(balances[from], tokens); allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); emit Transfer(from, to, tokens); return true; } function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { return allowed[tokenOwner][spender]; } function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data); return true; } function () public payable { revert(); } } 替换以下值: 第 62 行:symbol = " ABC ";选择你自己的符号 第 63 行:name = " Botanix testnet token ";选择你自己的名字 第 64 行: decimals = 2;设置小数(代币可分割的值,可使用 0 到 8 个小数单位)并根据需要建立总供应值 第 65 行 _totalSupply = 100000 ; 选择总供应量 第 66 行:balances[ YOUR_METAMASK_WALLET_ADDRESS ] = _totalSupply;请将 YOUR_METAMASK_WALLET_ADDRESS 更改为您自己的钱包地址(您可以在 MetaMask 界面中找到此地址) 第 67 行:发出 Transfer(address(0), YOUR_METAMASK_WALLET_ADDRESS , _totalSupply); 编译"Compile"智能合约。确保根据所选的 Solidity 版本选择正确的编译器:执行部署"Display" 合约:部署成功后,可通过合约地址,在metamask上添加属于自己的代币:使用生态Dapp打开生态Dapp 页面: https://www.botanixlabs.xyz/en/testnet安排好自己的时间,日常能多做尽量多做, 增加 tx 数量~ 第一个 Botanix Bridge ,在领水/提款的时候,已经参与过交互了。 现在挑比较简单的第二个 bitzy.app 进行各种代币的 swap 即可:其他dapp有时间也要多交互~结语觉得有用的,记得关注我的推特,将会持续整理潜在空投交互/dapp/节点/挖矿等详细教程~ https://x.com/MossmindAi ## Publication Information - [Mossmind](https://paragraph.com/@mossmind/): Publication homepage - [All Posts](https://paragraph.com/@mossmind/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@mossmind): Subscribe to updates - [Twitter](https://twitter.com/0xMoss51502): Follow on Twitter