Core
Treasury
Create and manage treasury lifecycle — pause, cancel, and swarm configuration.
Pre-alpha — not production ready
@aura-protocol/sdk-ts targets Solana devnet only. APIs may change without notice. Do not use for real funds until a stable release and audit are published.
createTreasury
Initialize a new treasury PDA with a full policy configuration.
// Build only
const { treasury, instruction } = await client.createTreasuryInstruction({
owner: PublicKey,
args: CreateTreasuryArgs,
});
// Build + send
const { treasury, signature } = await client.createTreasury(
owner: Signer,
args: CreateTreasuryArgs,
);Arguments
interface CreateTreasuryArgs {
agentId: string;
aiAuthority: PublicKey;
createdAt: BN;
pendingTransactionTtlSecs: BN;
policyConfig: PolicyConfigRecord;
protocolFees: ProtocolFeesRecord;
}Example
const { treasury, signature } = await client.createTreasury(owner, {
agentId: 'agent-prod-1',
aiAuthority: owner.publicKey,
createdAt: new BN(Math.floor(Date.now() / 1000)),
pendingTransactionTtlSecs: new BN(900),
policyConfig: {
dailyLimitUsd: new BN(10_000),
perTxLimitUsd: new BN(1_000),
daytimeHourlyLimitUsd: new BN(2_500),
nighttimeHourlyLimitUsd: new BN(500),
velocityLimitUsd: new BN(5_000),
allowedProtocolBitmap: new BN(31),
maxSlippageBps: new BN(100),
maxQuoteAgeSecs: new BN(300),
maxCounterpartyRiskScore: 70,
bitcoinManualReviewThresholdUsd: new BN(5_000),
sharedPoolLimitUsd: null,
weeklyLimitUsd: null,
monthlyLimitUsd: null,
recipientLimits: [],
cooldownConfig: null,
anomalyConfig: null,
reputationPolicy: {
highScoreThreshold: new BN(80),
mediumScoreThreshold: new BN(50),
highMultiplierBps: new BN(15_000),
lowMultiplierBps: new BN(7_000),
},
budgetEnvelopes: [],
approvalLadder: null,
scopedPauseEntries: [],
livenessConfig: {
requireEncryptFreshness: false,
requireDwalletFreshness: false,
requireBalanceOracleFreshness: false,
requireComplianceOracleFreshness: false,
maxStalenessSecs: new BN(300),
},
},
protocolFees: {
treasuryCreationFeeUsd: new BN(100),
transactionFeeBps: new BN(10),
fheSubsidyBps: new BN(5_000),
},
});
console.log('Treasury PDA:', treasury.toBase58());pauseExecution
Pause or resume treasury execution. While paused, all proposeTransaction
calls will fail with ExecutionPaused.
// Build only
const instruction = await client.pauseExecutionInstruction(
accounts: OwnerTreasuryAccounts,
paused: boolean,
now: BNish,
);
// Build + send
await client.pauseExecution(
owner: Signer,
accounts: OwnerTreasuryAccounts,
paused: boolean,
now: BNish,
);const now = new BN(Math.floor(Date.now() / 1000));
const accounts = { owner: owner.publicKey, treasury };
await client.pauseExecution(owner, accounts, true, now); // pause
await client.pauseExecution(owner, accounts, false, now); // resumecancelPending
Cancel the current pending transaction and reset the treasury to idle.
// Build only
const instruction = await client.cancelPendingInstruction(
accounts: OwnerTreasuryAccounts,
now: BNish,
);
// Build + send
await client.cancelPending(
owner: Signer,
accounts: OwnerTreasuryAccounts,
now: BNish,
);await client.cancelPending(
owner,
{ owner: owner.publicKey, treasury },
new BN(Math.floor(Date.now() / 1000)),
);