Behaviour for storing SIWX access records.
Storage adapters persist wallet access grants keyed by {address, resource}.
Summary
Types
Stored access record for a wallet/resource pair.
Callbacks
Deletes an access record by wallet address and resource identifier.
Fetches an access record by wallet address and resource identifier.
Stores an access record for a wallet/resource pair with a TTL in milliseconds.
Functions
Validates that a value is a module implementing X402.Extensions.SIWX.Storage.
Types
@type access_record() :: %{payment_proof: term(), expires_at_ms: non_neg_integer()}
Stored access record for a wallet/resource pair.
Callbacks
Deletes an access record by wallet address and resource identifier.
@callback get(address :: String.t(), resource :: String.t()) :: {:ok, access_record()} | {:error, :not_found}
Fetches an access record by wallet address and resource identifier.
@callback put( address :: String.t(), resource :: String.t(), payment_proof :: term(), ttl_ms :: non_neg_integer() ) :: :ok | {:error, term()}
Stores an access record for a wallet/resource pair with a TTL in milliseconds.
Functions
Validates that a value is a module implementing X402.Extensions.SIWX.Storage.
This function is intended for NimbleOptions custom validation.