Help

Executing on a linked account

When the primary account can execute on a linked account, its own proposal can include actions built in the linked account's UI. Voters can inspect what the linked account will execute before the primary account submits the execution request.

Both accounts must be on the same network for this nested execution. Cross-chain execution uses a separately configured route between networks.

Linking accounts establishes a display relationship; authority comes from the Execute grant. When the primary account calls the linked account's execute function, that function checks the primary account's Execute permission, including any conditions. The linked account then makes the inner calls as itself, so the action targets see the linked account as the caller and apply their own authorization rules to it. These calls can target other accounts or contracts, independently of which accounts the app presents as linked.

An authorized EOA or Safe can also use the direct transaction flow with its own signing arrangement.

The flow

The primary's action builder receives transaction requests from the linked account's Aragon view over WalletConnect. Keep the primary's WalletConnect dialog open while using the linked-account view, until the request has been added. An already-open linked-account view still needs this WalletConnect pairing.

For example, use another browser for the linked account to keep the two views separate:

  1. In the primary account's proposal Action builder, select Connect. If the process's allowed-actions filter hides it, turn the filter off to expose WalletConnect; the process must still permit the intended call.
  2. Open the linked account in the other browser and choose Connect wallet → WalletConnect. Copy the URI from its QR-code flow into the primary's dialog and select Connect dApp.
  3. Confirm that the primary account is the connected actor in the linked-account view, on the linked account's network.
  4. Open the linked account's Transactions page. When the primary passes the direct-execution eligibility check, Execution opens its action builder.
  5. Build the inner actions, select Execute, and send the prepared transaction from the execution dialog. WalletConnect queues the call to the linked account in the primary's dialog.
  6. Return to the primary, add the received action to its action list, and finish creating the proposal. This submits the nested call for governance approval.
  7. When that proposal is executed, the primary calls the linked account, which executes the inner actions, such as returning funds to the primary.

Reading nested actions

Because one account is telling another to execute, the calldata contains an inner action array. The Execute action's Basic details show that array and check its decoded children against the encoded calls. A mismatch makes the whole inner array fall back to Raw. Individual specialized views also depend on the app resolving the target's supporting data; the action catalogue explains the available representations.

Last updated on

On this page