Arc Defteri Arc Testnet Toolkit
ARC TESTNET · GERÇEK PARA DEĞİL
Cüzdan bağlı değil

Panel

Cüzdanını bağla, Arc Testnet ağını ekle ve bakiyelerini tek yerden gör. Arc, gaz ücretini USDC olarak alan, Circle'ın geliştirdiği EVM uyumlu Layer-1 ağıdır.

Ağ adıArc Testnet
Chain ID5042002
RPCrpc.testnet.arc.network

Native USDC (gaz)

İşlem ücretlerini ödemek için kullanılır. 18 ondalık hassasiyetle tutulur.

USDC (ERC-20)

Standart ERC-20 arayüzü, 6 ondalık. Transfer sekmesinden gönderebilirsin.

EURC (ERC-20)

Euro cinsi stabil coin, 6 ondalık.

Builder yol haritası

  • Cüzdanı bağla ve ağı ekle — yukarıdaki iki adımı tamamla.
  • Musluktan test USDC al — Musluk sekmesinden Circle'ın resmi musluğuna git.
  • Transfer dene — küçük bir USDC transferi göndererek ağı test et.
  • Kendi kontratını yay — Kontrat Yay sekmesindeki hazır kodu Remix'e yapıştır ve dağıt.
  • Kontratını izle — dağıttığın adresi Kontratlarım'a kaydet, mint / transfer yap.

Musluk

Arc Testnet'te işlem yapabilmek için önce test USDC'ye ihtiyacın var. Musluklar captcha/giriş gerektirdiği için tarayıcıda resmi sayfada tamamlanır — buradan direkt yönlendiriyoruz.

Circle Faucet ↗
Resmi musluk. Arc Testnet ağını ve USDC ya da EURC'yi seç, cüzdan adresini yapıştır.
Arc Testnet Explorer ↗
Musluktan gelen işlemi ve bakiyeni burada doğrulayabilirsin.
Arc Resmi Dokümantasyon ↗
RPC uç noktaları, kontrat adresleri ve köprü/swap (App Kit) rehberleri.

Adres kopyala

Transfer

Testnet USDC veya EURC'ni başka bir Arc Testnet adresine gönder.

Kontrat Yay

Kod yazmana gerek yok — aşağıdaki hazır kontratlardan birini kopyala, Remix'e yapıştır, cüzdanınla imzala ve Arc Testnet'e yay. Kod bytecode olarak burada gömülü değil; imzaladığın her deploy senin kontrolünde gerçekleşir.

1 — Basit ERC-20 Token (MyToken)

Kendi test tokenini oluşturur. Sahibi (senin cüzdanın) istediği zaman yeni token basabilir (mint).

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

contract MyToken {
    string public name;
    string public symbol;
    uint8 public constant decimals = 18;
    uint256 public totalSupply;
    address public owner;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    constructor(string memory _name, string memory _symbol, uint256 _initialSupply) {
        name = _name;
        symbol = _symbol;
        owner = msg.sender;
        _mint(msg.sender, _initialSupply * 10 ** decimals);
    }

    function _mint(address to, uint256 amount) internal {
        totalSupply += amount;
        balanceOf[to] += amount;
        emit Transfer(address(0), to, amount);
    }

    function mint(address to, uint256 amount) external {
        require(msg.sender == owner, "not owner");
        _mint(to, amount * 10 ** decimals);
    }

    function transfer(address to, uint256 amount) external returns (bool) {
        require(balanceOf[msg.sender] >= amount, "insufficient balance");
        balanceOf[msg.sender] -= amount;
        balanceOf[to] += amount;
        emit Transfer(msg.sender, to, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) external returns (bool) {
        require(balanceOf[from] >= amount, "insufficient balance");
        require(allowance[from][msg.sender] >= amount, "insufficient allowance");
        balanceOf[from] -= amount;
        balanceOf[to] += amount;
        allowance[from][msg.sender] -= amount;
        emit Transfer(from, to, amount);
        return true;
    }
}

2 — Basit NFT Koleksiyonu (MyNFT)

Sahibinin dilediği adrese, bir URI (görsel/metadata linki) ile NFT basmasını sağlayan sade bir kontrat.

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

contract MyNFT {
    string public name;
    string public symbol;
    address public owner;
    uint256 public totalSupply;

    mapping(uint256 => address) public ownerOf;
    mapping(address => uint256) public balanceOf;
    mapping(uint256 => string) public tokenURI;

    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
        owner = msg.sender;
    }

    function mint(address to, string memory uri) external returns (uint256) {
        require(msg.sender == owner, "not owner");
        totalSupply += 1;
        uint256 tokenId = totalSupply;
        ownerOf[tokenId] = to;
        balanceOf[to] += 1;
        tokenURI[tokenId] = uri;
        emit Transfer(address(0), to, tokenId);
        return tokenId;
    }

    function transferFrom(address from, address to, uint256 tokenId) external {
        require(ownerOf[tokenId] == from, "not owner of token");
        require(msg.sender == from, "not authorized");
        ownerOf[tokenId] = to;
        balanceOf[from] -= 1;
        balanceOf[to] += 1;
        emit Transfer(from, to, tokenId);
    }
}

Remix ile nasıl yayınlanır?

  • remix.ethereum.org adresini aç.
  • Sol menüden File explorer → New File, adını MyToken.sol (ya da MyNFT.sol) koy, yukarıdaki kodu yapıştır.
  • Sol menüden Solidity Compiler sekmesine geç, derleyici sürümünü 0.8.20+ seç, Compile butonuna bas.
  • Sol menüden Deploy & Run Transactions sekmesine geç, Environment olarak Injected Provider — MetaMask seç (cüzdanının Arc Testnet'e bağlı olduğundan emin ol).
  • Constructor alanlarını doldur (örn. isim: "Test Token", sembol: "TTK", arz: 1000), Deploy butonuna bas ve cüzdanında onayla.
  • İşlem onaylanınca çıkan kontrat adresini kopyala, Kontratlarım sekmesine yapıştırıp kaydet.

Kontratlarım

Yayınladığın kontratları burada takip et, mint yap ve bakiyelerini gör.

Kontrat ekle

İşlem Kaydı

Bu uygulama üzerinden gönderdiğin işlemlerin geçmişi. Bu cihazda saklanır.

TürHashDurumZaman
Henüz işlem yok.