Original name of a variable-length integer format used in transaction and block serialization. Also known as “Satoshi’s encoding”. It uses 1, 3, 5 or 9 bytes to represent any 64-bit unsigned integer. Values lower than 253 are represented with 1 byte. Bytes 253, 254 and 255 indicate 16-, 32- or 64-bit integer that follows. Smaller numbers can be presented differently. In bitcoin-ruby it is called “var_int”, in Bitcoinj it is VarInt. BitcoinQT also has even more compact representation called VarInt which is not compatible with CompactSize and used in block storage.