# 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)