Web3 is a library that allows applications to interact with a blockchain. It provides APIs that allow applications to read and write data to the blockchain, as well as to deploy and call smart contracts.