To check a new transaction, a node must know which coins exist right now. Bitcoin Core keeps that answer, the UTXO set, in a LevelDB database in the chainstate folder of its data directory.
What each entry holds
For each unspent output: its outpoint, amount, locking script, the height of the block that created it, and whether it came from a coinbase transaction.
Memory cache
Reading from disk is slow, so recently used coins are kept in RAM. The -dbcache setting controls that cache. Bitcoin Core 31.0 raised the default from 450 MiB to 1,024 MiB on systems with at least 4,096 MiB of RAM.
Separate from blocks
Raw blocks live in the blocks folder. A pruned node can delete old blocks but must keep the full chainstate, because that is what it validates against.