---
description: CALLVALUE, JUMP, JUMPDEST
---

# Puzzle 1

## Puzzle

```
############
# Puzzle 1 #
############

00      34      CALLVALUE
01      56      JUMP
02      FD      REVERT
03      FD      REVERT
04      FD      REVERT
05      FD      REVERT
06      FD      REVERT
07      FD      REVERT
08      5B      JUMPDEST
09      00      STOP

? Enter the value to send: (0) 
```

## Solution

Look up `CALLVALUE` on [evm.codes](https://www.evm.codes/?fork=merge):

> Get deposited value by the instruction/transaction responsible for this execution

In other words, `CALLVALUE` pushes msg.value onto the stack. In this puzzle, our input is used as msg.value.

After that, `JUMP` is going to pop the top element from the stack, which is msg.value. This is equivalent to calling `jump(msg.value)`. It changes the PC to the address specified by our input.

The objective is to jump to address `0x08`, so 8 is the correct input.
