AURA
Core

Execution

Drive a proposal through policy decryption, dWallet co-signing, and finalization.

Pre-alpha — not production ready

aura-sdk targets Solana devnet only. APIs may change without notice. Do not use for real funds until a stable release and audit are published.

After a proposal is created, execution follows a fixed sequence.

Flow

Public:
  propose_transaction → execute_pending → finalize_execution

Confidential:
  propose_confidential_transaction
    → request_policy_decryption
    → confirm_policy_decryption
    → execute_pending
    → finalize_execution

request_policy_decryption

Request the Ika Encrypt network to decrypt the FHE policy output.

client.request_policy_decryption(
    &operator,
    accounts,
    now,
    &[&request_signer],
)?;

confirm_policy_decryption

Apply the decrypted policy result once the Encrypt network has responded.

client.confirm_policy_decryption(
    &operator,
    treasury,
    request_account,
    now,
)?;

execute_pending

Submit the approved proposal to the dWallet program for co-signing.

client.execute_pending(&operator, accounts, now)?;

finalize_execution

Verify the dWallet co-signature and close the proposal.

client.finalize_execution(&operator, accounts, now)?;

Complete Example

use aura_sdk::{AuraClient, ENCRYPT_DEVNET_PROGRAM_ID, DWALLET_DEVNET_PROGRAM_ID};

let now = chrono::Utc::now().timestamp();

// 1. Request decryption (confidential only)
client.request_policy_decryption(
    &operator,
    request_accounts,
    now,
    &[&request_keypair],
)?;

// 2. Confirm decryption (confidential only)
client.confirm_policy_decryption(
    &operator,
    treasury,
    request_keypair.pubkey(),
    now,
)?;

// 3. Execute
client.execute_pending(&operator, execute_accounts, now)?;

// 4. Finalize
client.finalize_execution(&operator, finalize_accounts, now)?;

On this page