Skip to main content
This page covers the terms that show up immediately in the SDK examples. It is intentionally narrow.

Settings

Settings is the root account for configuration. Why it matters: threshold, time lock, signer list, and policy state all hang off this account.
Do not treat the Settings PDA as the place to hold assets. It is the control account, not the treasury address.

Sub-Accounts

Sub-accounts are the derived addresses that hold funds and execute transactions. In practice, this is the address most developers think of as the smart account itself. Why it matters: if you derive the wrong account, you can point users at the wrong address for deposits or execution.
Fund the smart-account sub-account or vault address, not the Settings address. Sending funds to the wrong address is one of the easiest mistakes to make.

Signer Permissions

Signers carry a permission bitmask. The core permissions are:
  • Initiate
  • Vote
  • Execute
Why it matters: the program enforces capability, not just membership.
The program requires at least one signer that can initiate, one that can vote, and one that can execute. A valid signer set still fails if those capabilities are missing.

Threshold

Threshold is the number of voting signers required to approve governance actions. Why it matters: it defines the difference between a simple shared wallet and an actual multisig workflow.
Threshold must be greater than zero and cannot exceed the number of signers with vote permission.

settings_authority

settings_authority controls whether the smart account is autonomous or directly managed. Why it matters: this changes how configuration updates happen.
ModeMeaning
Pubkey::default() or null equivalentAutonomous. Config changes go through governance.
Explicit pubkeyControlled. That authority can change settings directly.
Use a controlled account when you want an operator or platform authority to manage config. Use autonomous mode when the account should govern itself.

Time Lock

Time lock is the delay between approval and execution. Why it matters: it determines whether a flow can settle immediately or must wait.
time_lock = 0 enables the synchronous path. Non-zero time lock pushes you into the proposal-based lifecycle.

Autonomous Vs Controlled

These are the two most important operating modes to understand before integrating.

Autonomous

The account governs itself through signers, threshold, and proposal flow. Why it matters: this is the cleanest model when no outside operator should be able to rewrite configuration.

Controlled

A separate authority can change settings directly. Why it matters: this is often the better fit for managed systems, custodial products, or rollout phases where governance is not fully decentralized yet.

The Invariants Worth Remembering

  • Funds belong in a smart-account sub-account, not the Settings account
  • Permissions matter as much as signer count
  • Threshold is counted against voters, not against every signer
  • Time lock changes the execution path, not just the speed
  • Policy design is part of account design, not an afterthought
Next: Policies and Execution