Category Archives: 01 – Core Concepts

Ethereum Base Network

Welcome to the NZRT Wiki Podcast. Today we’re looking at Ethereum & Base Network.

So first, a quick framing note. NZRT deploys on Base, which is a low-cost Ethereum Layer 2 network built by Coinbase. Base settles back to Ethereum’s main chain, so you get the security of Ethereum with much lower costs. That’s the core reason NZRT uses it, and it’ll make more sense as we walk through the pieces.

Let’s start with some Ethereum basics, because you need these to understand everything that follows.

Ethereum is a proof-of-stake Layer 1 blockchain. Think of it as the foundation — it’s a smart contract platform, meaning you can deploy programs directly onto it that run without a central server. The thing that actually runs those programs is called the EVM, short for Ethereum Virtual Machine. The EVM executes the bytecode of smart contracts, and it runs the same way on every node in the network, which is how you get trustless, consistent execution.

The language most developers use to write those smart contracts is called Solidity. If you’ve seen any Ethereum development work, you’ve probably come across it.

Now, running code on Ethereum costs something. That cost is measured in units called gas. Gas is just the unit of computation — every operation in a smart contract uses a certain amount of it, and you pay for that gas in ETH, which is Ethereum’s native currency.

Speaking of ETH, it’s worth knowing the denominations. The smallest unit is called Wei. One ETH equals ten to the power of eighteen Wei — so an enormous number. In practice, when people talk about gas prices, they usually use Gwei, which is one billion Wei. You’ll see Gwei come up a lot in tooling and configuration, so it’s good to have that in your vocabulary.

Now let’s talk about Base specifically.

Base is what’s called an Optimistic Rollup. That’s a type of Layer 2 solution where transactions are processed off the main Ethereum chain, but the results are periodically posted back to Ethereum for final settlement. The “optimistic” part means transactions are assumed to be valid unless someone challenges them. This approach lets you dramatically reduce costs while still inheriting Ethereum’s security guarantees.

Base was built by Coinbase, its native token is ETH just like Ethereum, and its block time is around two seconds — much faster than Ethereum’s main chain. If you ever need to look up a transaction on Base, the block explorer is at basescan dot org. There’s also a testnet version of Base called Base Sepolia, which is where you’d go to test things without spending real money.

Two numbers worth memorising: the Chain ID for Base Mainnet is 8453, and for the Base Sepolia Testnet it’s 84532. You’ll need these when configuring wallets or developer tools.

On that note, let’s talk about how you actually configure your environment to connect to Base.

When you’re setting up a tool like MetaMask or a development framework like Hardhat to point at Base Mainnet, you’d provide a few key pieces of information. You’d name the network Base, point the connection URL to the mainnet Base endpoint — which you can get either directly from Base or through a provider like Alchemy — set the Chain ID to 8453, set the currency to ETH, and use basescan dot org as the explorer URL.

For the testnet setup — Base Sepolia — it’s the same idea. You’d name it Base Sepolia, point the connection URL to the Sepolia endpoint, use Chain ID 84532, and note that the ETH here is testnet ETH, meaning it has no real value. The explorer for testnet is at sepolia dot basescan dot org. And if you need testnet ETH to actually do anything, Coinbase runs a faucet where you can get some for free.

Faucets, by the way, are just web tools that send you small amounts of testnet currency so you can pay for gas while you’re developing and testing.

That covers the core concepts you need to work with Ethereum and Base at NZRT. To recap: Ethereum is the Layer 1 foundation, the EVM runs smart contracts written in Solidity, gas is what you pay in ETH for computation, and Wei and Gwei are the sub-units of ETH you’ll encounter in tooling. Base sits on top of Ethereum as an Optimistic Rollup — faster, cheaper, same ETH token, Chain ID 8453 for mainnet and 84532 for testnet. When you’re configuring your wallet or dev tools, those two Chain IDs are the key thing to get right.

If you want to go deeper, the wiki also links out to related topics on smart contracts, the Alchemy provider, and the contract deployment process — so those are good next reads if you’re getting hands-on with Base development at NZRT.

That’s it for this episode of the NZRT Wiki Podcast. Thanks for listening.

Gas Transactions

Welcome to the NZRT Wiki Podcast. Today we’re looking at Gas & Transactions.

If you’ve ever sent a transaction on a blockchain network, you’ve encountered gas. Gas is the unit that measures how much computational work a transaction requires. Every on-chain operation you perform consumes gas, and you pay for it in ETH. The good news, especially if you’re working on Base, is that gas fees there are remarkably cheap — we’re talking around one cent per transaction. Compare that to Ethereum’s main layer, where you might pay anywhere from five to fifty dollars or more for the same operation. So the network you choose really does matter.

