1. Home
  2. /
  3. Anchor
  4. /
  5. Simple Counter Program

Simple Counter Program - Anchor Typing CST Test

Loading…

Simple Counter Program — Anchor Code

A minimal Anchor program defining a counter with increment and reset functionality, demonstrating the use of Anchor macros and client interaction.

#[program]
mod counter {
	use super::*;
	#[state]
	pub struct Counter {
		pub value: u64,
	}

	impl Counter {
		pub fn new(ctx: Context<New>) -> Result<Self> {
		Ok(Counter { value: 0 })
		}

		pub fn increment(&mut self, ctx: Context<Increment>) -> Result<()> {
		self.value += 1;
		Ok(())
		}

		pub fn reset(&mut self, ctx: Context<Reset>) -> Result<()> {
		self.value = 0;
		Ok(())
		}
	}
}

Anchor Language Guide

Anchor is a Rust-based framework for Solana smart contract (program) development, testing, and deployment. It simplifies building Solana dApps by providing a high-level abstraction over Solana programs and client interactions.

Primary Use Cases

  • ▸Writing Solana smart contracts in Rust
  • ▸Generating client interfaces (IDL) for programs
  • ▸Testing programs with simulated Solana clusters
  • ▸Deploying Solana programs to devnet/testnet/mainnet
  • ▸Automating transactions and client-side interactions

Notable Features

  • ▸Rust-based Solana program development
  • ▸IDL generation for client libraries
  • ▸Anchor CLI for scaffolding, building, and deploying programs
  • ▸Testing framework integrated with Solana local validator
  • ▸Macros to reduce boilerplate for accounts, instructions, and errors

Origin & Creator

Anchor was created by Project Serum team members in 2020 to simplify Solana program development, reduce boilerplate, and improve developer productivity.

Industrial Note

Anchor is widely used in DeFi, NFT, and other Solana ecosystem projects, as it standardizes Solana program structure and automates common patterns like account validation and serialization.

More Anchor Typing Exercises

Anchor Token Mint ExampleAnchor Initialize Account ExampleAnchor Transfer SOL ExampleAnchor PDA ExampleAnchor Multisig ExampleAnchor Escrow ExampleAnchor Event Emission ExampleAnchor Custom Error ExampleAnchor Program With Seeds Example

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher