Advanced
Address Lists
Manage per-chain allow and deny lists for recipient addresses.
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.
Address lists let you maintain per-chain allowlists or denylists for recipient addresses. Pass address_list in the proposal accounts to enforce the list.
init_address_list
Create a new address list for a specific chain and mode.
// Build only
let instruction = client.init_address_list_instruction(accounts, mode, chain, now);
// Build + send
client.init_address_list(&owner, accounts, mode, chain, now)?;client.init_address_list(
&owner,
aura_core::accounts::InitAddressList {
owner: owner.pubkey(),
treasury,
address_list: address_list_pda,
system_program: anchor_lang::system_program::ID,
},
1, // mode: 0 = allowlist, 1 = denylist
2, // chain: Ethereum
now,
)?;manage_address_list
Add or remove addresses from an existing list.
// Build only
let instruction = client.manage_address_list_instruction(accounts, mode, chain, addresses, now);
// Build + send
client.manage_address_list(&operator, accounts, mode, chain, addresses, now)?;client.manage_address_list(
&owner,
aura_core::accounts::ManageAddressList {
operator: owner.pubkey(),
treasury,
operator_role: None,
address_list: address_list_pda,
},
0, // mode: 0 = add, 1 = remove
2, // chain: Ethereum
vec!["0xbadactor1...".to_string(), "0xbadactor2...".to_string()],
now,
)?;close_address_list
Close the address list account and reclaim rent.
// Build only
let instruction = client.close_address_list_instruction(accounts);
// Build + send
client.close_address_list(&owner, accounts)?;