Как создать и развернуть токен ERC-20 на Ethereum sepolia testnet
17 июня 2025 г.Token ERC-20-это громкий цифровой актив на блокчейне Ethereum, который следует за стандартным интерфейсом (с такими функциями, как функцииtotalSupplyВbalanceOfВtransfer, и т. д.). Стандарт позволяет токенам можно использовать в кошельках и обменах. Разработчики тестируют контракты, прежде чем использовать REAL ETH в TestNet - сеть Blockchain Sandbox со бесплатным эфиром «Play».
Sepolia testnet в настоящее время является основной тестовой сети Ethereum: она активно поддерживается, стабильно и использует доказательство в качестве Mainnet. Sepolia дает разработчикам доверие, позволяя им «взаимодействовать с блокчейном, прежде чем рисковать реальными деньгами». Поставщики узлов, такие как GetBlock, также полезны для разработки Ethereum. GetBlock-это блокчейн как услуга (BAAS), который обеспечивает мгновенный доступ API к полным узлам для Ethereum и многих других цепей.
На практике GetBlock позволяет вам получить уже заправленную конечную точку RPC (HTTP URL) в Сеполию, не используя свой собственный узел. Например, после регистрации вы получаете URLwss://go.getblock.io/1ecbe979e63f420fb1cea042893xxxxx, который вы можете вставить в свои инструменты. Это чрезвычайно удобно для тестирования и развертывания.
Настройка среды разработки
Во -первых, установить общую среду разработки. Убедитесь, что у вас установлены Node.js и NPM (nodejs.org), чтобы вы могли установить пакеты JavaScript. Вам также понадобится редактор кода (например, код VS), кошелек (например, Metamask) и некоторые Sepolia ETH (используйте кран - например,,GetBlock's Faucet) Двумя самыми популярными средами для разработки контракта - это хардхат и ремикс:
- Хардхат. Местная среда развития. Он заботится о таких задачах, как компиляция и развертывание контрактов. Hardhat - это среда разработки для программного обеспечения Ethereum, которая помогает вам редактировать, компилировать, тестировать и развернуть контракты. Начнем с того, что откройте терминал в каталоге вашего проекта и запустите:
 
npm init -y
npm install --save-dev hardhat
npx hardhat         # follow prompts to create a basic project
Это создает жесткий проект, где вы можете написать контракты (вcontracts/) и сценарии (вscripts/)
- Remix IDE. IDE на основе браузера. Remix никогда не должен быть установлен вами. Вы можете писать, компилировать и развернуть контракты со встроенным пользовательским интерфейсом. Выберите среду «инъецированного Web3» и свяжите Metamask для развертывания в Sepolia. Remix удобен для быстрой оценки или тех, кто предпочитает графический интерфейс.
 
Вам также потребуется библиотека контрактов Openzeppelin для шаблонов ERC-20. Openzeppelin предоставляет проверенный код смарт -контракта, такой как базовый контракт ERC20. Вот базовый пример ERC-20:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply);
    }
}
Этот контракт наследует стандартную реализацию ERC-20, устанавливает название токена («MyToken») и Symbol («MTK») и монетные дворыinitialSupplyтокены для развертывателя. Вы можете настроить имя, символ и первоначальное снабжение по желанию. Поскольку вся логика ERC-20 унаследована, вам не нужно писать какие-либо стандартные функции самостоятельно.
Написание контракта на ERC-20 в солидности
Теперь давайте напишем контракт на токен. В вашем проектеcontracts/папка (или в ремиксе), создайте файл какMyToken.solПолем Используйте ERC20 Openzeppelin, как показано:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
    constructor() ERC20("MyToken", "MTK") {
        // Mint 1,000,000 tokens to the deployer
        _mint(msg.sender, 1000000 * (10 ** decimals()));
    }
}
Это делает следующее:ERC20конструктор устанавливает токенимя«mytoken» исимвол«MTK».  А_mintзвонок в конструкторе создает 1 000 000 жетонов (скорректированнымdecimals(), который по умолчанию 18) и назначает их по адресу развертывателя.  Поскольку контракт наследует все функции ERC-20 от OpenZeppelin, вы автоматически получаетеtotalSupply()ВbalanceOf()Вtransfer()Вapprove()и т. д. бесплатно.  Короче говоря, вам нужно было написать только несколько строк кода.
Использование GetBlock для подключения к Sepolia
Перед развертыванием настройте сетевое соединение.Получитьделает это легко. Создайте бесплатную учетную запись на getblock.io и генерируйте конечную точку дляEthereum SepoliaПолем GetBlock даст вам URL JSON-RPC, как:
https://go.getblock.io/<YOUR_ACCESS_TOKEN>
Этот URL -адрес является вашей полной конечной точкой узла для Sepolia. Например, документация GetBlock показывает использование этого URL -адреса с ID цепочки 11155111 для Sepolia. В хардхате вы добавите запись сети вhardhat.config.jsИспользуя этот URL. Например (используя общую конфигурацию GetBlock):
const { getblock } = require("./getblock.config.js");
module.exports = {
  defaultNetwork: "sepolia",
  networks: {
    sepolia: {
      url: getblock.shared.eth.sepolia.rpc[0].go() 
      // this will yield something like "https://go.getblock.io/ACCESS_TOKEN"
    }
  },
  solidity: "0.8.0",
};
В качестве альтернативы, вы можете жестко кодировать свой URL -адрес и закрытый ключ учетной записи:
module.exports = {
  solidity: "0.8.0",
  networks: {
    sepolia: {
      url: "https://go.getblock.io/<YOUR_ACCESS_TOKEN>",
      accounts: ["0xYOUR_PRIVATE_KEY"]
    }
  }
};
С помощью этой конфигурации Hardhat знает, как транслировать транзакции в Sepolia через узлом Getblock. Если вы работаете с Remix, вы можете настроить пользовательскую сеть в Metamask: введите «имя сети» в качестве Ethereum Sepolia Testnet, ID цепочки 11155111 и RPC URL в качестве конечной точки GetBlock. Наконец, вам понадобится тест Sepolia, чтобы заплатить за газ. Отправьте себе ~ 0,1 Sepoliaeth, используя кран (кран getblock).
Развертывание контракта на Сеполию
С готовыми к контракту, пришло время для развертывания. Два общих подхода:
- Скрипт Хардхат. Создайте скрипт развертывания, например,
scripts/deploy.js, в вашем проекте. Пример с ethers.js (хардхат поставляется сethersвстроенный): 
async function main() {
  const [deployer] = await ethers.getSigners();
  console.log("Deploying with account:", deployer.address);
  const Token = await ethers.getContractFactory("MyToken");
  // If your constructor requires an initial supply, pass it here.
  const token = await Token.deploy();
  console.log("Token deployed at address:", token.address);
}
main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });
Сохраните файл и запустите Hardhat для развертывания в Sepolia:
npx hardhat run scripts/deploy.js --network sepolia
При успехе Hardhat печатает развернутый адрес контракта. Например, типичный сценарий развертывания делает:
const HelloWorld = await ethers.getContractFactory("HelloWorld");
const contract = await HelloWorld.deploy();
console.log("Contract deployed at:", contract.address);
Для вашего примера замените "HelloWorld" с "MyToken"(и включите конструктор ARGS, если есть).
- Ремикс. Составьте контракт в Remix, затем перейдите на вкладку «Развернуть и запустить транзакции». Выберите «Инъецированная веб -3» в качестве среды (которая доступна через Metamask). Убедитесь, что ваша метамаска находится в сети Sepolia, а затем развернут для
MyTokenдоговор. Подтвердите транзакцию в Metamask. Remix покажет развернутый контракт в «развернутых контрактах». 
Любой метод будет развернуть транзакцию в Сеполии. Вы можете просто скопировать адрес контракта с вывода.
Проверка и взаимодействие с токеном
После развертывания осмотрите контракт и поиграйте с ним:
- Осмотрите на Sepolia Etherscan. Посетите Sepolia Etherscan и найдите адрес вашего контракта. Используйте кнопку «Проверить и публиковать», чтобы загрузить источник солидности. Самый простой маршрут - через пользовательский интерфейс Etherscan's: посетите вкладку контракта и нажмите «Проверить и публиковать». Вам понадобится та же версия компилятора и любые аргументы для конструктора (если вы предоставили первоначальное предложение). После подтверждения ваш исходный код и ABI можно просматривать любое из Etherscan. Еще одна альтернатива - плагин Hardhat EthersCan, установив ключ API в
hardhat.config.jsНапример: 
etherscan: {
  apiKey: "YOUR_ETHERSCAN_API_KEY"
}
```. Then Hardhat can automatically verify contracts. 
- Взаимодействовать с контрактом. Теперь вы можете вызвать функции ERC-20. На Etherscan на странице «Проверенный контракт» отображается интерфейс «чтение контракта» и «Записать контракт». Например, вызов
name()илиsymbol()Чтобы увидеть имя вашего токена. В ремиксе или любом скрипте Web3 вы можете сделать: 
let token = await ethers.getContractAt("MyToken", "0xYourTokenAddress");
console.log(await token.name()); // e.g. "MyToken"
Если вы используете пользовательский интерфейс Remix, нажмите развернутый контракт, нажмите кнопки «Функции» и т. Д. Если вы нажмете функцию «Имя» в ремиксе, вы увидите свое пользовательское имя токена, которое вы определили.
Вы также можете включить токен в свой кошелек Metamask. Возьмите адрес контракта и в Metamask выберите импортные токены, вставьте адрес, и Metamask автоматически заполнит для вас символ токена. Теперь вы увидите свой новый токен в активах вашего кошелька (с вашим балансом Sepolia).
Следуя этим шагам, вы развернули живой токен ERC-20 на Sepolia. Вы можете отправить его, проверить балансы и в значительной степени относиться к нему как к реальному токену (используя поддельный Eth для газа).
Переход от Testnet в Ethereum mainnet
После того, как вы закончите в Sepolia, вы можете перенести свой токен в Ethereum Mainnet. Процесс такой же с некоторыми различиями: вы будете работать с Real ETH в своем кошельке (плата за газ реальна), и вы должны дважды проверить свой код (рассмотрите аудиты). Вhardhat.config.js, добавить или изменитьmainnetСеть с конечной точкой GetBlock Mainnet. Например:
networks: {
  mainnet: {
    url: getblock.shared.eth.mainnet.rpc[0].go(), // GetBlock mainnet RPC
    accounts: ["0xYOUR_PRIVATE_KEY"]
  }
}
GetBlock также предоставляет Ethereum Mainnet узлы, поэтому вы можете настроить URL -адрес RPC MainNet на панели панели. Вы можете получить доступ к узлам Mainnet и развернуть контракт на проливку на Ethereum так же, как и на Testnet. Идентификатор цепочки Mainnet - это 1. И развернуть с помощью Hardhat:
npx hardhat run scripts/deploy.js --network mainnet
После развертывания проверьтеEtherscan.io(Mainnet) Использование того же процесса «Проверка и публикация» (или плагин etherscan от Hardhat). После проверки ваш токен живет на Ethereum Mainnet.
Короче говоря, наиболее важными шагами были:
- Напишите свой контракт с ERC-20
 - Скомпилируйте это
 - Настройка Hardhat (или Remix) для использования GetBlock Sepolia RPC
 - Развернуть контракт
 - Проверять
 
Служба GetBlock упрощенный доступ к узлу: вам не нужно было запускать свой собственный узел или инфраструктуру снабжения - вы просто подключили HTTP UR. Все эти шаги и инструменты могут быть использованы новичком для развертывания, разработки и поддержания токена ERC-20 в тестах Ethereum и за его пределами.
Оригинал