Instructions
Complete reference for all Aegis Protocol instructions.
initialize_vault
Create a new vault configuration.
Parameters:
nonce: u64- Unique vault identifieragent_signer: Pubkey- AI agent public keydaily_limit: u64- Max lamports per dayname: String- Vault name (max 50 chars)
Accounts:
vault(init) - VaultConfig PDAvault_authority(init) - Vault authority PDAauthority(signer, mut) - Vault ownersystem_program- System program
Emits: VaultCreated
execute_guarded
Execute owner-signed transaction with policy validation.
Parameters:
vault_nonce: u64- Vault nonceamount: u64- Transfer amount
Accounts:
vault(mut) - VaultConfig PDAvault_authority(mut) - Vault authority PDAdestination(mut) - Recipient accountauthority(signer) - Vault ownerfee_treasury(mut) - Fee collection accountsystem_program- System program
Emits: TransactionExecuted or TransactionBlocked
execute_agent
Execute agent-signed transaction with policy validation.
Parameters:
vault_nonce: u64- Vault nonceamount: u64- Transfer amount
Accounts:
vault(mut) - VaultConfig PDAvault_authority(mut) - Vault authority PDAdestination(mut) - Recipient accountagent_signer(signer) - AI agentfee_treasury(mut) - Fee collectionsystem_program- System program
Policy Checks:
- Vault not paused
- Destination whitelisted
- Within daily limit
- Agent signer matches vault.agent_signer
Emits: TransactionExecuted or TransactionBlocked
create_override
Create override request for blocked transaction.
Parameters:
vault_nonce: u64destination: Pubkeyamount: u64reason: BlockReason
Accounts:
override(init) - PendingOverride PDAvault(mut) - VaultConfig PDAauthority(signer, mut) - Vault ownersystem_program- System program
Emits: OverrideCreated
approve_override
Approve a pending override request.
Parameters:
vault_nonce: u64
Accounts:
override(mut) - PendingOverride PDAvault- VaultConfig PDAauthority(signer) - Vault owner
Checks:
- Override not expired
- Not already approved
- Authority matches vault owner
Emits: OverrideApproved
execute_approved_override
Execute an approved override transaction.
Parameters:
vault_nonce: u64
Accounts:
override(mut) - PendingOverride PDAvault(mut) - VaultConfig PDAvault_authority(mut) - Vault authority PDAdestination(mut) - Recipient accountauthority(signer) - Vault ownerfee_treasury(mut) - Fee collectionsystem_program- System program
Emits: TransactionExecuted
update_daily_limit
Update vault's daily spending limit.
Parameters:
vault_nonce: u64new_daily_limit: u64
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Emits: PolicyUpdated
add_to_whitelist
Add address to vault whitelist.
Parameters:
vault_nonce: u64address: Pubkey
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Constraints:
- Whitelist not full (max 20)
- Address not already whitelisted
Emits: PolicyUpdated
remove_from_whitelist
Remove address from whitelist.
Parameters:
vault_nonce: u64address: Pubkey
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Emits: PolicyUpdated
pause_vault
Emergency pause - blocks all transactions.
Parameters:
vault_nonce: u64
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Emits: VaultPaused
resume_vault
Resume paused vault.
Parameters:
vault_nonce: u64
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Emits: VaultResumed
update_agent_signer
Rotate agent signer key.
Parameters:
vault_nonce: u64new_agent_signer: Pubkey
Accounts:
vault(mut) - VaultConfig PDAauthority(signer) - Vault owner
Emits: AgentSignerUpdated