# DelegationWalletRegistry

The DelegationWalletRegistry contract keeps track of all the deployed Delegation Wallets and their associated components. It provides a way to retrieve information about a specific wallet, such as its address and the addresses of its components.&#x20;

## Key Functions:

```solidity
function setFactory(address _delegationWalletFactory) external
```

Sets the address of the DelegationWalletFactory contract.

### Parameters:

`_delegationWalletFactory` (address): The address of the DelegationWalletFactory contract.

***

```solidity
function setWallet(
    address _wallet, 
    address _owner, 
    address _guard, 
    address _guardOwner, 
    address _delegationOwner, 
    address _protocolOwner
) external
```

Registers a new Delegation Wallet and its components in the registry.

### Parameters:

`_wallet` (address): The address of the GnosisSafe contract.

`_owner` (address): The address of the wallet owner.

`_guard` (address): The address of the TransactionGuard contract.

`_guardOwner` (address): The address of the GuardOwner contract.

`_delegationOwner` (address): The address of the DelegationOwner contract.

`_protocolOwner` (address): The address of the ProtocolOwner contract.

***

```solidity
function getWallet(address _wallet) 
external 
view 
returns (IDelegationWalletRegistry.Wallet memory)
```

Retrieves the information of a specific Delegation Wallet.

### Parameters:

`_wallet` (address): The address of the GnosisSafe contract.

### Returns:

The Wallet struct containing the addresses of the wallet components.

***

```solidity
function getOwnerWalletAddresses(
    address _owner
) external view returns (address[] memory);
```

Returns the entire set of wallet addresses for a given owner.

### Parameters:

`_owner` (address): The address of the wallet owner.&#x20;

### Returns:

An array of wallet addresses owned by the specified owner.

***

```solidity
function getOwnerWalletAt(
    address _owner, 
    uint256 _index
) 
external 
view 
returns (IDelegationWalletRegistry.Wallet memory);
```

Returns the wallet information at a specific index for a given owner.

### Parameters:

`_owner` (address): The address of the wallet owner.

`_index` (uint256): The index of the wallet in the owner's wallet set. &#x20;

### Returns:

The Wallet struct containing the addresses of the wallet components.

***

## Interactions:

* Receives wallet information from the DelegationWalletFactory during the deployment process.
* Provides functions for retrieving wallet information and component addresses.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://devs.unlockd.finance/unlockd-account-wallet/delegationwalletregistry.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
