Bird
Raised Fist0
Blockchain / Solidityprogramming~20 mins

Indexed parameters in Blockchain / Solidity - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Indexed Parameters Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of event with indexed parameters
Consider the following Solidity event and transaction. What will be the output when the event is emitted and filtered by the indexed parameter?
Blockchain / Solidity
pragma solidity ^0.8.0;

contract Test {
    event Transfer(address indexed from, address indexed to, uint amount);

    function send(address to, uint amount) public {
        emit Transfer(msg.sender, to, amount);
    }
}
AThe event logs will not include any indexed parameters as topics.
BThe event logs will include data for 'from', 'to', and 'amount' but no topics.
CThe event logs will include only the 'amount' as a topic and 'from' and 'to' as data.
DThe event logs will include topics for 'from' and 'to' addresses and data for 'amount'.
Attempts:
2 left
💡 Hint
Indexed parameters appear as topics in event logs.
❓ Predict Output
intermediate
1:30remaining
Number of topics in event logs
Given this Solidity event, how many topics will be present in the event log when emitted?
Blockchain / Solidity
event Approval(address indexed owner, address indexed spender, uint256 value);
A3 topics: one for the event signature and two for the indexed parameters.
B2 topics: one for the event signature and one for all indexed parameters combined.
C1 topic: only the event signature is a topic.
D4 topics: one for the event signature and three for each parameter.
Attempts:
2 left
💡 Hint
Each indexed parameter adds one topic, plus the event signature topic.
🔧 Debug
advanced
2:30remaining
Why does filtering by a non-indexed parameter fail?
A developer tries to filter events by a non-indexed parameter but gets no results. Why does this happen?
Blockchain / Solidity
event Deposit(address indexed user, uint amount);

// Filtering by amount
filter = {amount: 100};
ABecause the amount parameter is indexed but the filter syntax is wrong.
BBecause non-indexed parameters are stored in data, not topics, and cannot be filtered by the Ethereum node.
CBecause the event signature is missing from the filter.
DBecause the event was not emitted properly.
Attempts:
2 left
💡 Hint
Filtering by indexed parameters uses topics, non-indexed parameters are in data and not filterable.
📝 Syntax
advanced
1:30remaining
Identify the syntax error in event declaration
Which option contains a syntax error in declaring an event with indexed parameters?
Aevent Log(address sender indexed, uint value);
Bevent Log(address indexed sender, uint indexed value);
Cevent Log(address indexed sender, uint value);
Devent Log(address sender, uint indexed value);
Attempts:
2 left
💡 Hint
The 'indexed' keyword must come immediately after the type.
🚀 Application
expert
3:00remaining
Max number of indexed parameters in an event
What is the maximum number of indexed parameters allowed in a Solidity event, and why?
A2 indexed parameters, because only two topics are reserved for parameters.
B4 indexed parameters, because there is no limit on indexed parameters.
C3 indexed parameters, because the Ethereum log topics limit is 4 including the event signature.
D5 indexed parameters, because the EVM supports up to 5 topics per event.
Attempts:
2 left
💡 Hint
The event signature occupies one topic, and the total topics per log is limited.

Practice

(1/5)
1.

What is the main purpose of indexed parameters in blockchain events?

easy
A. To limit the size of event data
B. To encrypt event data for security
C. To tag event data for fast searching on the blockchain
D. To automatically execute functions on event trigger

Solution

  1. Step 1: Understand the role of indexed parameters

    Indexed parameters are used to tag event data so it can be searched quickly on the blockchain.
  2. Step 2: Compare with other options

    Encryption, size limits, or automatic execution are not related to indexed parameters.
  3. Final Answer:

    To tag event data for fast searching on the blockchain -> Option C
  4. Quick Check:

    Indexed parameters = fast search tags [OK]
Hint: Indexed means fast searchable tags in events [OK]
Common Mistakes:
  • Thinking indexed encrypts data
  • Confusing indexing with size limits
  • Assuming indexed triggers functions
2.

Which of the following is the correct syntax to declare an indexed parameter in a Solidity event?

