# Invoking a Starknet Contract Function Using sncast
## Prerequisites
Before proceeding , ensure that you have installed Starknet Foundry. You can verify `sncast` by running:
```sh
sncast --version
```
If `sncast` is not installed, follow the official installation guide. Additionally, ensure that you have created and deployed a Starknet account. Find details [here](https://github.com/software-mansion/starknet-foundry).
## Steps
### 1. Interact with the Counter Contract Using `sncast`
We will use `sncast` to interact with a previously deployed Counter contract on Starknet.
**Counter Contract Address:**
```
0x0070c4689c7c2357a75efb62cadf39ebc0b076c7ac7261d577312ae9fe8a4ac2
```
#### 1.1 Create a Starknet Account
Run the following command to create a new Starknet account named `Otowo`:
```sh
sncast account create --network sepolia --name otowo
```

#### 1.2 Deploy the Created Account
Deploy the created account using the Sepolia testnet RPC:
```sh
sncast account deploy -u https://free-rpc.nethermind.io/sepolia-juno/v0_7 --name otowo
```

#### 1.3 Invoke Functions in the Counter Contract
##### Increase Count by a Specific Value
```sh
sncast --account otowo invoke --network sepolia --contract-address 0x0070c4689c7c2357a75efb62cadf39ebc0b076c7ac7261d577312ae9fe8a4ac2 --function "increase_count" --arguments 9
```

##### Increase Count by One
```sh
sncast --account otowo invoke --network sepolia --contract-address 0x0070c4689c7c2357a75efb62cadf39ebc0b076c7ac7261d577312ae9fe8a4ac2 --function "increase_count_by_one"
```

##### Decrease Count by a Specific Value
```sh
sncast --account otowo invoke --network sepolia --contract-address 0x0070c4689c7c2357a75efb62cadf39ebc0b076c7ac7261d577312ae9fe8a4ac2 --function "decrease_count" --arguments 5
```

##### Decrease Count by One
```sh
sncast --account otowo invoke --network sepolia --contract-address 0x0070c4689c7c2357a75efb62cadf39ebc0b076c7ac7261d577312ae9fe8a4ac2 --function "decrease_count_by_one"
```

### 2. Verify the Invocation
After invoking each function, verify the transaction is valid using the generated transaction hash.
---
By following these steps, you will successfully interact with the Counter contract using `sncast` and understand how to send transactions on Starknet.