• Job Expired
    L

    Mid / Senior Smart Contract Engineer

    LI.FIFull TimeNA

    Remote Posted: Jan 3, 2026
    Job description
    LI.FI builds infrastructure that enables unified access to on-chain liquidity across multiple blockchains through a single API, supporting same-chain and cross-chain swaps. This role sits within the Smart Contract API Expansion team, which focuses on integrating new chains, bridges, and protocol functionality across EVM networks. As a Mid/Senior Smart Contract...
  • Job Expired
    T

    Web3 Blockchain Engineer – ERC-4626 Vault Router

    Token MetricsFull TimeNA

    Remote Posted: Jan 3, 2026
    Job description
    Token Metrics builds crypto-focused analytics and infrastructure products used by investors and portfolio managers across global markets. This contract role sits within the engineering team and focuses on developing EVM-based smart contract infrastructure, including work related to ERC-4626 vault routing. As a Web3 Blockchain Engineer, you will collaborate closely with...
  • Job Expired
    P

    Smart Contract Engineer

    Paxos LabsFull TimeNA

    In-Person or Remote (NYC preferred, Hybrid) Posted: Jan 3, 2026
    Job description
    Paxos Labs builds enterprise-grade onchain infrastructure used by large financial organizations to support transparent and verifiable digital asset products. The Smart Contract Engineer role sits within the engineering organization and focuses on scaling the company’s DeFi protocol infrastructure. The position involves researching, designing, and implementing core protocol mechanisms across areas...
  • Job Expired
    C

    Smart Contract Engineer

    Category Labs (formerly Monad Labs)Full TimeNA

    New York / Remote (Hybrid) Posted: Jan 3, 2026
    Job description
    Category Labs is a systems engineering and research team building high-performance decentralized infrastructure. The company focuses on application-layer primitives enabled by a custom, high-throughput EVM client. As a Smart Contract Engineer, you will work within the core engineering group to design and implement smart contracts aligned with the performance characteristics...
  • Difficulty - Medium
    Total Plays - 16
    Allowed Time - 10 sec
    Best time - 1.367

    Which opcode differentiates EOAs from contracts?

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

    #A
    #B
    #C
    #D
    Explanation:
    EXTCODESIZE returns zero for EOAs and non-zero for deployed contracts. This distinction is commonly used for contract detection, though it has edge cases.
  • Difficulty - Medium
    Total Plays - 16
    Allowed Time - 10 sec
    Best time - 3.221

    Which opcode returns remaining gas?

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

    #A
    #B
    #C
    #D
    Explanation:
    GASLEFT returns the amount of gas remaining in the current execution context. It is commonly used for gas-aware logic and debugging.
  • Difficulty - Medium
    Total Plays - 16
    Allowed Time - 10 sec
    Best time - 3.422

    Which type consumes exactly one storage slot regardless of value?

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

    #A
    #B
    #C
    #D
    Explanation:
    bytes32 always occupies a full 32-byte storage slot. Smaller types may be packed together, but bytes32 always stands alone.
  • Difficulty - Medium
    Total Plays - 13
    Allowed Time - 10 sec
    Best time - 1.200

    Why does storage write order matter for structs?

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

    #A
    #B
    #C
    #D
    Explanation:
    Solidity packs struct variables tightly into storage slots based on declaration order. Reordering fields can change slot boundaries and break upgrade compatibility.
  • Difficulty - Medium
    Total Plays - 10
    Allowed Time - 10 sec
    Best time - 0.784

    What determines the base slot of a mapping?

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

    #A
    #B
    #C
    #D
    Explanation:
    The base slot of a mapping is derived using keccak256(key . slot). This hashing ensures unique storage locations per key without collisions.
  • Difficulty - Medium
    Total Plays - 9
    Allowed Time - 10 sec
    Best time - 5.093

    Which operation causes storage slot re-packing?

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

    #A
    #B
    #C
    #D
    Explanation:
    Changing variable types alters how Solidity packs them into storage slots. This can shift offsets and corrupt existing storage layouts in upgradeable contracts.
  • Difficulty - Medium
    Total Plays - 14
    Allowed Time - 10 sec
    Best time - 1.638

    Which data location is read-only by default?

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

    #A
    #B
    #C
    #D
    Explanation:
    Calldata is immutable and cannot be modified by the callee. This makes it gas-efficient and safe for external function inputs
  • Difficulty - Medium
    Total Plays - 10
    Allowed Time - 10 sec
    Best time - 3.221

    What happens to storage slots after contract self-destruct?

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

    #A
    #B
    #C
    #D
    Explanation:
    Storage is not automatically wiped when a contract self-destructs. The data remains on-chain and can be accessed again if a contract is redeployed at the same address.
  • Difficulty - Medium
    Total Plays - 17
    Allowed Time - 10 sec
    Best time - 1.455

    Why is bytes32 cheaper than string in storage?

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

    #A
    #B
    #C
    #D
    Explanation:
    bytes32 has a fixed 32-byte size and fits into a single storage slot. string is dynamically sized and requires additional storage pointers and length metadata.
  • Difficulty - Medium
    Total Plays - 19
    Allowed Time - 10 sec
    Best time - 3.228

    Which operation resets a dynamic array length to zero?

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

    #A
    #B
    #C
    #D
    Explanation:
    Using delete on a dynamic array sets its length to zero. Storage slots may remain allocated but become inaccessible through the array.