Overview
Policies add additional authorization logic on top of signers - threshold multisig, spending limits, weighted voting, etc. Access the manager viakit.policies.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Attach and detach policies on context rules via kit.policies.
kit.policies.
// Add a threshold policy to rule 0
await kit.policies.add(0, 'CPOLICY...', installParams);
// Remove it
await kit.policies.remove(0, 'CPOLICY...');
add()await kit.policies.add(
contextRuleId: number,
policyAddress: string,
installParams: xdr.ScVal
);
import { createThresholdParams } from 'smart-account-kit';
const params = createThresholdParams(2); // 2-of-N
const installParams = kit.convertPolicyParams(params);
await kit.policies.add(0, process.env.THRESHOLD_POLICY_ADDRESS!, installParams);
import { createSpendingLimitParams, LEDGERS_PER_DAY } from 'smart-account-kit';
const params = createSpendingLimitParams(
'CTOKEN...',
BigInt(1000 * 10_000_000), // 1000 tokens
LEDGERS_PER_DAY
);
const installParams = kit.convertPolicyParams(params);
await kit.policies.add(0, process.env.SPENDING_LIMIT_POLICY_ADDRESS!, installParams);
remove()await kit.policies.remove(
contextRuleId: number,
policyAddress: string
);
| Builder | Policy | Description |
|---|---|---|
createThresholdParams(m) | Threshold | M-of-N multisig |
createWeightedThresholdParams(threshold, weights) | Weighted threshold | Weighted voting |
createSpendingLimitParams(token, limit, period) | Spending limit | Time-limited per-token cap |
import {
createThresholdParams,
createWeightedThresholdParams,
createSpendingLimitParams,
LEDGERS_PER_HOUR,
LEDGERS_PER_DAY,
LEDGERS_PER_WEEK,
} from 'smart-account-kit';