Skip to main content

Challenge 1: Checkin

In this first challenge, your task is to interact with a basic Move contract. The contract defines a Flag object, which you need to retrieve by calling a specific function.

The contract mints a new flag and transfers it to your account. Your goal is to call the function, capture the flag, and then submit the object ID to verify your success.

This challenge is designed to be an easy introduction, guiding you through the process of interacting with the blockchain, calling functions, and understanding the basics of flag capture.

Deployed Contract Address:

Package: 0xed1bbeb067ea89b70859641557700997a39bf749b5eedf91e221d56a5d961622

Contracts

checkin.move

module ctf::checkin {

public struct Flag has key, store {
id: UID,
user: address
}

public entry fun get_flag(ctx: &mut TxContext) {
transfer::public_transfer(Flag {
id: object::new(ctx),
user: tx_context::sender(ctx)
}, tx_context::sender(ctx));
}
}

In this challenge, you must use the IOTA CLI to interact with the blockchain. This set of articles will help you set up your environment and call a deployed contract:

Good luck in capturing your first flag!