• Difficulty - Medium
    Total Plays - 13
    Allowed Time - 10 sec
    Best time - 4.927

    Why do storage reads cost more than memory reads?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Storage accesses require Merkle-Patricia proof validation at the state level. This makes SLOAD one of the most expensive operations in Solidity. Caching values into memory significantly reduces repeated cost.
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 6.303

    Why are external loops discouraged?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Unbounded loops that depend on storage or user-controlled arrays can exhaust gas and render functions uncallable. Attackers can intentionally cause denial-of-service through loop amplification. Good design avoids external iteration
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 2.699

    Why avoid comparing strings on-chain?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    String comparison requires hashing or byte-by-byte checks, both of which are expensive in the EVM model. It also introduces risk when mixed with packed encodings. Developers instead rely on enums or hashed IDs.
  • Difficulty - Medium
    Total Plays - 7
    Allowed Time - 10 sec
    Best time - 10

    What makes memory expansion expensive?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Memory follows a quadratic cost function, meaning costs rise rapidly as the memory footprint grows. Careless array allocations can suddenly inflate execution cost. This is a frequent root cause of gas blowups in audits.
  • Difficulty - Medium
    Total Plays - 8
    Allowed Time - 10 sec
    Best time - 2.358

    Why is PUSH0 useful in gas optimization?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    PUSH0 provides a zero literal without consuming calldata or memory. This reduces bytecode size and simplifies stack management. It's extremely helpful in tight loops and assembly-heavy contracts.
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 10

    What does “state shadowing” indicate in inheritance?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    State shadowing happens when a derived contract redeclares a state variable with the same name as a parent. This creates storage misalignment and unexpected slot overwrites. Auditors treat this as a major upgradeability and correctness risk.
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 2.234

    Why is calldata preferred for router functions?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Calldata avoids copying user inputs into memory, significantly reducing gas usage for large payloads. Router contracts receive untrusted inputs, so avoiding memory expansion is both cheaper and safer. This is why AMMs and DEX routers heavily rely on calldata
  • Difficulty - Medium
    Total Plays - 5
    Allowed Time - 10 sec
    Best time - 3.026

    Why do auditors flag “silent reverts”?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Silent reverts hide failure reasons, making debugging and validation difficult. They also open the door for inconsistent execution paths
  • Difficulty - Medium
    Total Plays - 7
    Allowed Time - 10 sec
    Best time - 2.492

    What does REVERT preserve that INVALID does not?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    REVERT allows returning structured revert data back to the caller, which improves debugging and interface guarantees. INVALID terminates execution with no return payload. This distinction is crucial for protocols relying on bubble-up error messaging.
  • Difficulty - Medium
    Total Plays - 6
    Allowed Time - 10 sec
    Best time - 3.912

    Which op is used for external code size?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    EXTCODESIZE checks if the target has code deployed. It helps detect contracts vs EOAs in validation logic
  • Difficulty - Medium
    Total Plays - 7
    Allowed Time - 10 sec
    Best time - 10

    Why are multi-step writes risky?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    Multi-step operations can leave the contract in a partially updated state if execution halts. Attackers exploit these interim states to bypass checks.
  • Difficulty - Medium
    Total Plays - 5
    Allowed Time - 10 sec
    Best time - 5.375

    Why is SELFDESTRUCT dangerous in proxies?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    If the implementation contract is self-destructed, proxies break permanently or redirect unexpectedly. This creates bricked contracts and undefined behavior
  • Difficulty - Medium
    Total Plays - 8
    Allowed Time - 10 sec
    Best time - 10

    What does RETURNDATASIZE prevent?

    Tip: Click "Play" to reveal options and start playing.

    #A
    #B
    #C
    #D
    Explanation:
    RETURNDATASIZE ensures the caller knows exactly how many bytes were returned. It prevents incorrect assumptions and truncation bugs during low-level calls.
  • Job Expired
    E

    Integrations Engineer (Web3)

    ENS LabsFull TimeNA

    Remote (Any Location) Posted: Nov 29, 2025
    Job description
    ENS Labs, the development team behind the Ethereum Name Service protocol, is seeking a Web3-focused Integrations Engineer to advance ENS adoption across wallets, SDKs, dApps, L2 networks, developer libraries, and other crypto infrastructure. This role combines hands-on engineering work with external collaboration, contributing code directly to open-source projects that integrate...
  • Job Expired
    S

    Backend Developer for Blockchain Services

    SatoshiLabsFull TimeNA

    Prague Posted: Nov 29, 2025
    Job description
    SatoshiLabs, the company behind Trezor and the first hardware wallet in the industry, such as Recovery Seeds and Shamir Backup, is seeking a Backend Developer to support and expand its blockchain infrastructure. The role involves developing services that interface with multiple crypto networks, integrating external data services, managing backend performance,...
  • Job Expired
    E

    DevOps Engineer — Senior/Staff

    ENS LabsFull TimeNA

    Remote Posted: Nov 29, 2025
    Job description
    ENS Labs, the core development team behind the Ethereum Name Service protocol, is hiring a Senior/Staff-level DevOps Engineer to manage and maintain the infrastructure that supports ENS resolution across multiple chains. This role oversees operational reliability for core services such as metadata systems, indexing services, CCIP-Read gateways, and emerging Namechain/L2...