Skip to main content
Every type listed here is exported from @mandate.md/sdk:

MandateConfig

Base configuration for MandateClient. Pass your runtime key and an optional custom API URL.

MandateWalletConfig

Configuration for MandateWallet. Extends MandateConfig with chain and signer options. You must provide either privateKey or signer, not both.

PreflightPayload

Input for the action-based validate() method on MandateClient. Describes the intended action in human-readable terms.

PreflightResult

Response from validate(). Extends ValidateResult with the action field echoed back.

ValidateResult

Response from rawValidate(). Contains the policy decision and intent metadata.

IntentPayload

Full transaction parameters for rawValidate(). Used in self-custodial signing flows where you compute gas parameters yourself.

IntentStatus

Status of a tracked intent. Returned by getStatus(), waitForApproval(), and waitForConfirmation().

RegisterResult

Response from MandateClient.register(). Contains credentials for the newly registered agent.

ExternalSigner

Interface for plugging in any wallet that can send transactions. Implement this to use AgentKit, Privy, or any custom wallet with MandateWallet.
The tx object passed to sendTransaction contains all fields needed for an EIP-1559 transaction. maxFeePerGas, maxPriorityFeePerGas, and nonce are optional because some signers manage these internally.

TransferResult

Returned by MandateWallet.transfer(), sendTransaction(), and related methods. Contains the transaction hash, intent ID, and final status.

MandateClient

Low-level API client that uses these types.

MandateWallet

High-level wallet wrapper with signing and broadcasting.

Errors

Error classes thrown when validation fails.