# `X402.Extensions.SIWX.Verifier`
[🔗](https://github.com/cardotrejos/x402/blob/v0.9.0/lib/x402/extensions/siwx/verifier.ex#L1)

Behaviour for SIWX signature verification.

Implementations verify a SIWX message signature and return whether the
signature matches the claimed wallet address.

# `verify_result`

```elixir
@type verify_result() :: {:ok, boolean()} | {:error, term()}
```

Verifier return value.

# `verify_signature`

```elixir
@callback verify_signature(
  message :: String.t(),
  signature :: String.t(),
  address :: String.t()
) :: verify_result()
```

Verifies a signature against a message and claimed wallet address.

# `validate_module`
*since 0.3.0* 

```elixir
@spec validate_module(term()) :: {:ok, module()} | {:error, String.t()}
```

Validates that a value is a module implementing `X402.Extensions.SIWX.Verifier`.

This function is intended for `NimbleOptions` custom validation.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
