A Verkle tree is a commitment scheme similar to a Merkle tree but with smaller witnesses. It replaces the hashes in a Merkle tree with a vector commitment, allowing for more efficient wider branching factors. The Verkle tree uses Pedersen commitments, which are based on elliptic curves. The chosen curve is Bandersnatch, which is performant and allows for efficient SNARKs in BLS12_381 in the future. The Verkle tree has a branching factor of 256 and each commitment can commit to up to 256 values of 252 bits each. The key scheme consists of a stem of 31 bytes and a suffix of one byte. The Verkle tree is composed of extension nodes and inner nodes. Extension nodes represent values with the same stem and different suffixes, while inner nodes have up to 256 children. The Verkle tree also introduces changes to the layout and commitment of leaf nodes. The commitment to an extension node includes commitments for values with different suffixes. The commitment for an internal node is a vector of commitments for each subtree. Insertion into the Verkle tree involves adding new nodes and modifying existing nodes when stems collide. The Verkle tree structure allows for shallower trees and smaller proofs.