Career · Blockchain · Interview Prep
Top 20 Blockchain Career Questions
Quick summary — the top 20 blockchain career questions
Junior blockchain interviews test the same twenty questions in slightly different words. Five check your fundamentals (what a blockchain is, hashing, blocks and chains, consensus, wallets and keys). Seven check smart contracts and security (Solidity basics, gas, reentrancy, integer overflow, testing, auditing, upgrade patterns). Four check project experience (walk through a project, debug a contract, testing approach, deployment). Four check career fit (why blockchain, learning habits, communication, and what you want to build next). Prepare structured answers to all twenty and you cover roughly 90% of junior blockchain interview ground.
In this guide you will get:
- All 20 questions grouped into four categories.
- Model answers you can adapt to your own experience.
- What each question actually tests, so you answer the signal, not the words.
- A structure for answering project and behavioral questions.
- Common mistakes that turn strong candidates into rejections.
SECTION 01Fundamentals — Q1 to Q5
These five questions check whether your blockchain basics are solid. They are usually asked first, and shaky answers here colour the rest of the interview.
Q1What is a blockchain, in plain terms?
What it tests: whether you can explain the concept without jargon or hype.
Model answer: A blockchain is a distributed ledger — a list of records that is replicated across many nodes instead of being owned by a central server. Each new batch of records (a block) contains a cryptographic hash of the previous block, which is what makes the chain tamper-evident: changing an old block would invalidate every hash after it. Nodes agree on the order of blocks through a consensus mechanism. Because no single party controls it, blockchains are useful when multiple parties need to agree on a shared record of truth without a trusted middleman. Beyond crypto, that is useful for supply chain, identity, and tokenised assets.
Q2What is hashing, and why does a blockchain use it?
What it tests: whether you understand the mechanism that makes blockchains secure, not just the terminology.
Model answer: A hash function takes any input and produces a fixed-length output. It is deterministic — the same input always produces the same hash — one-way — you cannot reverse it — and collision-resistant — two inputs producing the same hash is practically impossible. Blockchains use hashing in three places: each block stores the previous block's hash, so tampering breaks the chain; transactions are hashed into a Merkle tree, so you can verify a transaction without downloading the whole block; and proof-of-work requires finding a hash below a target, which is what makes mining expensive. SHA-256 in Bitcoin and Keccak-256 in Ethereum are the ones most people encounter.
Q3Explain proof-of-work vs proof-of-stake.
What it tests: whether you understand consensus as a trade-off, not a slogan.
Model answer: Proof-of-work (PoW) secures the network by requiring miners to spend computational power on finding a valid hash; producing a block is expensive, and attacking the chain means out-computing the rest of the network. Bitcoin uses PoW. Proof-of-stake (PoS) secures the network by requiring validators to lock up tokens as stake; if they behave maliciously, they lose their stake. Ethereum moved to PoS in 2022. PoW is battle-tested but energy-intensive. PoS is energy-efficient but relies on different incentives, and its long-term security properties are still being studied. Neither is universally "better" — they optimise for different things.
Q4What is the difference between a public and a private key?
What it tests: whether you understand wallet security, which is the single most common source of loss in crypto.
Model answer: A private key is a large secret number that controls your funds. A public key is derived from it using elliptic curve cryptography, and a wallet address is derived from the public key. You share the public key and address freely; you never share the private key. To authorise a transaction, you sign it with your private key, and any node can verify the signature using your public key. This is why losing your private key means losing access — no central authority can reset it. In practice, wallets use seed phrases to encode the private key in a human-readable form, and hardware wallets keep the key off the internet entirely.
Q5What is a smart contract?
What it tests: whether you understand what a smart contract actually is and is not.
Model answer: A smart contract is code deployed to a blockchain that executes automatically when its conditions are met. On Ethereum it is typically written in Solidity, compiled to bytecode, and deployed at a specific address. Once deployed, its code is immutable — you interact with it by sending transactions, and every state change is recorded on-chain. "Smart contract" is a slightly misleading name: it is not a legal contract, and it is not inherently smart. It is deterministic code with real financial consequences. That is why testing and auditing matter so much — a bug cannot be "patched" the way it can in a traditional web app, unless you build in an upgrade mechanism from day one.
SECTION 02Smart contracts and security — Q6 to Q12
These seven questions test whether you can write contracts that work and reason about the ones that break. This is where the real interview signal lives.
Q6What is gas in Ethereum?
What it tests: whether you understand the economic model of on-chain computation, not just the syntax.
Model answer: Gas is a unit of computational effort. Every operation on Ethereum — storage write, transfer, loop iteration — costs a defined amount of gas, and users pay a fee in ETH for the gas their transaction consumes. Gas price fluctuates with network congestion. The practical consequence is that code design has direct economic cost: storing data on-chain is much more expensive than computing it locally, so good contracts minimise storage and avoid unbounded loops. In interviews, the gas question is really a design question — "can you write code that respects the cost of computation?"
Q7What is a reentrancy attack, and how do you prevent it?
What it tests: whether you understand the most famous smart contract vulnerability class.
Model answer: Reentrancy is when an external contract calls back into your contract before your first execution has finished updating state — allowing the attacker to drain funds repeatedly. It was the cause of the 2016 DAO hack. You prevent it by following the checks-effects-interactions pattern: validate inputs, update your own state, and only then make external calls. The other common defence is a reentrancy guard (a simple lock modifier). Both are standard practice in modern Solidity. The important point is that the vulnerability is about ordering of operations, not about the external call itself — some external calls are necessary, but the state update must come first.
Q8What is an integer overflow or underflow, and how do you handle it?
What it tests: whether you know a historical vulnerability and how modern Solidity changed.
Model answer: Integers in Solidity have fixed sizes. If a
uint8 is 255 and you add 1, older versions would wrap to 0
(overflow). Similarly, subtracting 1 from 0 would underflow to
255. Before Solidity 0.8.0, you had to use SafeMath to prevent
this. Since 0.8.0, overflow and underflow revert by default, so
this class of bug is largely gone in modern code. But you still
need to handle it in unchecked blocks, and it is
still an interview topic because it teaches the general lesson:
fixed-size arithmetic in financial code is dangerous, and you
need to reason about boundaries.
Q9How do you test a Solidity contract?
What it tests: whether you know that "deployed once" is not testing.
Model answer: I use Hardhat or Foundry as the testing framework. I write unit tests for each function — happy paths, edge cases, reverts — and integration tests for interactions between contracts. For anything handling funds, I write tests that specifically try to break the security model: reentrancy attempts, access control bypasses, arithmetic boundaries. I use Foundry's fuzzing for arithmetic and property-based tests because it catches cases I would not write by hand. For larger systems, I would run static analysis (Slither) and consider a professional audit before mainnet deployment. Testing smart contracts is a different discipline from testing web apps — the cost of a bug is measured in stolen funds, not in a rollback.
Q10What is an upgradeable smart contract, and why is it controversial?
What it tests: whether you can reason about trade-offs between immutability and practicality.
Model answer: Immutable contracts cannot be changed after deployment, which is a security feature but also a problem when a bug or a feature gap appears. Upgradeable contracts use a proxy pattern: users interact with the proxy address, and the proxy delegates calls to an implementation contract whose address can be changed. This lets the team ship fixes, but it also means the team can change the rules — a centralisation risk. In interviews, the right answer is usually "it depends": for a small, well-audited contract, immutability is a strength; for a complex protocol with ongoing development, upgradeability is a practical necessity, and the design should include timelocks and governance so users are not surprised.
Q11What is a Merkle tree, and why does a blockchain use it?
What it tests: whether you understand how blockchains stay verifiable without being enormous.
Model answer: A Merkle tree hashes pairs of transactions repeatedly until a single root hash remains. That root is included in the block header. To prove a specific transaction is in a block, you only need the small set of sibling hashes on the path from that transaction to the root — a Merkle proof — not the full set of transactions. This is what makes light clients possible: they can verify inclusion with a tiny fraction of the data. It also makes tampering easy to detect: changing any transaction changes the root, which breaks the chain. In interviews, the point is that Merkle trees solve verification, not just storage.
Q12What is the difference between layer 1 and layer 2?
What it tests: whether you understand the scaling landscape, not just the base chain.
Model answer: Layer 1 is the base blockchain — Ethereum, Bitcoin, Solana. It is the source of security and consensus. But layer 1 throughput is limited, and fees rise when demand is high. Layer 2 is a class of protocols built on top of a layer 1 to increase throughput and reduce fees while inheriting layer 1's security. Rollups (Optimistic and ZK) are the main categories today — they batch many transactions and post a summary to layer 1. Sidechains are a different pattern: they run their own consensus and therefore have different security properties. In interviews, the important distinction is between inheriting security from L1 (rollups) versus relying on separate consensus (sidechains).
SECTION 03Projects and experience — Q13 to Q16
These questions separate candidates who have shipped contracts from candidates who have only finished courses.
Q13Walk me through your most meaningful blockchain project.
What it tests: whether you can structure a technical story for a mixed audience.
Model answer: I use a four-part structure: problem, approach, result, and what I learned. For example: "The problem was a small internal reward system that kept losing track of allocations across three teams. I built a simple ERC-20 token plus a distributor contract — allocation tables stored off-chain and hashed on-chain, claims executed by signed message — with Hardhat tests covering the claim path and a small admin panel. It went live on a testnet and removed the manual monthly reconciliation. The biggest lesson was that off-chain data hashing gives you most of the benefits with far less gas than storing every allocation on-chain."
Q14Tell me about a smart contract bug you found and fixed.
What it tests: whether you can reason about security problems rather than just write happy-path code.
Model answer: I was auditing a small lottery contract and
noticed that the winner's payout used call before
updating internal state — the classic reentrancy shape. In the
specific contract, a fallback function on the winner's address
could have re-entered the payout and drained the pool. I
rewrote it to follow checks-effects-interactions and added a
reentrancy guard, then wrote a test that simulates a malicious
receiver. The fix was small, but it was a good lesson in reading
contract code as a series of state transitions rather than as
functions — which is how the actual attack works.
Q15How do you deploy and verify a contract?
What it tests: whether you understand the deployment lifecycle, which many beginners skip.
Model answer: I deploy with Hardhat or Foundry scripts, parameterised per network, and keep deploy scripts in the repo alongside the contracts. After deployment, I verify the source code on the block explorer so anyone can read what is running — verification matters because unverified contracts look suspicious to users and auditors. I record deployment addresses in a config file and tag the commit that matches, so the code that is live is exactly the code in the repository. For anything user-facing, I also set up a small monitoring script that watches for unexpected events or large withdrawals, so I learn about problems from my own tooling rather than from a support message.
Q16How do you approach auditing a contract you did not write?
What it tests: whether you can read code critically — the single most valuable blockchain skill.
Model answer: I start by reading for the money flow — where funds enter, where they leave, and what state gates those exits. Then I look at access control: who can call the sensitive functions, and can that be bypassed. Then arithmetic and boundary conditions: what happens with zero, with the maximum, with an array at capacity. Then external calls: are they made before state updates, and can a malicious receiver re-enter. Finally I run static analysis tools like Slither for automated checks, and I write small tests for anything suspicious. Auditing well is slower than writing — the point is not to find the happy path, it is to find the path the developer did not imagine.
SECTION 04Career and behavioral — Q17 to Q20
These questions decide whether the interviewer sees you as a future colleague, not just a technical candidate.
Q17Why do you want to work in blockchain?
What it tests: whether your motivation is durable or just trend-driven.
Model answer: I want to work in blockchain because it combines two things I care about — careful systems thinking and real consequences for the user. I built projects because I wanted to understand why a transaction fails and what it means for the person on the other side, not just how to make the test pass. I am drawn to roles where the code has financial weight — payments, custody, tokenised assets. I know most of the work is not glamorous: it is testing, reading, and being paranoid about edge cases. That is exactly the part I find interesting.
Q18How do you keep up with blockchain developments?
What it tests: whether you have a real habit, not just an answer you rehearsed.
Model answer: I follow a small set of sources — the Ethereum Foundation blog, a couple of audit firm write-ups, and a handful of developers on social media whose work I trust. When I read about a new vulnerability or design pattern, I try to reproduce it in a test project rather than just note it down. Blockchain has a lot of noise, so I try to weight primary sources — EIPs, code, audit reports — over commentary. The habit I care about is turning reading into something I can explain in an interview or implement in my own code.
Q19How do you explain a blockchain concept to a non-technical colleague?
What it tests: whether you can communicate, which is the most common gap in junior blockchain candidates.
Model answer: I start with the decision they need to make, not with the technology. If it is about fees, I compare gas to postage — you pay more when the network is busy, and you design the letter to be small. If it is about wallets, I compare a private key to a physical key, except there is no locksmith if you lose it. I avoid the words "consensus", "cryptography", and "immutable" unless they use them first. I finish by repeating back the decision or action I need from them, so nothing is assumed.
Q20What would you learn next as a blockchain developer?
What it tests: whether you have self-awareness about your gaps and a plan.
Model answer: I want to get stronger at security and systems. Concretely: learn Foundry properly so I can write better tests and fuzz arithmetic, spend real time on audit reports to build intuition for what breaks, and understand how layer 2 works so I can reason about cost and finality. I also want to read production contracts — Uniswap, Aave, ENS — because that is where the patterns that are not in books actually show up. Blockchain is a field where the difference between junior and mid-level is almost entirely security judgment, and that is what I want to build.
SECTION 05How to structure every answer
The best answers follow the same shape, whatever the question. Here is the structure that consistently works:
| Step | What to Say | Why It Works |
|---|---|---|
| 1. Frame | Restate the question in your own words and the decision it affects | Shows you understood the point, not just the words |
| 2. Structure | Give a one-sentence map of your answer before details | Signals organised thinking and helps the interviewer follow |
| 3. Answer | Two or three concrete points with examples from your own work | Keeps the answer grounded and specific |
| 4. Trade-off | Name one limitation or alternative you considered | Shows judgment, not just knowledge |
| 5. Close | Return to the question — one line summarising the answer | Makes the answer easy to score |
// Solidity — a small vault contract with the patterns
// interviewers expect you to write fluently.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Vault {
mapping(address => uint256) public balances;
bool private _locked;
event Deposited(address indexed user, uint256 amount);
event Withdrawn(address indexed user, uint256 amount);
modifier nonReentrant() {
require(!_locked, "reentrant call");
_locked = true;
_;
_locked = false;
}
function deposit() external payable {
require(msg.value > 0, "no ETH sent");
balances[msg.sender] += msg.value;
emit Deposited(msg.sender, msg.value);
}
function withdraw(uint256 amount) external nonReentrant {
require(amount > 0, "amount is zero");
require(balances[msg.sender] >= amount, "insufficient balance");
// Checks-effects-interactions pattern:
// update state BEFORE sending funds
balances[msg.sender] -= amount;
(bool ok, ) = msg.sender.call{value: amount}("");
require(ok, "transfer failed");
emit Withdrawn(msg.sender, amount);
}
}
// What this proves in an interview:
// - You follow checks-effects-interactions by default
// - You add a reentrancy guard as a second layer of defence
// - You use custom errors or short revert strings (gas aware)
// - You emit events for every state change (auditability)
// - You use modern Solidity 0.8+ where arithmetic reverts
// If you can explain WHY state is updated before the
// external call, you already understand the most important
// smart contract vulnerability class.
// Hardhat — tests that go beyond "it works once".
// This is what junior blockchain interviews look for.
const { expect } = require("chai");
const { ethers } = require("hardhat");
describe("Vault", function () {
let vault, owner, alice, attacker;
beforeEach(async function () {
[owner, alice, attacker] = await ethers.getSigners();
const Vault = await ethers.getContractFactory("Vault");
vault = await Vault.deploy();
});
it("accepts deposits and updates balance", async function () {
await vault.connect(alice).deposit({ value: ethers.parseEther("1") });
expect(await vault.balances(alice.address))
.to.equal(ethers.parseEther("1"));
});
it("rejects zero deposits", async function () {
await expect(
vault.connect(alice).deposit({ value: 0 })
).to.be.revertedWith("no ETH sent");
});
it("rejects withdrawal above balance", async function () {
await vault.connect(alice).deposit({ value: ethers.parseEther("1") });
await expect(
vault.connect(alice).withdraw(ethers.parseEther("2"))
).to.be.revertedWith("insufficient balance");
});
it("blocks reentrancy from a malicious receiver", async function () {
// Deploy an attacker contract that tries to re-enter withdraw
const Attacker = await ethers.getContractFactory("Attacker");
const attackerContract = await Attacker.deploy(await vault.getAddress());
await vault.connect(alice).deposit({ value: ethers.parseEther("2") });
await expect(
attackerContract.connect(attacker).attack({ value: ethers.parseEther("1") })
).to.be.reverted;
});
});
// What this proves in an interview:
// - You write tests for revert paths, not just happy paths
// - You test security, not just functionality
// - You use a malicious contract to prove the guard works
// - You use ethers v6 helpers (parseEther, getAddress)
// A candidate who writes this test suite is trusted
// with real contracts on day one.
// Access control — the pattern every interview expects
// you to implement correctly.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/access/Ownable.sol";
contract RewardPool is Ownable {
mapping(address => uint256) public rewards;
uint256 public totalAllocated;
event RewardSet(address indexed user, uint256 amount);
constructor() Ownable(msg.sender) {}
/// Owner can set rewards during a distribution round.
function setReward(address user, uint256 amount) external onlyOwner {
require(user != address(0), "zero address");
require(amount > 0, "zero amount");
uint256 previous = rewards[user];
rewards[user] = amount;
totalAllocated = totalAllocated - previous + amount;
emit RewardSet(user, amount);
}
/// Anyone can claim their own reward.
function claim() external {
uint256 amount = rewards[msg.sender];
require(amount > 0, "nothing to claim");
rewards[msg.sender] = 0;
totalAllocated -= amount;
(bool ok, ) = msg.sender.call{value: amount}("");
require(ok, "transfer failed");
}
receive() external payable {}
}
// What this proves in an interview:
// - You use OpenZeppelin's Ownable, not hand-rolled auth
// - You separate admin functions from user functions
// - You zero out state before external calls (reentrancy safe)
// - You reject zero addresses and zero amounts explicitly
// - You emit events for auditability
// The interview signal here is not "I used OpenZeppelin" —
// it is that you understand who can call what, and why.
SECTION 06Common answer mistakes to avoid
These are the mistakes that turn a technically strong candidate into a rejection:
| Mistake | Why It Hurts | What to Do Instead |
|---|---|---|
| Confusing blockchain with crypto trading | Signals you do not actually understand the technology | Talk about distributed ledgers, consensus, and use cases — not price |
| Answering only with buzzwords | "DeFi, Web3, dApps" without substance reads as hype | Define concepts in your own words with an example |
| Claiming perfect audits | Interviewers know real code has bugs; perfect stories read as invented | Include a vulnerability you found and fixed — honesty builds trust |
| Ignoring gas cost | Code that works but costs 10x more is not production-ready | Mention gas trade-offs when discussing contract design |
| Avoiding "I don't know" | Guessing makes a wrong answer worse than admitting a gap | Say what you do know, say what you would check, and move on |
SECTION 07Interview Q&A — preparing for these questions
Q1How many of these 20 questions should I prepare word-for-word?
None of them word-for-word. Prepare the structure of your answer and one concrete example per question. Word-for-word answers sound rehearsed and fall apart on the first follow-up. What you should memorise is the shape — frame, map, answer, trade-off, close — and the specific examples you will use.
Q2What if I do not have real work experience for the project questions?
Use a project you built on your own — a small contract, a token, a DAO experiment, a hackathon submission. The interviewer is testing whether you can structure a technical story, not whether the project was paid. Be honest about the context, and focus on the decisions you made, especially the security ones.
Q3How technical should the fundamentals answers be?
Start with a plain-language definition, then go one level deeper only if the interviewer asks. Juniors who recite details they cannot explain sound weaker than juniors who explain the concept simply and add one concrete example. Blockchain has a lot of vocabulary — the candidates who stand out are the ones who can drop it and still be understood.
Q4Should I say "I don't know" if I am stuck?
Yes — but not immediately. Try to reason out loud first. Say what you do know, then what you would check or look up. In blockchain, admitting a gap in one area while showing solid reasoning in another is far stronger than confidently guessing on a security question.
Q5How do I know I am ready?
You are ready when you can answer all twenty questions in under two minutes each, with a concrete example and one trade-off — and when your five project stories are written down and rehearsed out loud. Do two mock interviews with a friend or mentor before the real one, and try to have at least one deployed contract you can walk through line by line.
SECTION 08Test yourself — blockchain career questions
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 09Frequently asked questions
How many of these 20 questions actually get asked?
Most junior blockchain interviews draw from this set — not always the exact wording, but the underlying concepts. You will typically see five to eight questions from this list across two rounds, plus company-specific variations and follow-ups on your projects.
Do I need to know advanced cryptography for junior interviews?
Not deeply. Most junior interviews weight fundamentals, contract writing, and security reasoning. Zero-knowledge proofs, elliptic curve internals, and advanced cryptography come up at mid-level and above. The twenty here are the foundation.
Which language should I learn first — Solidity or Rust?
Start with Solidity if you are targeting Ethereum and EVM chains, which cover the vast majority of junior roles today. Learn Rust if you are targeting Solana or high-performance chains. The reasoning you build — about state, access control, and reentrancy — transfers across languages; the syntax is the easier part.
What if I forget an answer during the interview?
Pause, say what you do remember, and reason from there. Most interviewers prefer a candidate who thinks out loud to one who delivers a memorised answer that falls apart on the first follow-up. Recovery is a positive signal, not a negative one.
Should I bring a portfolio or GitHub links?
Yes. Bring links to your GitHub and, ideally, a deployed contract on a testnet the interviewer can inspect. Even if you are not asked, having it ready lets you say "I can show you" when they ask about a project. It also signals preparation.
SECTION 10Related reads
Classroom & online · Noida
Prepare for all 20 questions — with Uncodemy
Our Blockchain Development Course covers the fundamentals, Solidity, smart contract security, testing, deployment, and interview preparation behind all twenty of these questions — with guided projects, mock interviews, and code reviews.
₹38,000 · full programme- Solidity + smart contracts
- Security + auditing
- 3 guided projects
- Weekday & weekend batches