# Destroy an Account 1. We're creating a `PDA` using [create_user.rs](programs/destroy-an-account/src/instructions/create_user.rs) instruction. ```rust #[account( init, seeds=[User::PREFIX.as_bytes(), user.key().as_ref()], payer=user, space=User::SIZE, bump )] pub user_account: Box>, ``` 2. We're closing it using [destroy_user.rs](programs/destroy-an-account/src/instructions/destroy_user.rs) instruction, which uses `Anchor` `AccoutClose` `trait`. ```rust user_account.close(user.to_account_info())?; ``` 3. In our test [destroy-an-account.ts](tests/destroy-an-account.ts) we're using `fetchNullable` since we expect the account to be `null` prior to creation and after closing. ```typescript const userAccountBefore = await program.account.user.fetchNullable(userAccountAddress, "processed"); assert.equal(userAccountBefore, null); ... ... const userAccountAfter = await program.account.user.fetchNullable(userAccountAddress, "processed"); assert.notEqual(userAccountAfter, null); ```