MandateRegistry contract at execution time. Configuring a mandate correctly is critical — overly permissive mandates increase operational risk, while overly restrictive mandates may prevent the agent from completing its intended function.
This page covers the full mandate schema, explains the purpose and valid values for each field, and walks through the end-to-end process of creating and activating a mandate.
Mandate Schema Reference
The following JSON represents a complete mandate configuration object submitted to theMandateRegistry:
allowedAssets must be checksummed ERC-20 contract addresses as registered in the Synclear asset registry (the example above uses USDC and USDT on Ethereum mainnet). All monetary amounts are expressed as unsigned integers in the token’s native decimal precision (e.g., 6 decimals for USDC, so 10000000000 represents 10,000 USDC). Submitting amounts in the wrong precision is a common configuration error and will result in unintended limit enforcement.
Field Reference
address
required
The checksummed Ethereum address of the registered AI agent that this mandate authorizes. The agent must already be registered in the Synclear agent registry under the principal’s account. Mandates referencing unregistered addresses will be rejected at creation.
string[]
required
An array of action types the agent is authorized to perform. Valid values are drawn from a closed enum:
BORROW— initiate a credit draw against an approved credit lineREPAY— submit full or partial repayments on outstanding obligationsDEPOSIT— move assets into a Synclear-managed position or poolWITHDRAW— redeem assets from a position or poolSWAP— execute asset exchanges through permitted integrations
MandateRegistry, even if the agent’s account has standing permission to perform it.address[]
required
An explicit allowlist of checksummed ERC-20 contract addresses that the agent may interact with. Each address must correspond to an asset registered in the Synclear asset registry. Interactions involving assets not on this list will be rejected at the contract level. Use the most restrictive list that satisfies the agent’s operational requirements.
string[]
An optional list of protocol identifiers that the agent may route transactions through. If omitted, the agent is restricted to core Synclear protocol operations only. Specifying external protocol identifiers here enables integrations with whitelisted DeFi venues.
uint256
required
The maximum notional value, in the asset’s base units, that may be moved in a single transaction. The
MandateRegistry checks each incoming transaction against this cap before forwarding to the execution layer. Transactions exceeding this value are reverted.uint256
required
The maximum cumulative notional volume the agent may execute across all transactions within a rolling 24-hour window. The registry tracks daily usage per asset and rejects transactions that would cause the agent to exceed this limit. See Spending Limits for details on how the rolling window is calculated.
uint256
required
A Unix timestamp (in seconds) representing the moment this mandate ceases to be valid. The
MandateRegistry compares this value against block.timestamp on every execution check. Mandates should be set to expire at a meaningful review boundary — typically no more than 90 days from activation for production agents.Creating a Mandate
1
Register the Agent
Navigate to Settings → Agents in the Synclear dashboard. Select Register New Agent, enter the agent’s Ethereum address, and provide an optional descriptive label. Confirm the registration transaction from your principal wallet. The agent address must appear in the registry before you can proceed.
2
Open the Mandate Builder
From the agent’s detail page, select Create Mandate. The mandate builder presents a structured form corresponding to the mandate schema. All required fields must be completed before the form will allow submission.
3
Configure Permitted Actions and Assets
Select the action types the agent requires from the permitted actions checklist. Then add assets to the allowlist using the asset picker, which displays only assets supported by your account’s credit facilities. Apply the principle of least privilege — authorize only what is operationally necessary.
4
Set Spending Limits and Expiry
Enter the per-transaction cap and daily volume limit in the asset’s native units. Use the unit converter in the interface to avoid decimal precision errors. Set an expiry date that aligns with your operational review schedule.
5
Submit and Confirm Creation
Select Submit Mandate. The interface will encode the mandate object and prompt you to sign and broadcast a creation transaction. Once the transaction is confirmed, the mandate exists on-chain in
PENDING state.6
Activate the Mandate
Return to the agent’s mandate list and select Activate next to the newly created mandate. Confirm the activation transaction. After the transaction is mined, the mandate transitions to
ACTIVE and the agent can begin operating under it immediately.Updating an Existing Mandate
Mandate parameters are immutable after creation. If you need to adjust permitted actions, change spending limits, or extend expiry, you must:- Suspend or revoke the existing mandate
- Create a new mandate with the updated parameters
- Activate the new mandate