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