# Securitize Admin

> Markdown export of the Gearbox Protocol documentation page for agents and retrieval systems.

Canonical page: https://docs.gearbox.finance/developers/securitize-admin
Source file: content/developers/securitize-admin.mdx
Section router: https://docs.gearbox.finance/developers/llms.txt
Section full export: https://docs.gearbox.finance/developers/llms-full.txt

The Securitize Admin is the address configured as the owner of a
[`SecuritizeRWAFactory`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeRWAFactory.sol).
It can freeze Credit Accounts managed by that `SecuritizeRWAFactory` and
reassign investor control over them. Securitize determines when to use these
tools.

There is no separate freezer or Credit Account transfer role. The active
`SecuritizeRWAFactory.owner()` has both authorities.

## Credit Account control model

Each managed position links an investor, a `SecuritizeWallet`, and a Credit
Account. See [Securitize DS Token Registration](https://docs.gearbox.finance/developers/securitize-ds-token-registration)
for their ownership and control relationship and how both contract addresses
are registered under the investor.

Admin operations update state in the `SecuritizeRWAFactory`; they do not replace
the `SecuritizeWallet` or change the Credit Account's onchain owner.

## Freeze behavior

The admin can freeze or unfreeze:

- one Credit Account;
- all Credit Accounts assigned to an investor; or
- an investor's Credit Accounts under one Credit Manager.

While a Credit Account is frozen:

- the `SecuritizeRWAFactory` rejects the investor's Credit Account operations;
  and
- the configured RWA underlying rejects token movements to or from that Credit
  Account.


With the current default and on-demand RWA underlying implementations,
freezing also blocks liquidation of the Credit Account. Operators must account
for this effect before freezing a Credit Account.


Unfreezing restores these `SecuritizeRWAFactory` and RWA-underlying execution
paths. Other protocol, market, token, or registry restrictions may still
prevent an operation.

## Reassigning investor control

The admin can reassign:

- one Credit Account;
- all Credit Accounts assigned to an investor; or
- an investor's Credit Accounts under one Credit Manager.

After reassignment, the previous investor can no longer execute Credit Account
actions through the `SecuritizeRWAFactory`. The new investor becomes the
authorized caller. The Credit Account's collateral, debt, `SecuritizeWallet`
address, Credit Manager, and frozen status do not change.

Before reassignment, the new investor address is expected to be recognized in
all required Securitize registries under the same identity as the previous
investor. The `SecuritizeRWAFactory` does not verify this condition. It only
rejects the zero address; passing the currently assigned investor makes no
change.

## Function reference

All functions below can only be called by the active
`SecuritizeRWAFactory.owner()`.

| Function | Scope | Effect |
|---|---|---|
| `setCreditAccountFrozenStatus(creditAccount, frozen)` | One known Credit Account | Sets its frozen status. |
| `setAllCreditAccountsFrozenStatus(investor, frozen)` | All Credit Accounts assigned to an investor | Sets the same frozen status on each Credit Account. |
| `setAllCreditAccountsFrozenStatus(creditManager, investor, frozen)` | The investor's Credit Accounts under one Credit Manager | Sets the same frozen status on matching Credit Accounts. |
| `transferCreditAccount(creditAccount, newInvestor)` | One known Credit Account | Reassigns investor control to `newInvestor`. |
| `transferAllCreditAccounts(investor, newInvestor)` | All Credit Accounts assigned to an investor | Reassigns all of them to `newInvestor`. |
| `transferAllCreditAccounts(creditManager, investor, newInvestor)` | The investor's Credit Accounts under one Credit Manager | Reassigns matching Credit Accounts to `newInvestor`. |

Bulk functions iterate over the investor's recorded Credit Accounts in one
transaction. Operators should simulate bulk calls with the intended Credit
Account set before submitting them.

Successful changes emit `SetCreditAccountFrozenStatus` for each changed freeze
state or `TransferCreditAccount` for each reassigned Credit Account. Calling a
freeze function with the current status, or transferring to the currently
assigned investor, makes no state change and emits no event.

## Securitize Admin address

The `SecuritizeRWAFactory` constructor sets the supplied `securitizeAdmin`
address as its initial owner. The current authority can be read from `owner()`.
`SecuritizeRWAFactory` ownership can be moved to another Securitize address
using the inherited two-step ownership-transfer process: the current owner
proposes the new owner, and the new address accepts the role.

## Read methods

Operators can inspect the current state before building an admin transaction:

| Function | Returns |
|---|---|
| `isCreditAccount(creditAccount)` | Whether the Credit Account is managed by this `SecuritizeRWAFactory`. |
| `isFrozen(creditAccount)` | Whether a known Credit Account is frozen. |
| `getInvestor(creditAccount)` | The investor currently authorized to control a known Credit Account. |
| `getCreditAccounts(investor)` | All Credit Accounts currently assigned to an investor. |
| `getWallet(creditAccount)` | The `SecuritizeWallet` that owns a known Credit Account. |

## Sources

- [`SecuritizeRWAFactory.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeRWAFactory.sol)
- [`SecuritizeWallet.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeWallet.sol)
- [`IRWAFactory.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/interfaces/base/IRWAFactory.sol)
- [Default RWA Underlying](https://docs.gearbox.finance/developers/rwa-underlying)
