A merkle root is created by hashing together pairs of TXIDs to get a short and unique fingerprint for all the transactions in a block. Merkle root is placed in a block header to prevent the contents of the block from being tampered with later on. If someone tries to add or remove a transaction from the block, the merkle root for the transactions inside the block will no longer match the merkle root inside the block header. In essence, the merkle root is what connects the block header to the transactions in the block.