In Bitcoin coins are not send to addresses. Instead, coins are locked with locking scripts. You own the coins that you can unlock.
Addresses are how receiving wallets inform paying wallets on how they want their coins locked.
For example, if I'm paying you and your wallet send me this address 1N9Cby5NDPsLDnLnTEsYXP4eyWGrfuen7C
she's telling my wallet that she wants their receiving coins locked in a P2PKH (Pay to Public Key Hash) with the public key hash e7e7a79d7d9d23b9dc7dcbd81fead779b2d7167d
So, my wallet will broadcast a transaction, which will unlock some previous coins I have, and lock them to the following script:
OP_DUP OP_HASH160 e7e7a79d7d9d23b9dc7dcbd81fead779b2d7167d OP_EQUALVERIFY OP_CHECKSIG
Your wallet will be pooling the mempool/blockchain waiting to see this transaction there. The second it sees it, it will tell you "paid" or "confirmed".
Address prefixes indicate the type of script:
- starts with 1 = P2PKH
- starts with 3 = P2SH
- starts with bc1q = segwit
- starts with bc1p = taproot