# Get started with Casper ## 1. Create and deploy a simple, smart contract with cargo casper and cargo test ![](https://i.imgur.com/WXaurgJ.png) Starting Node ![](https://i.imgur.com/bhXZ04I.png) Deploy Contract ![](https://i.imgur.com/VPikrPo.png) Get deploy contract ![](https://i.imgur.com/exOXNlI.png) ## 2. Complete one of the existing tutorials for writing smart contracts **A Counter Contract Tutorial** ![](https://i.imgur.com/mqEyhAJ.png) "account_hash": "account-hash-0492cbc0043de33ab620b6e206c893db68d3009f50e4600cb83236ae2c2c4436" secret key : /root/casper-node/utils/nctl/assets/net-1/faucet/secret_key.pem ![](https://i.imgur.com/OlRVz9B.png) "state_root_hash": "e61922bb37c6b45d9744086e96d16377bea47bde1fc67926d2aac07763685dd0" ![](https://i.imgur.com/WPUBKHS.png) Make prepare ![](https://i.imgur.com/9C0bAIH.png) Make test ![](https://i.imgur.com/8rCacOm.png) Put the contract on the chain. ![](https://i.imgur.com/yGXbo0A.png) (env) root@alexander:~/counter# casper-client put-deploy --node-address http://localhost:11101 --chain-name casper-net-1 --secret-key /root/casper-node/utils/nctl/assets/net-1/faucet/secret_key.pem --payment-amount 5000000000000 --session-path ./target/wasm32-unknown-unknown/release/counter-define.wasm { "id": -232548569025400700, "jsonrpc": "2.0", "result": { "api_version": "1.0.0", "deploy_hash": "bbaff5aebdc5e6ce726c5d35d79c10c18c260865db5b8941034f8c93fe50d36a" } } Verify that the deploy successfully took place. ![](https://i.imgur.com/YKaq4iM.png) Get the NEW state-root-hash: ![](https://i.imgur.com/pwaFjFw.png) Get the network state: ![](https://i.imgur.com/dkzSexR.png) Increment the Counter ![](https://i.imgur.com/7DVwgmL.png) (env) root@alexander:~/counter# casper-client put-deploy --node-address http://localhost:11101 --chain-name casper-net-1 --secret-key /root/casper-node/utils/nctl/assets/net-1/faucet/secret_key.pem --payment-amount 5000000000000 --session-name "counter" --session-entry-point "counter_inc" View the Updated Network State Again Get the NEW state-root-hash: ![](https://i.imgur.com/OQy0CGL.png) Get the network state, specifically for the count variable this time: ![](https://i.imgur.com/mqXApnC.png) ## 3. Demonstrate key management concepts by modifying the client in the Multi-Sig tutorial to address one of the additional scenarios Compile the smart contract and create the WASM file: ![](https://i.imgur.com/sBL8Fbf.png) Setting up the Client ![](https://i.imgur.com/tgfb6qm.png) Testing the Client ![](https://i.imgur.com/mb3gHGn.png) **Scenario 2: deploying with special keys** Add the scenario 2 script to package.json ![](https://i.imgur.com/rKPS88q.png) Result: ![](https://i.imgur.com/hs1GMHV.png) ## 4. Learn to transfer tokens to an account on the Casper Testnet. Create an account: ![](https://i.imgur.com/5VWRXF3.png) Get faucet to this account: ![](https://i.imgur.com/9M17EPn.png) Transfer to the second account: ![](https://i.imgur.com/Yng6tHM.png) ## 5. Learn to Delegate and Undelegate on the Casper Testnet. Check out these instructions. Delegate ![](https://i.imgur.com/dgbH2OL.png) Undelegate ![](https://i.imgur.com/iC0n4h3.png) -----The end-----