# StarkNet Nile. Smart Contract development **Published by:** [EFavela021](https://paragraph.com/@efavela021/) **Published on:** 2022-11-06 **URL:** https://paragraph.com/@efavela021/starknet-nile-smart-contract-development ## Content Simple smart contract with auth.mkdir myproject cd myproject python3 -m venv env source env/bin/activate pip install cairo-nile nile init Run local nodeCreate .env file for walletsvim .env Paste private keys of wallets. Example:aaa=111 bbb=222 ccc=333 Setup walletsnile setup <private_key_alias> Edit contract filevim contract.cairo Paste contract code%lang starknet from starkware.cairo.common.cairo_builtins import HashBuiltin from starkware.starknet.common.syscalls import get_caller_address // Define a storage variable. @storage_var func balance(user: felt) -> (res: felt) { } // Increases the balance by the given amount. @external func increase_balance{ syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr, }(amount: felt) { let (user) = get_caller_address(); let (res) = balance.read(user=user); balance.write(user, res + amount); return (); } // Returns the current balance. @view func get_balance{ syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr, }(user: felt) -> (res: felt) { let (res) = balance.read(user=user); return (res=res); } https://gist.github.com/e-favela021/1eca1ba17e3d803e357f2fa91e704fd0 Compile contractnile compile Deploy contractnile deploy contract --alias my_contract Test contractnile send aaa my_contract increase_balance 100 nile send bbb my_contract increase_balance 500 nile call my_contract get_balance <address> Account addresses located in localhost.accounts.json file ## Publication Information - [EFavela021](https://paragraph.com/@efavela021/): Publication homepage - [All Posts](https://paragraph.com/@efavela021/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@efavela021): Subscribe to updates