# Scroll testnet

By [Сontinental](https://paragraph.com/@ontinental) · 2023-06-13

---

**Проходимо тестнет з потенціалом на ретродроп від проекту Scroll**

Переходимо за посиланням [https://scroll.io/alpha](https://scroll.io/alpha), коннектимо гаманець і додаємо мережі

![](https://storage.googleapis.com/papyrus_images/7701e13f064f7cc9e2f7f8334f9a04c98fe19279c91c795c83a77133149a847f.jpg)

Для подальшого проходження нам потрібні тестові ETH

[faucet 1](https://faucet.quicknode.com/ethereum/goerli)

[faucet 2](https://goerli-faucet.pk910.de/)

[faucet 3](https://goerlifaucet.com/)

Свапаємо тестовий ETH із мережі Goerli Testnet у Scroll Alpha Testnet [https://scroll.io/alpha/bridge](https://scroll.io/alpha/bridge)

![](https://storage.googleapis.com/papyrus_images/e8f592a7ff18b13e0b7225841d6eeaa8ed2d3296722317e6421562c4452de0be.jpg)

Підпишемо смарт контракти scroll,токена,нфт

Переходимо на [сайт](https://remix.ethereum.org/) і створюємо новий файл

![](https://storage.googleapis.com/papyrus_images/109dd9f88adb96950cc1f30d17055fb47a6ec16712bdc0ccfeadbe4a9f17580d.jpg)

Після чого вставляємо наступний код

// SPDX-License-Identifier: MIT pragma solidity >=0.7.0 <0.9.0; contract HelloWorld {

string public message;

constructor(string memory initMessage) {

      message = initMessage;
    

}

function update(string memory newMessage) public { message = newMessage; } }

І нажимаємо на зелену стрілку після чого переходимо на синю стрілку

![](https://storage.googleapis.com/papyrus_images/335602be66b4df30ea2023ce62db9fd1bac9c376409099de2587a8fded3fb23b.jpg)

Вибираємо метамаск і нажимаємо **Deploy** і підписуємо транзакцію

![](https://storage.googleapis.com/papyrus_images/4aaceec8d227b472cf6e11de5eb42df2076fd6810575fa0aba794b79bad42fd1.jpg)

Ми добавили контракт scroll тепер повторюємо ті ж самі дії але з контрактом токена і нфт

контракт токена

// SPDX-License-Identifier: MIT pragma solidity >=0.8.17;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract CryptoSoftTools is ERC20 {

    constructor(string memory) ERC20("CryptoSoft Tools", "CST") {
        _mint(msg.sender, 1000000 * 10 ** decimals());
    }
    

}

контракт нфт

// SPDX-License-Identifier: MIT pragma solidity ^0.8.17;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Counters.sol";

contract NFT is ERC721 { using Counters for Counters.Counter; Counters.Counter private currentTokenId;

    constructor() ERC721("NFT Name", "NFT") {}
    
    function mint(address recipient)
        public
        returns (uint256)
    {
        currentTokenId.increment();
        uint256 tokenId = currentTokenId.current();
        _safeMint(recipient, tokenId);
        return tokenId;
    }
    

}

---

*Originally published on [Сontinental](https://paragraph.com/@ontinental/scroll-testnet)*
