Looks like they did not include the creation of the counter in the program but instead are handling it on the Client side using System Program. Take a look at [the tests](https://github.com/solana-developers/program-examples/blob/d6cd69d8df3eb95966b3d2361ede84529413567a/basics/counter/native/tests/counter.test.ts#L37C8-L43): ```javascript const allocIx: TransactionInstruction = SystemProgram.createAccount({ fromPubkey: payer, newAccountPubkey: counter, lamports: await connection.getMinimumBalanceForRentExemption(COUNTER_ACCOUNT_SIZE), space: COUNTER_ACCOUNT_SIZE, programId: PROGRAM_ID }) ``` This is a little different than how they've implemented [in the anchor example](https://github.com/solana-developers/program-examples/blob/d6cd69d8df3eb95966b3d2361ede84529413567a/basics/counter/anchor/programs/counter_anchor/src/lib.rs#L11-L13), where they've explicitly created an initialize function in the program: ```rust pub fn initialize_counter(_ctx: Context<InitializeCounter>) -> Result<()> { Ok(()) } ```