event Transfer(address ? from, address to, uint amount);
easy
A. indexed
B. index
C. indexing
D. indexedParam

Solution

  1. Step 1: Recall Solidity event syntax

    The keyword to mark a parameter as indexed is exactly indexed.
  2. Step 2: Check other options

    Other words like index, indexing, or indexedParam are invalid in Solidity event declarations.
  3. Final Answer:

    indexed -> Option A
  4. Quick Check:

    Use 'indexed' keyword for parameters [OK]
Hint: Use exact keyword 'indexed' for event parameters [OK]
Common Mistakes:
  • Using 'index' instead of 'indexed'
  • Adding extra words like 'indexedParam'
  • Omitting the keyword entirely
3.

Given the Solidity event declaration:

event Approval(address indexed owner, address indexed spender, uint256 value);

Which parameters are indexed and can be filtered in event logs?

medium
A. owner and spender
B. owner and value
C. spender and value
D. owner, spender, and value

Solution

  1. Step 1: Identify indexed parameters in the event

    The event declares owner and spender as indexed parameters.
  2. Step 2: Understand filtering capability

    Only indexed parameters can be filtered in event logs, so owner and spender are filterable.
  3. Final Answer:

    owner and spender -> Option A
  4. Quick Check:

    Indexed parameters = owner, spender [OK]
Hint: Only parameters with 'indexed' keyword are filterable [OK]
Common Mistakes:
  • Assuming all parameters are indexed
  • Including non-indexed 'value' as filterable
  • Confusing parameter order with indexing
4.

What is wrong with this Solidity event declaration?

event Deposit(address indexed from, uint indexed amount, uint indexed message, uint indexed timestamp);
medium
A. Indexed keyword is missing
B. Parameters must be public
C. Event name is invalid
D. More than 3 parameters are indexed

Solution

  1. Step 1: Count indexed parameters

    The event has four indexed parameters: from, amount, message, and timestamp.
  2. Step 2: Recall indexing limit

    Solidity allows a maximum of 3 indexed parameters per event. This declaration exceeds that limit.
  3. Final Answer:

    More than 3 parameters are indexed -> Option D
  4. Quick Check:

    4 indexed > max 3 [OK]
Hint: Max 3 indexed params per event [OK]
Common Mistakes:
  • Thinking 4 indexed parameters are allowed
  • Ignoring the 3 indexed parameter limit
  • Confusing event name rules
5.

You want to create an event to track token transfers with these details: sender address, receiver address, amount, and a note message. You want to filter events by sender and receiver. Which event declaration is correct?

hard
A. event Transfer(address indexed sender, address indexed receiver, uint indexed amount, string indexed note);
B. event Transfer(address indexed sender, address indexed receiver, uint amount, string note);
C. event Transfer(address indexed sender, address receiver, uint indexed amount, string note);
D. event Transfer(address sender, address receiver, uint indexed amount, string indexed note);

Solution

  1. Step 1: Identify which parameters need indexing

    Sender and receiver addresses must be indexed for filtering.
  2. Step 2: Check indexing limits and types

    Only 3 parameters can be indexed. Amount can be indexed but note (string) cannot be indexed.
  3. Step 3: Evaluate each option

    event Transfer(address indexed sender, address indexed receiver, uint amount, string note); indexes sender and receiver only, which is correct. event Transfer(address sender, address receiver, uint indexed amount, string indexed note); indexes amount and note incorrectly. event Transfer(address indexed sender, address receiver, uint indexed amount, string note); indexes amount but not receiver. event Transfer(address indexed sender, address indexed receiver, uint indexed amount, string indexed note); indexes 4 parameters which is invalid and string cannot be indexed.
  4. Final Answer:

    event Transfer(address indexed sender, address indexed receiver, uint amount, string note); -> Option B
  5. Quick Check:

    Index sender and receiver only; string can't be indexed [OK]
Hint: Index only filterable params; strings cannot be indexed [OK]
Common Mistakes:
  • Indexing string parameters
  • Indexing more than 3 parameters
  • Not indexing all filterable parameters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard