---
# System prepended metadata

title: Get started with Casper

---

# Get started with Casper

## 1. Create and deploy a simple, smart contract with cargo casper and cargo test

**Build the Contract**

![](https://i.imgur.com/agcqOMX.png)

**Test the Contract**

![](https://i.imgur.com/IJvTovy.png)

**Compile the NCTL binary scripts.**

![](https://i.imgur.com/PC1elJ1.png)

**Set up all the assets required to run a local network, including binaries, chainspec, config, faucet, and keys. Also, spin up the network right after. The default network will have 10 nodes, with 5 active nodes and 5 inactive nodes.**

![](https://i.imgur.com/JWVjldT.png)

See the Faucet Account

![](https://i.imgur.com/ausEJ3H.png)

**Deploying Contracts**

Install the client on most flavors of Linux

![](https://i.imgur.com/OAf3i56.png)

Check the Client Version

![](https://i.imgur.com/VcVBP8R.png)

**Sending a Deployment to the Testnet**

![](https://i.imgur.com/3P2T4Ws.png)

**Check Deploy Status**

![](https://i.imgur.com/pCodQb6.png)

## 2. Complete one of the existing tutorials for writing smart contracts

**A Counter Contract Tutorial**

View the Network State

Faucet information

![](https://i.imgur.com/AOuA01y.png)

Get the state root hash

![](https://i.imgur.com/q1ZVo8b.png)

Query the actual state

![](https://i.imgur.com/gAZY5do.png)

**Deploy the Counter**

Builds the contracts and verifies

![](https://i.imgur.com/bo6y3yz.png)

Call the casper-client put-deploy command to put the contract on the chain.

![](https://i.imgur.com/3CYsgt9.png)

Verify that the deploy successfully took place.

![](https://i.imgur.com/UJsmxie.png)

**View the Updated Network State**

Get the NEW state-root-hash:

![](https://i.imgur.com/vuc02dw.png)

Get the network state:

![](https://i.imgur.com/fMX5eFm.png)

**Increment the Counter**

![](https://i.imgur.com/To0QEBP.png)

**View the Updated Network State Again**

Get the NEW state-root-hash:

![](https://i.imgur.com/obusONT.png)

Get the network state, specifically for the count variable this time:

![](https://i.imgur.com/niLN4Og.png)

**Increment the Counter Again**

![](https://i.imgur.com/FBVDeUs.png)

**View the Final Network State**

Get the NEW state-root-hash:

![](https://i.imgur.com/DxYN3TQ.png)

Get the network state, specifically for the count variable this time:

![](https://i.imgur.com/AvQODLI.png)

## 3. Demonstrate key management concepts by modifying the client in the Multi-Sig tutorial to address one of the additional scenarios

**Building the Smart Contract**

Compile the smart contract and create the WASM file

![](https://i.imgur.com/vmopkjL.png)

Setting up the Client

![](https://i.imgur.com/vnZBj9J.png)

**Testing the Client**

![](https://i.imgur.com/D9I9f1c.png)

**Additional Scenarios**

**Scenario 3: signing transactions with multiple keys**

Modify file package.json with following:

![](https://i.imgur.com/S4wdEtW.png)

Result:

![](https://i.imgur.com/666JF5U.png)

Final Result:

![](https://i.imgur.com/PPYq2xw.png)

## 4. Learn to transfer tokens to an account on the Casper Testnet.

![](https://i.imgur.com/dFLWGRJ.png)

## 5. Learn to Delegate and Undelegate on the Casper Testnet.

**Delegate to a Validator**

![](https://i.imgur.com/M4KjOhz.png)

**Undelegate to a Validator**

![](https://i.imgur.com/pE5Ie81.png)















