Opens this plan in Hirezen, where one click makes it a position.
Blockchain Developer interview questionsScenario — an exploit in progress round
A 60 min interview plan with a time-boxed script, what each question is for, and the signals to score against. Key skills: A live smart contract exploit scenario: the first hour of a price-oracle manipulation draining a lending market, pausing the right markets with the right keys on every deployment, reading how the money left from transaction traces, deciding who carries the bad debt, and what would have raised the alarm at the first transaction..
It is 03:11
What this section is for
Purpose
Runs over an incident pack handed over at the start: a timeline, a one-page summary of the protocol, and three transaction traces summarised in plain language. Prepare it so the numbers agree, and be ready to answer each action the candidate takes with its result. The protocol is a lending market on Ethereum mainnet with USDC, WETH and XYZ, a partner project's governance token listed three weeks ago at a 70% collateral factor. XYZ is priced by an adapter that reads the reserves of a single XYZ/WETH constant-product pool, about $950,000 on each side, within the same call, and multiplies by a WETH/USD feed; the adapter was added after the protocol's audit and approved by one reviewer, and its unit tests use a mocked price. A guardian, a 2-of-4 Safe, can pause supplying, borrowing and liquidations market by market; it cannot pause withdrawals or repayments, and any change to an oracle or a collateral factor goes through governance and a 48-hour timelock. The same adapter prices XYZ on the protocol's deployment on a rollup, where the pool holds about $300,000 and $1.4 million of USDC can be borrowed; nothing has happened there yet. The timeline: at 02:58, 03:03 and 03:09 UTC, three transactions from contracts deployed minutes earlier each supplied XYZ and borrowed 410,000 USDC. In each trace a large WETH flash loan is taken at the start and repaid at the end, the pool's XYZ price rises about elevenfold and falls back in between, and the XYZ supplied is valued at about $600,000 inside the transaction and about $55,000 at the price before and after it. Before the first transaction $6.0 million of USDC was supplied and $4.33 million was available to borrow; $3.10 million is available now. An alert, 'USDC borrowed in 10 minutes above $750,000', fired at 03:03 in a chat channel and nobody acknowledged it; nothing monitors the price itself. It is 03:11, two of the four guardian signers are reachable, and the candidate is one of them. At 03:10 an account known for publishing incident write-ups sent a direct message offering to front-run the attacker's next transaction and rescue the remaining USDC, and asking the team to confirm the vector. Book 70 minutes; the close is outside the 60.
I'm [YOUR_NAME] and I am on the security rota at [COMPANY_NAME]. For the next hour you are on it too, and it is 03:11 in the morning. Everything we know is in the pack, and when you act I will tell you what happened.
What this section is for
Purpose
Makes the candidate a responder rather than a commentator, and commits the interviewer to answering actions with consequences, which keeps the scenario honest.
Talk the way you would on the incident call. If you want to do something on chain, say exactly what, with which key, and I will tell you whether it worked.
What this section is for
Purpose
Rewards precision — which market, which power, which signer — over general intent, and makes vagueness visible without the interviewer having to point at it.
It is 03:11. Walk me through the next fifteen minutes: what you do, in what order, and who does what.
What this question is for, and what to listen for
Purpose
Reads the opening minutes of incident response: stop the loss before understanding it, use exactly the powers that exist, and let neither the attacker nor a helpful stranger learn more than they already know. The discriminator is scope — most candidates pause the USDC market and stop there. The first three or four minutes are the candidate reading the pack, and they count against the fifteen, as they would on the night.
Signals to score
- Declares an incident in the first minute and splits the roles, even between two people: one on chain, one on communication and the record
- Pauses borrowing on every market, not only USDC, because the flaw is the collateral price and WETH can be borrowed against it next
- Pauses supplying XYZ, so no new collateral enters at a price that can be moved
- Pauses the same markets on the rollup deployment in the same sitting, before anything happens there
- Weighs pausing liquidations in the XYZ market, since the adapter can be pushed down to liquidate honest borrowers, against bad debt if XYZ really falls
- Checks the decoded calldata of each guardian transaction on the signing device before approving it, despite the clock
- Sends the pause through a private transaction route, or says why it matters that the attacker could see it coming
- Confirms each pause by watching a borrow attempt revert, not by reading a successful receipt
- Declines to confirm the vector to the stranger, and turns down a third-party rescue while a pause is available
- Keeps a timestamped record of every action from the first minute
Follow-up questions
- You have paused USDC borrowing. What can the attacker borrow now?
- The same adapter is on the rollup. When do you pause there?
- What if someone pushes XYZ's price down instead of up — who gets hurt?
- The account offering a rescue has a real reputation. Why not let them?
- How do you know the pause worked?
How the money left
What this section is for
Purpose
The borrowing has stopped. This section reads contract security from evidence rather than from source: the candidate reconstructs an economic flaw from what the traces show, puts numbers on it, and fixes the design rather than the symptom.
From the traces, tell me how the money left, why nothing before launch caught it, and what should price XYZ instead.
What this question is for, and what to listen for
Purpose
Separates candidates who know that a spot price can be manipulated from those who can say what manipulating it cost against what it unlocked — which is the calculation that should have happened when XYZ was listed.
Signals to score
- Explains that a price read from pool reserves within the same transaction can be moved and restored inside that transaction
- Says the attacker needed almost no capital, because the flash loan is repaid before the transaction ends
- Compares the cost of moving the price with what it unlocked: a pool of about $950,000 a side against $4.33 million of borrowable USDC
- Computes the loss: $1.23 million borrowed, about $165,000 of XYZ left behind, about $1.07 million of bad debt
- Proposes pricing that one transaction cannot move, and states each option's limit: an average over a thin pool still moves if the price is held across blocks, and an external feed needs staleness and deviation checks
- Caps supply of XYZ and borrowing against it in proportion to its real on-chain liquidity, and lowers its collateral factor
- Adds a circuit breaker that halts borrowing when two independent price sources disagree beyond a bound
- Explains why the tests passed — a mocked price nobody could move — and why the audit could not have caught an adapter added after it
- Makes listing a collateral asset a reviewed process with a manipulation-cost check, not a parameter change one person approves
Follow-up questions
- How much of their own capital did the attacker need?
- Switch the adapter to a thirty-minute average price. Is XYZ now safe to borrow against?
- The pool held $950,000 a side and $4.33 million was borrowable. What should that ratio have told someone at listing?
- The adapter's unit tests all pass. What were they testing?
- One reviewer approved the adapter. What would you change about that, and what would you not?
The next day
What this section is for
Purpose
After the bleeding stops, most of the remaining damage is decided by what gets said, to whom and in what order. The bad debt question has no clean answer; the read is whether the candidate sees the run it creates and knows the decision is not theirs alone.
It is 04:00 and every exposed market is paused. Take me through the next day: who hears what from you, what happens to the USDC suppliers who cannot all be repaid, and what you refuse to do.
What this question is for, and what to listen for
Purpose
Reads incident response once the clock slows down: public and private communication, a loss that has to land on someone, and the pressure to ship a fix at four in the morning.
Signals to score
- Publishes a short statement within the hour — what is paused, that an incident is under way, when the next update comes — without naming the vector while any deployment could still be reached through it
- Names who is told privately and why: the XYZ team, the stablecoin's issuer with the receiving addresses, exchanges the funds may reach, and a security incident response group
- Sees that withdrawals are still open, so the first suppliers to leave take full value and the last carry the loss
- Lays out the options for the bad debt — the treasury covers it, the loss is written down across USDC suppliers, or a mix — with the numbers for each
- Says the choice belongs to whoever governs the protocol, with legal counsel, and brings numbers rather than a decision
- Keeps borrowing against XYZ paused until a reviewed fix has passed the timelock, and argues against an emergency redeploy tonight
- Treats any message to the attacker, including an offer of a bounty for returned funds, as leadership's and counsel's decision
- Commits to a public post-mortem with a date, published after the fix is live on both deployments
- Keeps the record going: every action with its time and transaction hash
Follow-up questions
- Suppliers can still withdraw. Is that a problem tonight?
- The treasury holds $2 million. Should it cover the bad debt, and who decides?
- The XYZ team wants to announce that their token was not at fault. What do you tell them?
- Someone proposes deploying a patched adapter within the hour. What do you say?
- When does the public learn how it happened?
The first transaction
What this section is for
Purpose
The review, and the part of incident response that happens before an incident. The loss ran for thirteen minutes before anyone acted, and the question is what would have shortened that.
What would have told you at 02:58 rather than after 03:11 — and should a machine be allowed to press pause?
What this question is for, and what to listen for
Purpose
Candidates who have been paged in the middle of the night talk about who gets woken and what they can do on their own; others talk about dashboards. The automation question has a defensible answer either way, and the read is whether the trade-off is priced.
Signals to score
- Pages a person for alerts that mean funds are leaving, instead of posting them in a channel, with escalation if nobody acknowledges
- Monitors the cause as well as the effect: the adapter's price against an independent source, and large price moves within a single transaction
- Keeps pause transactions for every market and both deployments drafted in advance, and rehearses signing them against the clock
- Makes sure enough guardian signers to meet the threshold are reachable at every hour, across time zones
- Weighs an automated pauser with a narrow role — it can pause, cannot unpause, cannot move funds or change parameters — against the cost of a false alarm
- Says what an attacker who steals the automated pauser's key could do, and judges whether that is acceptable
- Measures the response as time from the first malicious transaction to an effective pause, and sets a target
- Includes the rollup deployment in the next drill
Follow-up questions
- The alert fired at 03:03 and nobody saw it. What should have happened instead?
- What would a monitor on the cause, rather than on borrowing volume, have watched?
- An automated pauser's key is stolen. What is the worst the thief can do?
- How many signers should be reachable at three in the morning, and how would you know they are?
Before we stop, your questions. Ask me anything about how we would really handle a night like this — who holds the pause keys, how long our last response took, what we have never rehearsed.
What this section is for
Purpose
Someone who has worked an incident asks about keys, response times and drills; someone who has not asks about the size of the bug bounty. Naming the areas keeps what they choose meaningful.
And one true thing that does not flatter us: [name a real gap in your incident readiness — an alert that goes to a channel nobody watches at night, a pause transaction nobody has drafted, a deployment missing from the runbook]. You would be on the rota that lives with it.
What this section is for
Purpose
Ends with a specific gap the team has: what the right candidate wants to hear and what the wrong one needs to. Only say it if it is still true.
Blockchain Developer interviews — common questions
- Who is this Blockchain Developer interview plan for?
- It is written for the interviewer, not the candidate: the hiring manager, engineer or panel member running the Scenario — an exploit in progress round for a Blockchain Developer role. It gives you a 60 min script to follow in the conversation — 4 questions with what each one is for and the signals to score against — so you are not writing the round from scratch the night before.
- What does the Scenario — an exploit in progress round assess?
- This round is focused on: A live smart contract exploit scenario: the first hour of a price-oracle manipulation draining a lending market, pausing the right markets with the right keys on every deployment, reading how the money left from transaction traces, deciding who carries the bad debt, and what would have raised the alarm at the first transaction.. It works through It is 03:11, How the money left, The next day and The first transaction, scoring against 36 observable signals, with follow-up prompts on all 4 questions for going deeper where an answer is thin.
- How is the 60 min split up?
- It is 03:11 (15 min), How the money left (17 min), The next day (16 min), The first transaction (12 min). The timings are there so the round stays on schedule and every candidate gets the same shape of interview — which is what makes two candidates comparable afterwards.
- What other rounds should I run for a Blockchain Developer?
A single round does not cover a whole role. The other rounds in this library for a Blockchain Developer: