Сообщение хешируется тегированным хешем BIP-340 с тегом BIP0322-signed-message; виртуальная транзакция to_spend фиксирует этот хеш и платит на скрипт адреса, а виртуальная транзакция to_sign тратит её. Подписью служит witness (простой формат, префикс smp), вся транзакция to_sign (полный формат, ful) или PSBT с доказательством наличия средств (pof); для P2PKH по-прежнему принимается устаревший формат BIP-137. Хеш пустого сообщения равен c90c269c4f8fcbe6880f72a721ddfbf1914268a794cbb21cfafee13770ae19f1.
Проверка подписи сводится к обычной проверке скриптов, поэтому подпись можно создать для любого скрипта, средства с которого кошелёк способен потратить. В репозитории BIP спецификация имеет статус Complete; поддержка в кошельках и сервисах росла вместе с распространением Taproot и Ordinals, но уточняйте поддержку у каждого контрагента: некоторые из них до сих пор проверяют только BIP-137.