# Securitize DS Token Registration

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

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

The [`SecuritizeRWAFactory`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeRWAFactory.sol)
is the authorization registry for Securitize-enabled Credit Accounts. It
records who may operate each Credit Account and the
[`SecuritizeWallet`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeWallet.sol)
through which calls are executed.

The integration uses three different addresses for one investor position:

| Address | What it is |
|---|---|
| Investor | The external address recognized by Securitize. It signs registration authorizations and submits actions to the `SecuritizeRWAFactory`. |
| `SecuritizeWallet` | A contract deployed for one position. Gearbox records it as the Credit Account's owner, or borrower. |
| [`CreditAccount`](https://github.com/Gearbox-protocol/core-v3/blob/510fc6541c3767ce825929b4c311826fe81d6fa5/contracts/credit/CreditAccountV3.sol) | A separate Gearbox contract that holds the position's collateral and debt. |

## SecuritizeRWAFactory — authorization registry

For each Credit Account, the `SecuritizeRWAFactory` records its
`SecuritizeWallet`, authorized investor, and frozen status. Before forwarding a
multicall, it checks that the caller is that investor and the Credit Account is
not frozen.

This is operational authorization, not Gearbox ownership. The Credit Manager
records the `SecuritizeWallet` as the Credit Account's borrower.

Freezing Credit Accounts and reassigning investor control are covered
separately in [Securitize Admin](https://docs.gearbox.finance/developers/securitize-admin).

### When DS token eligibility is checked

DS token eligibility is checked when the contracts are registered for a
specific DS token. The
[`SecuritizeDegenNFT`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeDegenNFT.sol)
first checks through that token's
[`VaultRegistrar`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/interfaces/external/securitize/IVaultRegistrar.sol)
that the investor is registered. Because the `SecuritizeDegenNFT` has the
registrar's operator role, it can then register the `CreditAccount` and
`SecuritizeWallet` contract addresses as vaults belonging to that investor.

## Changes to investor eligibility

Gearbox does not automatically remove DS token registrations, freeze
`CreditAccount` contracts, or reassign them when an investor's Securitize
eligibility changes. The `SecuritizeRWAFactory` continues to recognize the
recorded investor until a Securitize operator freezes or reassigns the
`CreditAccount`. The DS token continues to apply its current registry rules to
transfers.

## Sources

- [`SecuritizeRWAFactory.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeRWAFactory.sol)
- [`SecuritizeDegenNFT.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeDegenNFT.sol)
- [`SecuritizeWallet.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/rwa/SecuritizeWallet.sol)
- [`IVaultRegistrar.sol`](https://github.com/Gearbox-protocol/periphery-v3/blob/2a63cf27b458c9c3b7824086da32f9dd6ee73613/contracts/interfaces/external/securitize/IVaultRegistrar.sol)
