AURA
Core

Confidential

Configure scalar FHE spending guardrails via the Ika Encrypt network.

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.

Confidential guardrails store spending limits as scalar FHE ciphertexts on-chain. AURA keeps the daily limit, per-transaction limit, and spent-today counter in separate EUint64 ciphertext accounts. The policy graph updates encrypted spent state in-place and decrypts only the small violation code needed to decide whether the dWallet approval flow can continue.

configureConfidentialGuardrails

Configure scalar FHE guardrails for a treasury.

// Build only
const instruction = await client.configureConfidentialGuardrailsInstruction(
  accounts: ConfigureConfidentialGuardrailsAccounts,
  now: BNish,
);

// Build + send
await client.configureConfidentialGuardrails(
  owner: Signer,
  accounts: ConfigureConfidentialGuardrailsAccounts,
  now: BNish,
);

Accounts

interface ConfigureConfidentialGuardrailsAccounts {
  owner: PublicKey;
  treasury: PublicKey;
  dailyLimitCiphertext: PublicKey;
  perTxLimitCiphertext: PublicKey;
  spentTodayCiphertext: PublicKey;
}

Example

import BN from 'bn.js';

await client.configureConfidentialGuardrails(
  owner,
  {
    owner: owner.publicKey,
    treasury: treasuryPDA,
    dailyLimitCiphertext: dailyLimitCiphertextPDA,
    perTxLimitCiphertext: perTxLimitCiphertextPDA,
    spentTodayCiphertext: spentTodayCiphertextPDA,
  },
  new BN(Math.floor(Date.now() / 1000)),
);

Confidential Policy Shape

FieldCiphertext role
dailyLimitCiphertextMaximum encrypted daily spend
perTxLimitCiphertextMaximum encrypted per-transaction spend
spentTodayCiphertextEncrypted running counter, updated in-place
policyOutputCiphertextEncrypted scalar violation code for the pending proposal

After guardrails are configured, use proposeConfidentialTransaction to submit private spend proposals.

On this page