Mask applied only on blur and doesn't prevent you from typing letters. I guess, it has something to do with the wire:model not working properly with Alpine. It works properly when there's no property "balance" in Livewire\Component class to bind to. But then form validation doesn't work.