Let’s break down what actually makes up a transaction. Think of a transaction as a small packet of information sent to the blockchain. It has seven key fields. First, there’s the from field — that’s the sender’s address, identifying who is initiating the transaction. Next is the to field, the recipient’s address, which could be another person’s wallet or a smart contract. Then there’s the value field, holding the amount of ETH you’re sending, measured in a very small unit called Wei. After that comes the data field, used when you’re calling a function on a smart contract — it holds the encoded version of that function call. Then you have the gas field, which sets the gas limit, essentially the maximum amount of gas you’re willing to let the transaction use. Next is the gas price field — under the modern fee model this is called max fee per gas — and it tells the network how much you’re willing to pay per unit of gas, measured in Gwei. Finally, there’s the nonce, a sequential counter that tracks how many transactions a particular address has sent, helping prevent duplicates from being processed.

So how do you calculate what you’ll actually pay? The formula is straightforward. Your transaction fee equals the amount of gas used, multiplied by the gas price. If you know those two numbers, you can work out the cost.

To give you a feel for what that means in practice, let’s look at a few examples on Base. A simple ETH transfer uses around twenty-one thousand gas units. At a gas price of about zero-point-zero-zero-one Gwei, that works out to roughly a fraction of a cent. An ERC-20 token transfer is a bit more involved, using around sixty-five thousand gas units. And if you’re deploying a full smart contract, you’re looking at anywhere from five hundred thousand to two million gas units, depending on how complex the contract is.

Now, there’s a specific fee model worth understanding, called EIP-1559, which arrived with what’s known as the London upgrade to Ethereum. Before this change, gas pricing was a simple open auction. After the upgrade, fees split into two parts. There’s a base fee, set automatically by the network based on how busy it is — and this portion is actually burned, meaning it’s permanently removed from circulation. Then there’s a priority fee, sometimes called a tip, which goes directly to the validator who processes your transaction. The maximum fee you set covers both of these. In practice, this model makes fees more predictable because the base fee adjusts up and down with network demand rather than spiking unpredictably.

When you’re configuring a development environment — say, with a tool like Hardhat — you can set the gas price to auto, which lets the tool determine the appropriate value for you automatically. Or you can specify an exact value in Wei if you need precise control over your costs.

If you’re working on a test network and need some ETH to experiment with, there are a few places to get it for free. For Base Sepolia, the test version of the Base network, you can visit the Coinbase faucets page or Sepolia Faucet dot com. Alchemy also runs a faucet, though that one requires you to have an Alchemy account set up first. These faucets drip small amounts of test ETH into your wallet so you can practice without touching real funds.

To go deeper on what we covered today, check out the related wiki pages on Ethereum and the Base Network, and on Contract Deployment, which gets into what happens when you push a smart contract to the chain and why those gas costs are so much higher than a simple transfer.

That’s it for this episode of the NZRT Wiki Podcast. Thanks for listening.

Wallets Keys

Welcome to the NZRT Wiki Podcast. Today we’re looking at Wallets & Keys.

So let’s start with the core idea, because everything else builds on it. A blockchain wallet doesn’t actually hold your crypto the way a physical wallet holds cash. What it holds is your private key. And that private key is what signs your transactions and proves you own what you own. Put simply: whoever controls the key controls the assets. That’s the most important sentence in this entire topic, and it’s worth keeping front of mind as we go through the rest.

Let’s talk about the different types of keys and identifiers you’ll encounter. There are four to know about. First is the private key itself — this is a 256-bit secret value, and it’s what signs every transaction you make. Second is the public key, which is mathematically derived from your private key and is used to verify those signatures. Third is your address — this is the last 20 bytes of a specific hash of your public key, and it’s your on-chain identity, the thing other people send funds to. Fourth is the seed phrase, sometimes called a mnemonic — this is either 12 or 24 words following the BIP-39 standard, and it can regenerate all the keys in your wallet. Lose the seed phrase and you lose access. Share the seed phrase and you’ve handed over control.

Now let’s look at wallet types, because not all wallets work the same way. There are four main types you’ll come across at NZRT. The first is an EOA, or Externally Owned Account. This is the most common type — it’s directly controlled by a private key, and you use it for regular transactions. The second type is a smart contract wallet, like Gnosis Safe. Instead of being controlled by a single key, it’s controlled by code. This makes it great for multisig setups or team accounts where you want more than one person to approve a transaction. Third is a hardware wallet, like a Ledger device. With this, the private key is stored offline on the device itself, which makes it the most secure option for high-value assets because the key never touches the internet. Fourth is MetaMask, which is a browser extension that acts as an EOA. It’s the tool you’ll typically use for development work and signing transactions in a Web3 environment.

