Base58Check es una codificación utilizada en el sistema Bitcoin para representar direcciones de recepción de legados y algunos otros datos, como claves extendidas, en forma de cadenas de caracteres legibles por humanos. Es una variante del sistema Base58, una representación posicional de base 58 diseñada para minimizar los errores humanos de transcripción. Utiliza un conjunto de 58 caracteres alfanuméricos, formado por los dígitos del 1 al 9, las letras mayúsculas de la A a la Z (excluyendo las letras I y O para evitar confusiones con los dígitos 1 y 0), y las letras minúsculas de la a a la z (excluyendo la letra l para evitar confusiones con el dígito 1). base58Check» se diferencia de «Base58» en que añade una suma de comprobación. Está representada por una versión reducida de un hash doble SHA256 de los datos originales (SHA256d o HASH256), al final de los datos codificados en Base58. Al verificar, se recalcula la suma de comprobación y se compara con la que se añadió durante la codificación. Si los dos hashes coinciden, los datos se consideran válidos; en caso contrario, se informa de un error de corrupción o transcripción.
El uso de Base58Check en las direcciones y claves de Bitcoin ofrece varias ventajas. En primer lugar, reduce los errores humanos de transcripción y lectura al evitar caracteres ambiguos. En segundo lugar, protege contra errores de escritura al detectar e informar de errores a través de la suma de comprobación. En tercer lugar, la representación compacta de los datos en Base58Check reduce el espacio necesario para almacenar y compartir direcciones y claves. Las direcciones receptoras más recientes (posteriores a SegWit) han abandonado esta codificación Base58Check por las codificaciones Bech32 y Bech32m, que tienen una suma de comprobación más avanzada (con códigos BCH).