feat: throw on invalid hash