Now let’s talk about how NZRT specifically has things set up. There are two wallets to be aware of. The first is a MetaMask wallet used for deployer work — testnet deployment and signing — running on the Base Sepolia network. The credentials and seed for that live in the ICS Blockchain folder under MetaMask Seed. The second is a Gnosis Safe configured as a two-of-three multisig. That means at least two out of three authorised signers need to approve any transaction. It runs on the Base testnet and is used for contract ownership. You can find the signer details in the ICS Blockchain folder under safe-signers.

Before we wrap up, let’s go through the security rules, because this is where things get serious. First — and this cannot be overstated — never commit private keys or seed phrases to a Git repository. If a key ends up in version control, treat it as compromised immediately. Second, store your seeds in encrypted, offline storage. Not in a notes app, not in email, not in a cloud document with no encryption. Third, when you’re working locally with environment variables that contain keys, use a dot-env file and make absolutely sure that file is listed in your dot-gitignore so it never gets pushed. Fourth, on mainnet — meaning real money, real assets — you should always be using either a hardware wallet or a multisig setup. No exceptions. And fifth, any testnet EOA you use for development should never hold mainnet funds. Keep those environments completely separate. A testnet account is for testing; treat it accordingly.

The related topics to dig into from here are Gnosis Safe Multisig, Key Security, and MetaMask Setup — all of which go deeper on the specific tooling mentioned today.

That’s it for this episode of the NZRT Wiki Podcast. Thanks for listening.

Smart Contracts

Welcome to the NZRT Wiki Podcast. Today we’re looking at Smart Contracts.

So, what exactly is a smart contract? Put simply, it’s a self-executing program that lives on a blockchain. Once you deploy it, its code is locked in place and it runs exactly as written — no exceptions, no overrides, no one in the middle to interfere. That permanence is actually one of its defining features.

Let’s talk about the key properties that make smart contracts tick, because there are four worth understanding. First, they’re immutable — meaning once that code is deployed, you cannot change it. If you want a contract that can be updated later, you need to build in something called a proxy pattern from the start, so keep that in mind during design. Second, they’re deterministic — the same inputs will always, every single time, produce the same outputs. There’s no randomness, no surprises. Third, they’re trustless — you don’t need a bank, a lawyer, or any other intermediary to enforce the agreement. The network itself does that. And fourth, there’s gas cost. Every operation your contract performs consumes gas, and that gas is paid by whoever is calling the contract. So efficiency in your code isn’t just good practice — it directly affects cost.

Now let’s look at a code example to make this concrete. The sample here is written in Solidity, which is the most common language for writing smart contracts on Ethereum-compatible blockchains. The contract is called ITSL Token — that’s NZRT’s Iteasel Token. At the top, you’ll see a license identifier and a version declaration, which tells the compiler exactly which version of Solidity to use. The contract then imports two pre-built building blocks from a library called OpenZeppelin — one handles the standard ERC-20 token behaviour, and the other handles ownership, so only the contract owner can perform certain privileged actions.

Inside the contract, there’s a constructor — think of this as the setup function that runs once when the contract is first deployed. It takes an initial supply as an input, sets the token’s name to “Iteasel Token” and its ticker symbol to ITSL, assigns ownership to whoever deployed the contract, and then mints the initial supply of tokens straight to that deployer’s wallet. Below that, there’s a mint function. This lets the owner create additional tokens later and send them to any address — but crucially, only the owner can call it, thanks to that Ownable pattern imported earlier.

So that’s the code. A relatively compact file, but it gives you a fully functional, ownable token on the blockchain.

Next, let’s walk through the contract lifecycle — what actually happens from writing code to getting it live in production. You write your Solidity source code first. Then you compile it using a tool called Hardhat, which produces two things: the ABI, which we’ll come back to in a moment, and the bytecode, which is what actually gets deployed to the chain. After compiling, you write and run unit tests — both Hardhat and Foundry are common frameworks for this. Once tests pass, you deploy to a testnet first. In NZRT’s case, that’s Base Sepolia, and you verify the contract on Basescan so anyone can inspect it. Then comes the security audit — a review specifically looking for vulnerabilities before you touch mainnet. Only after that do you deploy to Base Mainnet, and at NZRT that deployment goes through Gnosis Safe for an added layer of control.

That brings us to the ABI — the Application Binary Interface. This is essentially the instruction manual for your contract. It describes every function the contract exposes: what it’s called, what inputs it expects, and what it returns. Your frontend, your scripts, any external tool that needs to talk to the contract — they all need the ABI to do it. Without it, you can’t interact with the contract in any meaningful way.

And that’s the full picture of smart contracts: self-executing, immutable, trustless programs with a clear development pipeline from code to production.

That’s it for this episode of the NZRT Wiki Podcast. Thanks for listening.