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