client.GuardSigner manages approvals for protected funding account-control actions.
| Method | Purpose |
|---|---|
GetStatus / CreateWallet | Guard wallet state/provisioning |
SignProtectedAction | One approval |
BatchSignProtectedActions | Multiple approvals |
RotateWallet / ExportWallet | Guard key lifecycle |
status, err := client.GuardSigner.GetStatus(ctx, nil, nil)
chainID := 6
approval, err := client.GuardSigner.SignProtectedAction(
ctx,
"add_allowed_external_destinations",
nil, nil,
&chainID,
[]string{"0x..."},
nil, nil,
)The returned *models.GuardApproval carries ApprovalID, Signature, NonceSpace and DeadlineUnix (Unix seconds). NonceSpace and DeadlineUnix are the exact signed approval fields:
submit them unchanged with Signature.
The action determines which optional fields are required. These are authenticated control-plane mutations: do not retry blindly and never log approvals or exported key material.
Guard signer methods accept only a session token. An API key is refused with *errors.SessionRequiredError, which changed nothing and is not retryable with an API key.
An approval does not submit an on-chain transaction. Combine it with the matching Chain helper and verify the receipt/final state.