`bytes` are immutable sequences of integers 0-255, distinct from `str` (Unicode text). Converting between them requires an explicit encoding, usually UTF-8.
python
b = b"\x01\x02\xff"
b.hex() # "0102ff"
bytes.fromhex("0102ff") # b'\x01\x02\xff'
s = "gm"
s.encode("utf-8") # b'gm'
b"gm".decode("utf-8") # "gm"
import base64
base64.b64encode(b"gm") # b'Z20='Blockchain data (addresses, hashes, signatures) is often shown as `0x`-prefixed hex text but stored/transmitted as raw bytes; strip the prefix before `bytes.fromhex`.