> For the complete documentation index, see [llms.txt](https://docs.cryptolegacy.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cryptolegacy.app/documentation/data-structures-reference.md).

# Contracts Data Structures

## Table of Contents

1. [BeneficiaryRegistry (BR1)](#beneficiaryregistry-br1)
   * [cryptoLegacyByBeneficiary (BR1-D1)](#cryptolegacybybeneficiary-br1-d1)
   * [cryptoLegacyByOwner (BR1-D2)](#cryptolegacybyowner-br1-d2)
   * [cryptoLegacyByGuardian (BR1-D3)](#cryptolegacybyguardian-br1-d3)
   * [cryptoLegacyByRecovery (BR1-D4)](#cryptolegacybyrecovery-br1-d4)
   * [blockNumberChangesByCryptoLegacy (BR1-D5)](#blocknumberchangesbycryptolegacy-br1-d5)
2. [BuildManagerOwnable (BMO1)](#buildmanagerownable-bmo1)
   * [buildManagerAdded (BMO1-D1)](#buildmanageradded-bmo1-d1)
3. [Create3Factory (C3F1)](#create3factory-c3f1)
4. [CryptoLegacy (CL1)](#cryptolegacy-cl1)
5. [CryptoLegacyBuildManager (CLBM1)](#cryptolegacybuildmanager-clbm1)
   * [feeRegistry (CLBM1-D1)](#feeregistry-clbm1-d1)
   * [pluginsRegistry (CLBM1-D2)](#pluginsregistry-clbm1-d2)
   * [beneficiaryRegistry (CLBM1-D3)](#beneficiaryregistry-clbm1-d3)
   * [lifetimeNft (CLBM1-D4)](#lifetimenft-clbm1-d4)
   * [factory (CLBM1-D5)](#factory-clbm1-d5)
   * [externalLens (CLBM1-D6)](#externallens-clbm1-d6)
   * [minMassMintSupply (CLBM1-D7)](#minmassmintsupply-clbm1-d7)
   * [REGISTRY\_BUILD\_CASE (CLBM1-D8)](#registry_build_case-clbm1-d8)
   * [REGISTRY\_UPDATE\_CASE (CLBM1-D9)](#registry_update_case-clbm1-d9)
   * [REGISTRY\_LIFETIME\_CASE (CLBM1-D10)](#registry_lifetime_case-clbm1-d10)
   * [cryptoLegacyBuilt (CLBM1-D11)](#cryptolegacybuilt-clbm1-d11)
6. [CryptoLegacyDiamondBase (CLDB1)](#cryptolegacydiamondbase-cldb1)
7. [CryptoLegacyExternalLens (CLEXL1)](#cryptolegacyexternallens-clexl1)
8. [CryptoLegacyFactory (CLF1)](#cryptolegacyfactory-clf1)
   * [buildOperators (CLF1-D1)](#buildoperators-clf1-d1)
9. [CryptoLegacyOwnable (CLO1)](#cryptolegacyownable-clo1)
10. [FeeRegistry (FR1)](#feeregistry-fr1)

* [PCT\_BASE (FR1-D1)](#pct_base-fr1-d1)
* [FR\_STORAGE\_POSITION (FR1-D2)](#fr_storage_position-fr1-d2)

11. [LegacyMessenger (LM1)](#legacymessenger-lm1)

* [messagesGotByBlockNumber (LM1-D1)](#messagesgotbyblocknumber-lm1-d1)

12. [LifetimeNft (LN1)](#lifetimenft-ln1)

* [baseURI (LN1-D1)](#baseuri-ln1-d1)
* [minterOperator (LN1-D2)](#minteroperator-ln1-d2)

13. [LockChainGate (LCG1)](#lockchaingate-lcg1)

* [LCG\_STORAGE\_POSITION (LCG1-D1)](#lcg_storage_position-lcg1-d1)

14. [MultiPermit (MP1)](#multipermit-mp1)

* [PermitData (MP1-S1)](#permitdata-mp1-s1)

15. [PluginsRegistry (PR1)](#pluginsregistry-pr1)

* [pluginsList (PR1-D1)](#pluginslist-pr1-d1)
* [pluginDescriptionBlockNumbers (PR1-D2)](#plugindescriptionblocknumbers-pr1-d2)

16. [ProxyBuilder (PB1)](#proxybuilder-pb1)

* [proxyAdmin (PB1-D1)](#proxyadmin-pb1-d1)

17. [ProxyBuilderAdmin (PBA1)](#proxybuilderadmin-pba1)
18. [SignatureRoleTimelock (SRT1)](#signatureroletimelock-srt1)

* [ADMIN\_ROLE (SRT1-D1)](#admin_role-srt1-d1)
* [MAX\_TIMELOCK\_DURATION (SRT1-D2)](#max_timelock_duration-srt1-d2)
* [MAX\_EXECUTION\_PERIOD\_LOWER\_BOUND (SRT1-D3)](#max_execution_period_lower_bound-srt1-d3)
* [MAX\_EXECUTION\_PERIOD\_UPPER\_BOUND (SRT1-D4)](#max_execution_period_upper_bound-srt1-d4)
* [maxExecutionPeriod (SRT1-D5)](#maxexecutionperiod-srt1-d5)
* [roleAccounts (SRT1-D6)](#roleaccounts-srt1-d6)
* [signatureRoles (SRT1-D7)](#signatureroles-srt1-d7)
* [targetSigs (SRT1-D8)](#targetsigs-srt1-d8)
* [targets (SRT1-D9)](#targets-srt1-d9)
* [pendingCalls (SRT1-D10)](#pendingcalls-srt1-d10)
* [callsIds (SRT1-D11)](#callsids-srt1-d11)

19. [ArbSys (AS1)](#arbsys-as1)
20. [Flags (FLG1)](#flags-flg1)

* [UNWRAP\_ETH (FLG1-D1)](#unwrap_eth-flg1-d1)
* [REVERT\_IF\_EXTERNAL\_FAIL (FLG1-D2)](#revert_if_external_fail-flg1-d2)
* [PROXY\_WITH\_SENDER (FLG1-D3)](#proxy_with_sender-flg1-d3)
* [SEND\_HASHED\_DATA (FLG1-D4)](#send_hashed_data-flg1-d4)
* [SEND\_EXTERNAL\_CALL\_GAS\_LIMIT (FLG1-D5)](#send_external_call_gas_limit-flg1-d5)
* [MULTI\_SEND (FLG1-D6)](#multi_send-flg1-d6)

21. [IAaveV3Pool (IAV3P1)](#iaavev3pool-iav3p1)
22. [IAaveV3PoolDataProvider (IAV3PDP1)](#iaavev3pooldataprovider-iav3pdp1)
23. [WethUnwrap (WU1)](#wethunwrap-wu1)

* [WETH (WU1-D1)](#weth-wu1-d1)

24. [IBeneficiaryRegistry (IBR1)](#ibeneficiaryregistry-ibr1)

* [EntityType (IBR1-E1)](#entitytype-ibr1-e1)

25. [IBuildManagerOwnable (IBMO1)](#ibuildmanagerownable-ibmo1)
26. [ICallProxy (ICP1)](#icallproxy-icp1)
27. [ICryptoLegacy (ICL1)](#icryptolegacy-icl1)

* [BeneficiaryConfig (ICL1-S1)](#beneficiaryconfig-icl1-s1)
* [BeneficiaryVesting (ICL1-S2)](#beneficiaryvesting-icl1-s2)
* [TokenDistribution (ICL1-S3)](#tokendistribution-icl1-s3)
* [CryptoLegacyStorage (ICL1-S4)](#cryptolegacystorage-icl1-s4)
* [TokenTransferTo (ICL1-S5)](#tokentransferto-icl1-s5)

28. [ICryptoLegacyBuildManager (ICLBM1)](#icryptolegacybuildmanager-iclbm1)

* [BuildArgs (ICLBM1-S1)](#buildargs-iclbm1-s1)
* [RefArgs (ICLBM1-S2)](#refargs-iclbm1-s2)
* [LifetimeNftMint (ICLBM1-S3)](#lifetimenftmint-iclbm1-s3)

29. [ICryptoLegacyDiamondBase (ICLDB1)](#icryptolegacydiamondbase-icldb1)
30. [ICryptoLegacyFactory (ICLF1)](#icryptolegacyfactory-iclf1)

* [Create2Args (ICLF1-S1)](#create2args-iclf1-s1)

31. [ICryptoLegacyLens (ICLL1)](#icryptolegacylens-icll1)

* [BeneficiaryTokenData (ICLL1-S1)](#beneficiarytokendata-icll1-s1)
* [PluginInfo (ICLL1-S2)](#plugininfo-icll1-s2)
* [CryptoLegacyBaseData (ICLL1-S3)](#cryptolegacybasedata-icll1-s3)
* [LensTokenDistribution (ICLL1-S4)](#lenstokendistribution-icll1-s4)
* [CryptoLegacyListData (ICLL1-S5)](#cryptolegacylistdata-icll1-s5)

32. [ICryptoLegacyOwnable (ICLO1)](#icryptolegacyownable-iclo1)
33. [ICryptoLegacyPlugin (ICLP1)](#icryptolegacyplugin-iclp1)
34. [ICryptoLegacyUpdaterPlugin (ICLUP1)](#icryptolegacyupdaterplugin-iclup1)
35. [IDeBridgeGate (IDBG1)](#idebridgegate-idbg1)

* [TokenInfo (IDBG1-S1)](#tokeninfo-idbg1-s1)
* [DebridgeInfo (IDBG1-S2)](#debridgeinfo-idbg1-s2)
* [DebridgeFeeInfo (IDBG1-S3)](#debridgefeeinfo-idbg1-s3)
* [ChainSupportInfo (IDBG1-S4)](#chainsupportinfo-idbg1-s4)
* [DiscountInfo (IDBG1-S5)](#discountinfo-idbg1-s5)
* [SubmissionAutoParamsTo (IDBG1-S6)](#submissionautoparamsto-idbg1-s6)
* [SubmissionAutoParamsFrom (IDBG1-S7)](#submissionautoparamsfrom-idbg1-s7)
* [FeeParams (IDBG1-S8)](#feeparams-idbg1-s8)

36. [IDiamondCut (IDC1)](#idiamondcut-idc1)

* [FacetCutAction (IDC1-E1)](#facetcutaction-idc1-e1)
* [FacetCut (IDC1-S1)](#facetcut-idc1-s1)

37. [IDiamondLoupe (IDL1)](#idiamondloupe-idl1)

* [Facet (IDL1-S1)](#facet-idl1-s1)

38. [IFeeRegistry (IFR1)](#ifeeregistry-ifr1)

* [FRStorage (IFR1-S1)](#frstorage-ifr1-s1)
* [Referrer (IFR1-S2)](#referrer-ifr1-s2)
* [FeeBeneficiary (IFR1-S3)](#feebeneficiary-ifr1-s3)

39. [ILockChainGate (ILCG1)](#ilockchaingate-ilcg1)

* [LCGStorage (ILCG1-S1)](#lcgstorage-ilcg1-s1)
* [LockedNft (ILCG1-S2)](#lockednft-ilcg1-s2)

40. [ILegacyMessenger (ILM1)](#ilegacymessenger-ilm1)
41. [ILido (ILD1)](#ilido-ild1)
42. [ILidoWithdrawalQueue (ILWQ1)](#ilidowithdrawalqueue-ilwq1)
43. [ILifetimeNft (ILN1)](#ilifetimenft-iln1)

* [Tier (ILN1-E1)](#tier-iln1-e1)

44. [IPermit2 (IPM21)](#ipermit2-ipm21)
45. [IPluginsRegistry (IPR1)](#ipluginsregistry-ipr1)

* [PluginInfo (IPR1-S1)](#plugininfo-ipr1-s1)

46. [ISafeMinimalMultisig (ISM1)](#isafeminimalmultisig-ism1)

* [Storage (ISM1-S1)](#storage-ism1-s1)
* [ProposalStatus (ISM1-E1)](#proposalstatus-ism1-e1)
* [Proposal (ISM1-S2)](#proposal-ism1-s2)
* [ProposalWithStatus (ISM1-S3)](#proposalwithstatus-ism1-s3)
* [InitializationStatus (ISM1-E2)](#initializationstatus-ism1-e2)

47. [ISignatureRoleTimelock (ISRT1)](#isignatureroletimelock-isrt1)

* [CallRequest (ISRT1-S1)](#callrequest-isrt1-s1)
* [AddressRoleInput (ISRT1-S2)](#addressroleinput-isrt1-s2)
* [SignatureAttr (ISRT1-S3)](#signatureattr-isrt1-s3)
* [SignatureToAdd (ISRT1-S4)](#signaturetoadd-isrt1-s4)
* [SignatureToRemove (ISRT1-S5)](#signaturetoremove-isrt1-s5)
* [CallToAdd (ISRT1-S6)](#calltoadd-isrt1-s6)
* [TargetSigRes (ISRT1-S7)](#targetsigres-isrt1-s7)

48. [IStataToken (ISTA1)](#istatatoken-ista1)
49. [IStataTokenFactory (ISTF1)](#istatatokenfactory-istf1)
50. [ITrustedGuardiansPlugin (ITGP1)](#itrustedguardiansplugin-itgp1)

* [PluginStorage (ITGP1-S1)](#pluginstorage-itgp1-s1)
* [GuardianToChange (ITGP1-S2)](#guardiantochange-itgp1-s2)

51. [DiamondLoupeFacet (DLF1)](#diamondloupefacet-dlf1)
52. [IUniversalRouter (IUR1)](#iuniversalrouter-iur1)
53. [IWETH (IWETH1)](#iweth-iweth1)
54. [IWstETH (IWSTETH1)](#iwsteth-iwsteth1)
55. [WethUnwrapIWETH (WUI1)](#wethunwrapiweth-wui1)
56. [LibCLUtils (LCLU1)](#libclutils-lclu1)
57. [LibClaimMigrationCore (LCMC1)](#libclaimmigrationcore-lcmc1)

* [MIGRATION\_SCALE (LCMC1-D1)](#migration_scale-lcmc1-d1)

58. [LibOneStepClaimMigration (LOSCM1)](#libonestepclaimmigration-loscm1)
59. [LibTwoStepClaimMigration (LTSCM1)](#libtwostepclaimmigration-ltscm1)

* [CLAIM\_LOCK\_AMOUNT (LTSCM1-D1)](#claim_lock_amount-ltscm1-d1)
* [CachedClaims (LTSCM1-S1)](#cachedclaims-ltscm1-s1)
* [PendingMigration (LTSCM1-S2)](#pendingmigration-ltscm1-s2)
* [PendingMigrationStorage (LTSCM1-S3)](#pendingmigrationstorage-ltscm1-s3)

60. [LibCreate3 (LC31)](#libcreate3-lc31)

* [PROXY\_CHILD\_BYTECODE (LC31-D1)](#proxy_child_bytecode-lc31-d1)
* [KECCAK256\_PROXY\_CHILD\_BYTECODE (LC31-D2)](#keccak256_proxy_child_bytecode-lc31-d2)

61. [LibCryptoLegacy (LCL1)](#libcryptolegacy-lcl1)

* [SHARE\_BASE (LCL1-D1)](#share_base-lcl1-d1)
* [MAX\_CHAINS\_ARRAY\_LENGTH (LCL1-D2)](#max_chains_array_length-lcl1-d2)
* [BENEFICIARY\_SWITCH\_TIMELOCK\_DURATION (LCL1-D3)](#beneficiary_switch_timelock_duration-lcl1-d3)
* [CLAIM\_FUNC\_FLAG (LCL1-D4)](#claim_func_flag-lcl1-d4)
* [MAX\_GAS\_MULTIPLIER (LCL1-D5)](#max_gas_multiplier-lcl1-d5)
* [CRYPTO\_LEGACY\_STORAGE\_POSITION (LCL1-D6)](#crypto_legacy_storage_position-lcl1-d6)
* [transferValueSelector (LCL1-D7)](#transfervalueselector-lcl1-d7)
* [lockNftSelector (LCL1-D8)](#locknftselector-lcl1-d8)

62. [LibCryptoLegacyDeploy (LCLD1)](#libcryptolegacydeploy-lcld1)
63. [LibCryptoLegacyPlugins (LCLP1)](#libcryptolegacyplugins-lclp1)
64. [LibDiamond (LD1)](#libdiamond-ld1)

* [DIAMOND\_STORAGE\_POSITION (LD1-D1)](#diamond_storage_position-ld1-d1)
* [FacetAddressAndPosition (LD1-S1)](#facetaddressandposition-ld1-s1)
* [FacetFunctionSelectors (LD1-S2)](#facetfunctionselectors-ld1-s2)
* [DiamondStorage (LD1-S3)](#diamondstorage-ld1-s3)

65. [LibSafeMinimalBeneficiaryMultisig (LSMB1)](#libsafeminimalbeneficiarymultisig-lsmb1)
66. [LibSafeMinimalMultisig (LSM1)](#libsafeminimalmultisig-lsm1)
67. [LibTrustedGuardiansPlugin (LTGP1)](#libtrustedguardiansplugin-ltgp1)

* [PLUGIN\_POSITION (LTGP1-D1)](#plugin_position-ltgp1-d1)

68. [BeneficiaryAaveV3SupplyPlugin (BALP1)](#beneficiaryaavev3supplyplugin-balp1)

* [PLUGIN\_MULTISIG\_POSITION (BALP1-D1)](#plugin_multisig_position-balp1-d1)
* [POOL (BALP1-D2)](#pool-balp1-d2)
* [POOL\_DATA\_PROVIDER (BALP1-D3)](#pool_data_provider-balp1-d3)
* [STATA\_TOKEN\_FACTORY (BALP1-D4)](#stata_token_factory-balp1-d4)
* [DEFAULT\_REFERRAL\_CODE (BALP1-D5)](#default_referral_code-balp1-d5)

69. [BeneficiaryLidoStakingPlugin (BLSP1)](#beneficiarylidostakingplugin-blsp1)

* [LidoWithdrawalStorage (BLSP1-S1)](#lidowithdrawalstorage-blsp1-s1)
* [BeneficiarySwitchGuardStorage (BLSP1-S2)](#beneficiaryswitchguardstorage-blsp1-s2)
* [PLUGIN\_MULTISIG\_POSITION (BLSP1-D1)](#plugin_multisig_position-blsp1-d1)
* [PLUGIN\_PENDING\_MIGRATION\_POSITION (BLSP1-D2)](#plugin_pending_migration_position-blsp1-d2)
* [PLUGIN\_LIDO\_WITHDRAWAL\_POSITION (BLSP1-D3)](#plugin_lido_withdrawal_position-blsp1-d3)
* [PLUGIN\_BENEFICIARY\_SWITCH\_GUARD\_POSITION (BLSP1-D4)](#plugin_beneficiary_switch_guard_position-blsp1-d4)
* [WETH (BLSP1-D5)](#weth-blsp1-d5)
* [stETH (BLSP1-D6)](#steth-blsp1-d6)
* [wstETH (BLSP1-D7)](#wsteth-blsp1-d7)
* [LIDO\_WITHDRAWAL\_QUEUE (BLSP1-D8)](#lido_withdrawal_queue-blsp1-d8)
* [WETH\_UNWRAP (BLSP1-D9)](#weth_unwrap-blsp1-d9)
* [LIDO\_REFERRAL (BLSP1-D10)](#lido_referral-blsp1-d10)

70. [BeneficiaryPluginAddRights (BPAR1)](#beneficiarypluginaddrights-bpar1)

* [PLUGIN\_MULTISIG\_POSITION (BPAR1-D1)](#plugin_multisig_position-bpar1-d1)

71. [BeneficiaryUniswapV4SwapPlugin (BU4SP1)](#beneficiaryuniswapv4swapplugin-bu4sp1)

* [PoolKey (BU4SP1-S1)](#poolkey-bu4sp1-s1)
* [PathKey (BU4SP1-S2)](#pathkey-bu4sp1-s2)
* [ExactInputSingleParams (BU4SP1-S3)](#exactinputsingleparams-bu4sp1-s3)
* [ExactInputParams (BU4SP1-S4)](#exactinputparams-bu4sp1-s4)
* [PLUGIN\_MULTISIG\_POSITION (BU4SP1-D1)](#plugin_multisig_position-bu4sp1-d1)
* [V4\_SWAP (BU4SP1-D2)](#v4_swap-bu4sp1-d2)
* [SWAP\_EXACT\_IN\_SINGLE (BU4SP1-D3)](#swap_exact_in_single-bu4sp1-d3)
* [SWAP\_EXACT\_IN (BU4SP1-D4)](#swap_exact_in-bu4sp1-d4)
* [SETTLE\_ALL (BU4SP1-D5)](#settle_all-bu4sp1-d5)
* [TAKE\_ALL (BU4SP1-D6)](#take_all-bu4sp1-d6)
* [UNIVERSAL\_ROUTER (BU4SP1-D7)](#universal_router-bu4sp1-d7)
* [PERMIT2 (BU4SP1-D8)](#permit2-bu4sp1-d8)

72. [CryptoLegacyBasePlugin (CLBP1)](#cryptolegacybaseplugin-clbp1)
73. [LegacyRecoveryPlugin (LRP1)](#legacyrecoveryplugin-lrp1)

* [PLUGIN\_MULTISIG\_POSITION (LRP1-D1)](#plugin_multisig_position-lrp1-d1)

74. [LensPlugin (LP1)](#lensplugin-lp1)
75. [NftLegacyPlugin (NLP1)](#nftlegacyplugin-nlp1)

* [PLUGIN\_POSITION (NLP1-D1)](#plugin_position-nlp1-d1)
* [NftBeneficiary (NLP1-S1)](#nftbeneficiary-nlp1-s1)
* [PluginStorage (NLP1-S2)](#pluginstorage-nlp1-s2)

76. [ReceiveEthPlugin (REP1)](#receiveethplugin-rep1)

* [WETH (REP1-D1)](#weth-rep1-d1)

77. [TrustedGuardiansPlugin (TGP1)](#trustedguardiansplugin-tgp1)

* [DEFAULT\_GUARDIANS\_CHALLENGE\_TIMEOUT (TGP1-D1)](#default_guardians_challenge_timeout-tgp1-d1)
* [MAX\_GUARDIANS\_CHALLENGE\_TIMEOUT (TGP1-D2)](#max_guardians_challenge_timeout-tgp1-d2)

78. [UpdateRolePlugin (URP1)](#updateroleplugin-urp1)

* [PLUGIN\_POSITION (URP1-D1)](#plugin_position-urp1-d1)
* [PluginStorage (URP1-S1)](#pluginstorage-urp1-s1)

79. [Data Types Used](#data-types-used)

## BeneficiaryRegistry (BR1)

### cryptoLegacyByBeneficiary (BR1-D1)

**Data Type:** `mapping(bytes32 => EnumerableSet.AddressSet)` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Maps a beneficiary hash to the set of CryptoLegacy contract addresses associated with that beneficiary.

**Modified by:**

* [BeneficiaryRegistry.setCryptoLegacyBeneficiary()](https://docs.cryptolegacy.app/documentation/functions-reference#setcryptolegacybeneficiary-br1)

**Read by:**

* [BeneficiaryRegistry.getCryptoLegacyListByBeneficiary()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistbybeneficiary-br1)
* [BeneficiaryRegistry.getAllCryptoLegacyListByRoles()](https://docs.cryptolegacy.app/documentation/functions-reference#getallcryptolegacylistbyroles-br1)

### cryptoLegacyByOwner (BR1-D2)

**Data Type:** `mapping(bytes32 => EnumerableSet.AddressSet)` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Maps an owner hash to the set of CryptoLegacy contract addresses associated with that owner.

**Modified by:**

* [BeneficiaryRegistry.setCryptoLegacyOwner()](https://docs.cryptolegacy.app/documentation/functions-reference#setcryptolegacyowner-br1)

**Read by:**

* [BeneficiaryRegistry.getCryptoLegacyListByOwner()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistbyowner-br1)
* [BeneficiaryRegistry.getAllCryptoLegacyListByRoles()](https://docs.cryptolegacy.app/documentation/functions-reference#getallcryptolegacylistbyroles-br1)

### cryptoLegacyByGuardian (BR1-D3)

**Data Type:** `mapping(bytes32 => EnumerableSet.AddressSet)` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Maps a guardian hash to the set of CryptoLegacy contract addresses associated with that guardian.

**Modified by:**

* [BeneficiaryRegistry.setCryptoLegacyGuardian()](https://docs.cryptolegacy.app/documentation/functions-reference#setcryptolegacyguardian-br1)

**Read by:**

* [BeneficiaryRegistry.getCryptoLegacyListByGuardian()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistbyguardian-br1)
* [BeneficiaryRegistry.getAllCryptoLegacyListByRoles()](https://docs.cryptolegacy.app/documentation/functions-reference#getallcryptolegacylistbyroles-br1)

### cryptoLegacyByRecovery (BR1-D4)

**Data Type:** `mapping(bytes32 => EnumerableSet.AddressSet)` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Maps a recovery hash to the set of CryptoLegacy contract addresses associated with that recovery address.

**Modified by:**

* [BeneficiaryRegistry.setCryptoLegacyRecoveryAddresses()](https://docs.cryptolegacy.app/documentation/functions-reference#setcryptolegacyrecoveryaddresses-br1)

**Read by:**

* [BeneficiaryRegistry.getCryptoLegacyListByRecovery()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistbyrecovery-br1)
* [BeneficiaryRegistry.getAllCryptoLegacyListByRoles()](https://docs.cryptolegacy.app/documentation/functions-reference#getallcryptolegacylistbyroles-br1)

### blockNumberChangesByCryptoLegacy (BR1-D5)

**Data Type:** `mapping(address => uint256[])` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Stores block numbers when a given CryptoLegacy contract updates registry entries.

**Modified by:**

* [BeneficiaryRegistry.\_setBlockNumberChange()](https://docs.cryptolegacy.app/documentation/functions-reference#_setblocknumberchange-br1)

**Read by:**

* [BeneficiaryRegistry.\_setBlockNumberChange()](https://docs.cryptolegacy.app/documentation/functions-reference#_setblocknumberchange-br1)
* [BeneficiaryRegistry.getCryptoLegacyBlockNumberChanges()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacyblocknumberchanges-br1)

## BuildManagerOwnable (BMO1)

### buildManagerAdded (BMO1-D1)

**Data Type:** `EnumerableSet.AddressSet` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Set of build manager addresses that are authorized to register CryptoLegacy contracts.

**Modified by:**

* [BuildManagerOwnable.setBuildManager()](https://docs.cryptolegacy.app/documentation/functions-reference#setbuildmanager-bmo1)

**Read by:**

* [BuildManagerOwnable.\_checkBuildManagerValid()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkbuildmanagervalid-bmo1)
* [BuildManagerOwnable.getBuildManagerAdded()](https://docs.cryptolegacy.app/documentation/functions-reference#getbuildmanageradded-bmo1)

## Create3Factory (C3F1)

**No tracked data items in this contract/library.**

## CryptoLegacy (CL1)

**No tracked data items in this contract/library.**

## CryptoLegacyBuildManager (CLBM1)

### feeRegistry (CLBM1-D1)

**Data Type:** `IFeeRegistry` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Fee registry contract used to calculate and collect build and update fees.

**Modified by:**

* [CryptoLegacyBuildManager.\_setRegistries()](https://docs.cryptolegacy.app/documentation/functions-reference#_setregistries-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.\_payFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_payfee-clbm1)
* [CryptoLegacyBuildManager.\_getAndPayBuildFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_getandpaybuildfee-clbm1)
* [CryptoLegacyBuildManager.\_mintAndLockLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#_mintandlocklifetimenft-clbm1)
* [CryptoLegacyBuildManager.payForMultipleLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#payformultiplelifetimenft-clbm1)
* [CryptoLegacyBuildManager.\_createCustomRef()](https://docs.cryptolegacy.app/documentation/functions-reference#_createcustomref-clbm1)
* [CryptoLegacyBuildManager.\_createRef()](https://docs.cryptolegacy.app/documentation/functions-reference#_createref-clbm1)
* [CryptoLegacyBuildManager.updateCrossChainsRef()](https://docs.cryptolegacy.app/documentation/functions-reference#updatecrosschainsref-clbm1)
* [CryptoLegacyBuildManager.getUpdateFee()](https://docs.cryptolegacy.app/documentation/functions-reference#getupdatefee-clbm1)
* [CryptoLegacyBuildManager.calculateCrossChainCreateRefFee()](https://docs.cryptolegacy.app/documentation/functions-reference#calculatecrosschaincreatereffee-clbm1)
* [CryptoLegacyBuildManager.isLifetimeNftLocked()](https://docs.cryptolegacy.app/documentation/functions-reference#islifetimenftlocked-clbm1)
* [CryptoLegacyBuildManager.isLifetimeNftLockedAndUpdate()](https://docs.cryptolegacy.app/documentation/functions-reference#islifetimenftlockedandupdate-clbm1)

### pluginsRegistry (CLBM1-D2)

**Data Type:** `IPluginsRegistry` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Plugins registry contract used to validate plugin addresses.

**Modified by:**

* [CryptoLegacyBuildManager.\_setRegistries()](https://docs.cryptolegacy.app/documentation/functions-reference#_setregistries-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.isPluginRegistered()](https://docs.cryptolegacy.app/documentation/functions-reference#ispluginregistered-clbm1)
* [ICryptoLegacyBuildManager.pluginsRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#pluginsregistry-iclbm1)

### beneficiaryRegistry (CLBM1-D3)

**Data Type:** `IBeneficiaryRegistry` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Beneficiary registry contract used to register owner, beneficiary, guardian, and recovery hashes.

**Modified by:**

* [CryptoLegacyBuildManager.\_setRegistries()](https://docs.cryptolegacy.app/documentation/functions-reference#_setregistries-clbm1)

**Read by:**

* [ICryptoLegacyBuildManager.beneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryregistry-iclbm1)

### lifetimeNft (CLBM1-D4)

**Data Type:** `ILifetimeNft` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Lifetime NFT contract used for lifetime fee status and minting.

**Modified by:**

* [CryptoLegacyBuildManager.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.\_mintAndLockLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#_mintandlocklifetimenft-clbm1)
* [CryptoLegacyBuildManager.payForMultipleLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#payformultiplelifetimenft-clbm1)
* [CryptoLegacyBuildManager.transferStuckNft()](https://docs.cryptolegacy.app/documentation/functions-reference#transferstucknft-clbm1)
* [CryptoLegacyBuildManager.onERC721Received()](https://docs.cryptolegacy.app/documentation/functions-reference#onerc721received-clbm1)

### factory (CLBM1-D5)

**Data Type:** `ICryptoLegacyFactory` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Factory contract used to deploy new CryptoLegacy instances.

**Modified by:**

* [CryptoLegacyBuildManager.\_setFactory()](https://docs.cryptolegacy.app/documentation/functions-reference#_setfactory-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.buildCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#buildcryptolegacy-clbm1)
* [CryptoLegacyBuildManager.getFactoryAddress()](https://docs.cryptolegacy.app/documentation/functions-reference#getfactoryaddress-clbm1)

### externalLens (CLBM1-D6)

**Data Type:** `address` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Optional external lens contract address for off-chain data access.

**Modified by:**

* [CryptoLegacyBuildManager.setExternalLens()](https://docs.cryptolegacy.app/documentation/functions-reference#setexternallens-clbm1)

**Read by:**

* [CryptoLegacy.externalLens()](https://docs.cryptolegacy.app/documentation/functions-reference#externallens-cl1)
* [ICryptoLegacyBuildManager.externalLens()](https://docs.cryptolegacy.app/documentation/functions-reference#externallens-iclbm1)

### minMassMintSupply (CLBM1-D7)

**Data Type:** `uint256` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Minimum Lifetime NFT total supply required to allow mass minting.

**Modified by:**

* [CryptoLegacyBuildManager.setSupplyLimit()](https://docs.cryptolegacy.app/documentation/functions-reference#setsupplylimit-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.payForMultipleLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#payformultiplelifetimenft-clbm1)

### REGISTRY\_BUILD\_CASE (CLBM1-D8)

**Data Type:** `uint8` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Fee registry case identifier for build fees.

**Modified by:** None

**Read by:**

* [CryptoLegacyBuildManager.payInitialFee()](https://docs.cryptolegacy.app/documentation/functions-reference#payinitialfee-clbm1)
* [CryptoLegacyBuildManager.\_getAndPayBuildFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_getandpaybuildfee-clbm1)

### REGISTRY\_UPDATE\_CASE (CLBM1-D9)

**Data Type:** `uint8` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Fee registry case identifier for update fees.

**Modified by:** None

**Read by:**

* [CryptoLegacyBuildManager.payFee()](https://docs.cryptolegacy.app/documentation/functions-reference#payfee-clbm1)
* [CryptoLegacyBuildManager.getUpdateFee()](https://docs.cryptolegacy.app/documentation/functions-reference#getupdatefee-clbm1)
* [CryptoLegacyBuildManager.\_getAndPayBuildFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_getandpaybuildfee-clbm1)

### REGISTRY\_LIFETIME\_CASE (CLBM1-D10)

**Data Type:** `uint8` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Fee registry case identifier for lifetime NFT fees.

**Modified by:** None

**Read by:**

* [CryptoLegacyBuildManager.\_payFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_payfee-clbm1)
* [CryptoLegacyBuildManager.payForMultipleLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#payformultiplelifetimenft-clbm1)

### cryptoLegacyBuilt (CLBM1-D11)

**Data Type:** `mapping(address => bool)` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Tracks whether a CryptoLegacy contract address has been built and registered.

**Modified by:**

* [CryptoLegacyBuildManager.buildCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#buildcryptolegacy-clbm1)

**Read by:**

* [CryptoLegacyBuildManager.isLifetimeNftLockedAndUpdate()](https://docs.cryptolegacy.app/documentation/functions-reference#islifetimenftlockedandupdate-clbm1)
* [CryptoLegacyBuildManager.isCryptoLegacyBuilt()](https://docs.cryptolegacy.app/documentation/functions-reference#iscryptolegacybuilt-clbm1)

## CryptoLegacyDiamondBase (CLDB1)

**No tracked data items in this contract/library.**

## CryptoLegacyExternalLens (CLEXL1)

**No tracked data items in this contract/library.**

## CryptoLegacyFactory (CLF1)

### buildOperators (CLF1-D1)

**Data Type:** `EnumerableSet.AddressSet` **Visibility / Mutability:** private, none **Storage Location:** direct storage **Description:** Set of addresses authorized to deploy new CryptoLegacy contracts.

**Modified by:**

* [CryptoLegacyFactory.setBuildOperator()](https://docs.cryptolegacy.app/documentation/functions-reference#setbuildoperator-clf1)

**Read by:**

* [CryptoLegacyFactory.createCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#createcryptolegacy-clf1)

## CryptoLegacyOwnable (CLO1)

**No tracked data items in this contract/library.**

## FeeRegistry (FR1)

### PCT\_BASE (FR1-D1)

**Data Type:** `uint32` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Fixed 10,000 denominator for fee-registry discount and referral-share percentage calculations.

**Modified by:** None

**Read by:**

* [FeeRegistry.setFeeBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#setfeebeneficiaries-fr1)
* [FeeRegistry.setRefererSpecificPct()](https://docs.cryptolegacy.app/documentation/functions-reference#setrefererspecificpct-fr1)
* [FeeRegistry.withdrawAccumulatedFee()](https://docs.cryptolegacy.app/documentation/functions-reference#withdrawaccumulatedfee-fr1)
* [FeeRegistry.\_calculateFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_calculatefee-fr1)

### FR\_STORAGE\_POSITION (FR1-D2)

**Data Type:** `bytes32` **Visibility / Mutability:** internal, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for FeeRegistry FRStorage.

**Modified by:** None

**Read by:**

* [FeeRegistry.lockFeeRegistryStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#lockfeeregistrystorage-fr1)

## LegacyMessenger (LM1)

### messagesGotByBlockNumber (LM1-D1)

**Data Type:** `mapping(bytes32 => uint64[])` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Maps recipient hashes to block numbers when messages were sent.

**Modified by:**

* [LegacyMessenger.sendMessagesTo()](https://docs.cryptolegacy.app/documentation/functions-reference#sendmessagesto-lm1)

**Read by:**

* [LegacyMessenger.getMessagesBlockNumbersByRecipient()](https://docs.cryptolegacy.app/documentation/functions-reference#getmessagesblocknumbersbyrecipient-lm1)

## LifetimeNft (LN1)

### baseURI (LN1-D1)

**Data Type:** `string` **Visibility / Mutability:** internal, none **Storage Location:** direct storage **Description:** Base URI used to build token metadata URLs.

**Modified by:**

* [LifetimeNft.\_setBaseUri()](https://docs.cryptolegacy.app/documentation/functions-reference#_setbaseuri-ln1)

**Read by:**

* [LifetimeNft.\_baseURI()](https://docs.cryptolegacy.app/documentation/functions-reference#_baseuri-ln1)

### minterOperator (LN1-D2)

**Data Type:** `mapping(address => bool)` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Tracks which addresses are authorized to mint Lifetime NFTs.

**Modified by:**

* [LifetimeNft.setMinterOperator()](https://docs.cryptolegacy.app/documentation/functions-reference#setminteroperator-ln1)

**Read by:**

* [LifetimeNft.mint()](https://docs.cryptolegacy.app/documentation/functions-reference#mint-ln1)

## LockChainGate (LCG1)

### LCG\_STORAGE\_POSITION (LCG1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** internal, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for LockChainGate LCGStorage.

**Modified by:** None

**Read by:**

* [LockChainGate.lockChainGateStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#lockchaingatestorage-lcg1)

## MultiPermit (MP1)

### PermitData (MP1-S1)

**Type:** `struct` **Fields:**

* `token (address)`: Token contract address.
* `owner (address)`: Token owner address.
* `spender (address)`: Spender address to approve.
* `value (uint256)`: Amount to approve.
* `deadline (uint256)`: Permit deadline timestamp.
* `v (uint8)`: Signature v value.
* `r (bytes32)`: Signature r value.
* `s (bytes32)`: Signature s value.

**Used by:**

* [MultiPermit.approveTreasuryTokensToLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#approvetreasurytokenstolegacy-mp1)

**Notes / Edge cases:** None

## PluginsRegistry (PR1)

### pluginsList (PR1-D1)

**Data Type:** `EnumerableSet.AddressSet` **Visibility / Mutability:** private, none **Storage Location:** direct storage **Description:** Set of registered plugin addresses.

**Modified by:**

* [PluginsRegistry.addPlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#addplugin-pr1)
* [PluginsRegistry.removePlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#removeplugin-pr1)

**Read by:**

* [PluginsRegistry.isPluginRegistered()](https://docs.cryptolegacy.app/documentation/functions-reference#ispluginregistered-pr1)
* [PluginsRegistry.getPluginAddressList()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginaddresslist-pr1)

### pluginDescriptionBlockNumbers (PR1-D2)

**Data Type:** `mapping(address => uint64[])` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Records block numbers when plugin descriptions are added or updated.

**Modified by:**

* [PluginsRegistry.addPlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#addplugin-pr1)
* [PluginsRegistry.addPluginDescription()](https://docs.cryptolegacy.app/documentation/functions-reference#addplugindescription-pr1)

**Read by:**

* [PluginsRegistry.getPluginMetadata()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmetadata-pr1)
* [PluginsRegistry.getPluginDescriptionBlockNumbers()](https://docs.cryptolegacy.app/documentation/functions-reference#getplugindescriptionblocknumbers-pr1)

## ProxyBuilder (PB1)

### proxyAdmin (PB1-D1)

**Data Type:** `ProxyAdmin` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Optional ProxyAdmin contract used to manage built proxies; constructor writes it only when `_proxyAdmin != address(0)`.

**Modified by:**

* [ProxyBuilder.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-pb1)
* [ProxyBuilder.setProxyAdmin()](https://docs.cryptolegacy.app/documentation/functions-reference#setproxyadmin-pb1)

**Read by:**

* [ProxyBuilder.build()](https://docs.cryptolegacy.app/documentation/functions-reference#build-pb1)

## ProxyBuilderAdmin (PBA1)

**No tracked data items in this contract/library.**

## SignatureRoleTimelock (SRT1)

### ADMIN\_ROLE (SRT1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Identifier for the administrator role.

**Modified by:** None

**Read by:**

* [SignatureRoleTimelock.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-srt1)
* [SignatureRoleTimelock.cancelCallList()](https://docs.cryptolegacy.app/documentation/functions-reference#cancelcalllist-srt1)

### MAX\_TIMELOCK\_DURATION (SRT1-D2)

**Data Type:** `uint128` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** 7-day upper bound for signature-role timelocks accepted during constructor seeding and signature-role updates.

**Modified by:** None

**Read by:**

* [SignatureRoleTimelock.addSignatureRoleList()](https://docs.cryptolegacy.app/documentation/functions-reference#addsignaturerolelist-srt1)

### MAX\_EXECUTION\_PERIOD\_LOWER\_BOUND (SRT1-D3)

**Data Type:** `uint128` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** 7-day minimum allowed when setting the execution window for scheduled calls.

**Modified by:** None

**Read by:**

* [SignatureRoleTimelock.setMaxExecutionPeriod()](https://docs.cryptolegacy.app/documentation/functions-reference#setmaxexecutionperiod-srt1)

### MAX\_EXECUTION\_PERIOD\_UPPER\_BOUND (SRT1-D4)

**Data Type:** `uint128` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** 21-day maximum allowed when setting the execution window for scheduled calls.

**Modified by:** None

**Read by:**

* [SignatureRoleTimelock.setMaxExecutionPeriod()](https://docs.cryptolegacy.app/documentation/functions-reference#setmaxexecutionperiod-srt1)

### maxExecutionPeriod (SRT1-D5)

**Data Type:** `uint128` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Maximum period during which a scheduled call can be executed.

**Modified by:**

* [SignatureRoleTimelock.setMaxExecutionPeriod()](https://docs.cryptolegacy.app/documentation/functions-reference#setmaxexecutionperiod-srt1)

**Read by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)

### roleAccounts (SRT1-D6)

**Data Type:** `mapping(bytes32 => address[])` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Maps role identifiers to the list of accounts with that role.

**Modified by:**

* [SignatureRoleTimelock.\_addRoleAccount()](https://docs.cryptolegacy.app/documentation/functions-reference#_addroleaccount-srt1)
* [SignatureRoleTimelock.\_removeRoleAccount()](https://docs.cryptolegacy.app/documentation/functions-reference#_removeroleaccount-srt1)

**Read by:**

* [SignatureRoleTimelock.\_addRoleAccount()](https://docs.cryptolegacy.app/documentation/functions-reference#_addroleaccount-srt1)
* [SignatureRoleTimelock.\_removeRoleAccount()](https://docs.cryptolegacy.app/documentation/functions-reference#_removeroleaccount-srt1)
* [SignatureRoleTimelock.getRoleAccounts()](https://docs.cryptolegacy.app/documentation/functions-reference#getroleaccounts-srt1)

### signatureRoles (SRT1-D7)

**Data Type:** `mapping(address => mapping(bytes4 => SignatureAttr))` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Maps a target and selector to the required role and timelock.

**Modified by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)

**Read by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)
* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.getTargetSigs()](https://docs.cryptolegacy.app/documentation/functions-reference#gettargetsigs-srt1)

### targetSigs (SRT1-D8)

**Data Type:** `mapping(address => bytes4[])` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Maps a target to the list of selectors that have signature roles.

**Modified by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)

**Read by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)
* [SignatureRoleTimelock.getTargetSigs()](https://docs.cryptolegacy.app/documentation/functions-reference#gettargetsigs-srt1)

### targets (SRT1-D9)

**Data Type:** `address[]` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** List of targets that have at least one signature role.

**Modified by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)

**Read by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_removeSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_removesignaturerole-srt1)
* [SignatureRoleTimelock.getTargets()](https://docs.cryptolegacy.app/documentation/functions-reference#gettargets-srt1)

### pendingCalls (SRT1-D10)

**Data Type:** `mapping(bytes32 => CallRequest)` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** Stores scheduled call requests keyed by call id.

**Modified by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.\_executeCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_executecall-srt1)
* [SignatureRoleTimelock.\_cancelCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_cancelcall-srt1)

**Read by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.\_executeCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_executecall-srt1)
* [SignatureRoleTimelock.\_cancelCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_cancelcall-srt1)
* [SignatureRoleTimelock.getCall()](https://docs.cryptolegacy.app/documentation/functions-reference#getcall-srt1)
* [SignatureRoleTimelock.getCallsList()](https://docs.cryptolegacy.app/documentation/functions-reference#getcallslist-srt1)

### callsIds (SRT1-D11)

**Data Type:** `bytes32[]` **Visibility / Mutability:** public, none **Storage Location:** direct storage **Description:** List of scheduled call ids.

**Modified by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)

**Read by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.getCallIds()](https://docs.cryptolegacy.app/documentation/functions-reference#getcallids-srt1)
* [SignatureRoleTimelock.getCallsList()](https://docs.cryptolegacy.app/documentation/functions-reference#getcallslist-srt1)
* [SignatureRoleTimelock.getCallsLength()](https://docs.cryptolegacy.app/documentation/functions-reference#getcallslength-srt1)

## ArbSys (AS1)

**No tracked data items in this contract/library.**

## Flags (FLG1)

### UNWRAP\_ETH (FLG1-D1)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to indicate unwrap ETH behavior.

**Modified by:** None

**Read by:** None

### REVERT\_IF\_EXTERNAL\_FAIL (FLG1-D2)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to revert if an external call fails.

**Modified by:** None

**Read by:**

* [LockChainGate.\_send()](https://docs.cryptolegacy.app/documentation/functions-reference#_send-lcg1)

### PROXY\_WITH\_SENDER (FLG1-D3)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to proxy calls with sender context.

**Modified by:** None

**Read by:**

* [LockChainGate.\_send()](https://docs.cryptolegacy.app/documentation/functions-reference#_send-lcg1)

### SEND\_HASHED\_DATA (FLG1-D4)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to indicate hashed data sending mode.

**Modified by:** None

**Read by:** None

### SEND\_EXTERNAL\_CALL\_GAS\_LIMIT (FLG1-D5)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to set external call gas limit behavior.

**Modified by:** None

**Read by:** None

### MULTI\_SEND (FLG1-D6)

**Data Type:** `uint256` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Flag index used to enable multi-send behavior.

**Modified by:** None

**Read by:** None

## IAaveV3Pool (IAV3P1)

**No tracked data items in this contract/library.**

## IAaveV3PoolDataProvider (IAV3PDP1)

**No tracked data items in this contract/library.**

## WethUnwrap (WU1)

### WETH (WU1-D1)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** WETH token address pulled from callers and unwrapped to native ETH during `unwrap_weth`.

**Modified by:**

* [WethUnwrap.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-wu1)

**Read by:**

* [WethUnwrap.unwrap\_weth()](https://docs.cryptolegacy.app/documentation/functions-reference#unwrap_weth-wu1)

## IBeneficiaryRegistry (IBR1)

### EntityType (IBR1-E1)

**Type:** `enum` **Members:**

* `NONE`
* `OWNER`
* `BENEFICIARY`
* `GUARDIAN`
* `RECOVERY`

**Used by:**

* [LibCryptoLegacy.\_setCryptoLegacyToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacytobeneficiaryregistry-lcl1)
* [LibCryptoLegacy.\_setCryptoLegacyListToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacylisttobeneficiaryregistry-lcl1)

## IBuildManagerOwnable (IBMO1)

**No tracked data items in this contract/library.**

## ICallProxy (ICP1)

**No tracked data items in this contract/library.**

## ICryptoLegacy (ICL1)

### BeneficiaryConfig (ICL1-S1)

**Type:** `struct` **Fields:**

* `claimDelay (uint64)`: Delay before claims become available.
* `vestingPeriod (uint64)`: Duration over which claims vest.
* `shareBps (uint64)`: Beneficiary share in basis points.

**Used by:**

* [LibCryptoLegacy.\_getStartAndEndDate()](https://docs.cryptolegacy.app/documentation/functions-reference#_getstartandenddate-lcl1)
* [LibCryptoLegacy.\_getVestedAndClaimedAmount()](https://docs.cryptolegacy.app/documentation/functions-reference#_getvestedandclaimedamount-lcl1)
* [LibCryptoLegacy.\_getBeneficiaryConfigAndVesting()](https://docs.cryptolegacy.app/documentation/functions-reference#_getbeneficiaryconfigandvesting-lcl1)

**Notes / Edge cases:** None

### BeneficiaryVesting (ICL1-S2)

**Type:** `struct` **Fields:**

* `tokenAmountClaimed (mapping(address => uint256))`: Amount claimed per token.

**Used by:**

* [LibCryptoLegacy.\_getVestedAndClaimedAmount()](https://docs.cryptolegacy.app/documentation/functions-reference#_getvestedandclaimedamount-lcl1)
* [LibCryptoLegacy.\_getBeneficiaryConfigAndVesting()](https://docs.cryptolegacy.app/documentation/functions-reference#_getbeneficiaryconfigandvesting-lcl1)

**Notes / Edge cases:** None

### TokenDistribution (ICL1-S3)

**Type:** `struct` **Fields:**

* `amountToDistribute (uint256)`: Total amount allocated for distribution.
* `lastBalance (uint256)`: Last recorded token balance.

**Used by:**

* [LibCryptoLegacy.\_tokenPrepareToDistribute()](https://docs.cryptolegacy.app/documentation/functions-reference#_tokenpreparetodistribute-lcl1)
* [LibCryptoLegacy.\_getVestedAndClaimedAmount()](https://docs.cryptolegacy.app/documentation/functions-reference#_getvestedandclaimedamount-lcl1)

**Notes / Edge cases:** None

### CryptoLegacyStorage (ICL1-S4)

**Type:** `struct` **Fields:**

* `isPaused (bool)`: Pause flag for the protocol.
* `initialFeeToPay (uint128)`: Initial fee amount required.
* `updateFee (uint128)`: Current update fee amount.
* `updateInterval (uint64)`: Interval between required updates.
* `challengeTimeout (uint64)`: Challenge period timeout.
* `lastFeePaidAt (uint64)`: Timestamp of the last fee payment.
* `lastUpdateAt (uint64)`: Timestamp of the last update.
* `distributionStartAt (uint64)`: Timestamp when distribution starts.
* `pendingOwner (address)`: Pending owner address for ownership transfer.
* `invitedByRefCode (bytes8)`: Referral code used at build time.
* `defaultFuncDisabled (uint8)`: Bitmask of disabled default functions.
* `gasLimitMultiplier (uint8)`: Multiplier applied to gas estimates.
* `buildManager (ICryptoLegacyBuildManager)`: Build manager contract reference.
* `beneficiaries (EnumerableSet.Bytes32Set)`: Set of beneficiary hashes.
* `beneficiaryConfig (mapping(bytes32 => BeneficiaryConfig))`: Configuration per beneficiary hash.
* `originalBeneficiaryHash (mapping(bytes32 => bytes32))`: Mapping from beneficiary hash to original hash.
* `beneficiarySwitchTimelock (mapping(bytes32 => uint64))`: Timelock for beneficiary switch.
* `beneficiaryVesting (mapping(bytes32 => BeneficiaryVesting))`: Vesting data per beneficiary hash.
* `tokenDistribution (mapping(address => TokenDistribution))`: Distribution data per token.
* `beneficiaryMessagesGotByBlockNumber (mapping(bytes32 => uint64[]))`: Message block history per beneficiary.
* `transfersGotByBlockNumber (uint64[])`: Block numbers for transfers from the legacy.

**Used by:**

* [LibCryptoLegacy.getCryptoLegacyStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacystorage-lcl1)
* [LibCryptoLegacy.\_checkPause()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkpause-lcl1)
* [LibCryptoLegacy.\_setPause()](https://docs.cryptolegacy.app/documentation/functions-reference#_setpause-lcl1)

**Notes / Edge cases:** None

### TokenTransferTo (ICL1-S5)

**Type:** `struct` **Fields:**

* `token (address)`: Token address.
* `recipient (address)`: Recipient address.
* `amount (uint256)`: Amount to transfer.

**Used by:**

* [LibCryptoLegacy.\_transferTokensFromLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#_transfertokensfromlegacy-lcl1)
* [LegacyRecoveryPlugin.lrWithdrawTokensFromLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#lrwithdrawtokensfromlegacy-lrp1)

**Notes / Edge cases:** None

## ICryptoLegacyBuildManager (ICLBM1)

### BuildArgs (ICLBM1-S1)

**Type:** `struct` **Fields:**

* `invitedByRefCode (bytes8)`: Referral code used for build.
* `beneficiaryHashes (bytes32[])`: Beneficiary hashes.
* `beneficiaryConfig (ICryptoLegacy.BeneficiaryConfig[])`: Beneficiary configurations.
* `plugins (address[])`: Plugin addresses to install.
* `updateInterval (uint64)`: Update interval for the legacy.
* `challengeTimeout (uint64)`: Challenge timeout for the legacy.

**Used by:**

* [CryptoLegacyBuildManager.\_createRefAndPayForBuild()](https://docs.cryptolegacy.app/documentation/functions-reference#_createrefandpayforbuild-clbm1)
* [CryptoLegacyBuildManager.buildCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#buildcryptolegacy-clbm1)
* [CryptoLegacyBuildManager.\_checkBuildArgs()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkbuildargs-clbm1)

**Notes / Edge cases:** None

### RefArgs (ICLBM1-S2)

**Type:** `struct` **Fields:**

* `createRefRecipient (address)`: Recipient for created referral code.
* `createRefCustomCode (bytes8)`: Custom referral code, if provided.
* `createRefChains (uint256[])`: Chain ids for referral creation.
* `crossChainFees (uint256[])`: Cross-chain fees per chain id.

**Used by:**

* [CryptoLegacyBuildManager.\_createRefAndPayForBuild()](https://docs.cryptolegacy.app/documentation/functions-reference#_createrefandpayforbuild-clbm1)

**Notes / Edge cases:** None

### LifetimeNftMint (ICLBM1-S3)

**Type:** `struct` **Fields:**

* `toHolder (address)`: NFT recipient address.
* `amount (uint256)`: Amount of NFTs to mint.

**Used by:**

* [CryptoLegacyBuildManager.payForMultipleLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#payformultiplelifetimenft-clbm1)

**Notes / Edge cases:** None

## ICryptoLegacyDiamondBase (ICLDB1)

**No tracked data items in this contract/library.**

## ICryptoLegacyFactory (ICLF1)

### Create2Args (ICLF1-S1)

**Type:** `struct` **Fields:**

* `create2Address (address)`: Expected CREATE2 address.
* `create2Salt (bytes32)`: CREATE2 salt.

**Used by:**

* [CryptoLegacyBuildManager.buildCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#buildcryptolegacy-clbm1)
* [ICryptoLegacyFactory.createCryptoLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#createcryptolegacy-iclf1)

**Notes / Edge cases:** None

## ICryptoLegacyLens (ICLL1)

### BeneficiaryTokenData (ICLL1-S1)

**Type:** `struct` **Fields:**

* `claimableAmount (uint256)`: Amount currently claimable.
* `claimedAmount (uint256)`: Amount already claimed.
* `totalAmount (uint256)`: Total amount allocated.

**Used by:**

* [LensPlugin.getVestedAndClaimedData()](https://docs.cryptolegacy.app/documentation/functions-reference#getvestedandclaimeddata-lp1)
* [ICryptoLegacyLens.getVestedAndClaimedData()](https://docs.cryptolegacy.app/documentation/functions-reference#getvestedandclaimeddata-icll1)

**Notes / Edge cases:** None

### PluginInfo (ICLL1-S2)

**Type:** `struct` **Fields:**

* `plugin (address)`: Plugin contract address.
* `name (string)`: Plugin name.
* `version (uint16)`: Plugin version.
* `descriptionBlockNumbers (uint64[])`: Block numbers when descriptions were added.

**Used by:**

* [LensPlugin.\_getPluginInfoList()](https://docs.cryptolegacy.app/documentation/functions-reference#_getplugininfolist-lp1)
* [LensPlugin.getPluginInfoList()](https://docs.cryptolegacy.app/documentation/functions-reference#getplugininfolist-lp1)

**Notes / Edge cases:** None

### CryptoLegacyBaseData (ICLL1-S3)

**Type:** `struct` **Fields:**

* `initialFeeToPay (uint128)`: Initial fee amount.
* `updateFee (uint128)`: Update fee amount.
* `updateInterval (uint64)`: Update interval.
* `challengeTimeout (uint64)`: Challenge timeout.
* `lastFeePaidAt (uint64)`: Timestamp of last fee payment.
* `lastUpdateAt (uint64)`: Timestamp of last update.
* `distributionStartAt (uint64)`: Timestamp of distribution start.
* `invitedByRefCode (bytes8)`: Referral code used at build time.
* `defaultFuncDisabled (uint8)`: Bitmask of disabled default functions.
* `buildManager (address)`: Build manager address.

**Used by:**

* [LensPlugin.getCryptoLegacyBaseData()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacybasedata-lp1)
* [ICryptoLegacyLens.getCryptoLegacyBaseData()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacybasedata-icll1)

**Notes / Edge cases:** None

### LensTokenDistribution (ICLL1-S4)

**Type:** `struct` **Fields:**

* `amountToDistribute (uint256)`: Amount to distribute.
* `lastBalance (uint256)`: Last recorded balance.
* `totalClaimed (uint256)`: Total claimed amount.

**Used by:**

* [LensPlugin.\_getTokensDistribution()](https://docs.cryptolegacy.app/documentation/functions-reference#_gettokensdistribution-lp1)
* [LensPlugin.getTokensDistribution()](https://docs.cryptolegacy.app/documentation/functions-reference#gettokensdistribution-lp1)

**Notes / Edge cases:** None

### CryptoLegacyListData (ICLL1-S5)

**Type:** `struct` **Fields:**

* `beneficiaries (bytes32[])`: Beneficiary hashes.
* `beneficiariesOriginalHashes (bytes32[])`: Original beneficiary hashes.
* `transfersGotByBlockNumber (uint64[])`: Block numbers for transfers.
* `beneficiaryConfigArr (ICryptoLegacy.BeneficiaryConfig[])`: Beneficiary configuration array.
* `plugins (PluginInfo[])`: Plugin metadata list.
* `tokenDistributions (LensTokenDistribution[])`: Token distribution data per token.

**Used by:**

* [LensPlugin.getCryptoLegacyListData()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistdata-lp1)
* [ICryptoLegacyLens.getCryptoLegacyListData()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacylistdata-icll1)

**Notes / Edge cases:** None

## ICryptoLegacyOwnable (ICLO1)

**No tracked data items in this contract/library.**

## ICryptoLegacyPlugin (ICLP1)

**No tracked data items in this contract/library.**

## ICryptoLegacyUpdaterPlugin (ICLUP1)

**No tracked data items in this contract/library.**

## IDeBridgeGate (IDBG1)

### TokenInfo (IDBG1-S1)

**Type:** `struct` **Fields:**

* `nativeChainId (uint256)`: Native chain identifier.
* `nativeAddress (bytes)`: Native token address bytes.

**Used by:** None

**Notes / Edge cases:** None

### DebridgeInfo (IDBG1-S2)

**Type:** `struct` **Fields:**

* `chainId (uint256)`: Chain identifier.
* `maxAmount (uint256)`: Maximum transferable amount.
* `balance (uint256)`: Total locked balance.
* `lockedInStrategies (uint256)`: Amount locked in strategies.
* `tokenAddress (address)`: Token address on the current chain.
* `minReservesBps (uint16)`: Minimum reserves in basis points.
* `exist (bool)`: Whether the debridge exists.

**Used by:** None

**Notes / Edge cases:** None

### DebridgeFeeInfo (IDBG1-S3)

**Type:** `struct` **Fields:**

* `collectedFees (uint256)`: Total collected fees.
* `withdrawnFees (uint256)`: Total withdrawn fees.
* `getChainFee (mapping(uint256 => uint256))`: Fee per chain id.

**Used by:** None

**Notes / Edge cases:** None

### ChainSupportInfo (IDBG1-S4)

**Type:** `struct` **Fields:**

* `fixedNativeFee (uint256)`: Fixed native fee amount.
* `isSupported (bool)`: Whether the chain is supported.
* `transferFeeBps (uint16)`: Transfer fee in basis points.

**Used by:**

* [ChainsSupportUpdated](https://docs.cryptolegacy.app/documentation/events-reference#chainssupportupdated-idbg1)

**Notes / Edge cases:** None

### DiscountInfo (IDBG1-S5)

**Type:** `struct` **Fields:**

* `discountFixBps (uint16)`: Fixed fee discount in basis points.
* `discountTransferBps (uint16)`: Transfer fee discount in basis points.

**Used by:** None

**Notes / Edge cases:** None

### SubmissionAutoParamsTo (IDBG1-S6)

**Type:** `struct` **Fields:**

* `executionFee (uint256)`: Execution fee amount.
* `flags (uint256)`: Packed flag set.
* `fallbackAddress (bytes)`: Fallback address bytes.
* `data (bytes)`: Call data.

**Used by:** None

**Notes / Edge cases:** None

### SubmissionAutoParamsFrom (IDBG1-S7)

**Type:** `struct` **Fields:**

* `executionFee (uint256)`: Execution fee amount.
* `flags (uint256)`: Packed flag set.
* `fallbackAddress (address)`: Fallback address.
* `data (bytes)`: Call data.
* `nativeSender (bytes)`: Native sender address bytes.

**Used by:** None

**Notes / Edge cases:** None

### FeeParams (IDBG1-S8)

**Type:** `struct` **Fields:**

* `receivedAmount (uint256)`: Received amount.
* `fixFee (uint256)`: Fixed fee amount.
* `transferFee (uint256)`: Transfer fee amount.
* `useAssetFee (bool)`: Whether asset fee is used.
* `isNativeToken (bool)`: Whether the token is native.

**Used by:**

* [Sent](https://docs.cryptolegacy.app/documentation/events-reference#sent-idbg1)

**Notes / Edge cases:** None

## IDiamondCut (IDC1)

### FacetCutAction (IDC1-E1)

**Type:** `enum` **Members:**

* `Add`
* `Replace`
* `Remove`

**Used by:**

* [LibDiamond.diamondCut()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondcut-ld1)
* [IDiamondCut.diamondCut()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondcut-idc1)

### FacetCut (IDC1-S1)

**Type:** `struct` **Fields:**

* `facetAddress (address)`: Facet address.
* `action (FacetCutAction)`: Cut action to apply.
* `functionSelectors (bytes4[])`: Selectors affected by the cut.

**Used by:**

* [LibDiamond.diamondCut()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondcut-ld1)
* [IDiamondCut.diamondCut()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondcut-idc1)

**Notes / Edge cases:** None

## IDiamondLoupe (IDL1)

### Facet (IDL1-S1)

**Type:** `struct` **Fields:**

* `facetAddress (address)`: Facet address.
* `functionSelectors (bytes4[])`: Function selectors provided by the facet.

**Used by:**

* [DiamondLoupeFacet.facets()](https://docs.cryptolegacy.app/documentation/functions-reference#facets-dlf1)
* [IDiamondLoupe.facets()](https://docs.cryptolegacy.app/documentation/functions-reference#facets-idl1)

**Notes / Edge cases:** None

## IFeeRegistry (IFR1)

### FRStorage (IFR1-S1)

**Type:** `struct` **Fields:**

* `defaultDiscountPct (uint32)`: Default discount percentage.
* `defaultSharePct (uint32)`: Default share percentage.
* `accumulatedFee (uint128)`: Accumulated fee amount.
* `supportedRefInChains (EnumerableSet.UintSet)`: Supported referral chains.
* `refererByCode (mapping(bytes8 => Referrer))`: Referrer data by code.
* `codeByReferrer (mapping(address => bytes8))`: Code by referrer address.
* `codeOperators (EnumerableSet.AddressSet)`: Authorized code operators.
* `feeByContractCase (mapping(address => mapping(uint8 => uint128)))`: Fee by contract and case.
* `feeBeneficiaries (FeeBeneficiary[])`: Fee beneficiary list.

**Used by:**

* [FeeRegistry.lockFeeRegistryStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#lockfeeregistrystorage-fr1)
* [FeeRegistry.getFeeBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#getfeebeneficiaries-fr1)
* [IFeeRegistry.accumulatedFee()](https://docs.cryptolegacy.app/documentation/functions-reference#accumulatedfee-ifr1)

**Notes / Edge cases:** None

### Referrer (IFR1-S2)

**Type:** `struct` **Fields:**

* `owner (address)`: Referrer owner address.
* `recipient (address)`: Fee recipient address.
* `discountPct (uint32)`: Discount percentage.
* `sharePct (uint32)`: Share percentage.
* `accumulatedFee (uint128)`: Accumulated fee for the referrer.

**Used by:**

* [FeeRegistry.createCustomCode()](https://docs.cryptolegacy.app/documentation/functions-reference#createcustomcode-fr1)
* [FeeRegistry.createCode()](https://docs.cryptolegacy.app/documentation/functions-reference#createcode-fr1)
* [IFeeRegistry.accumulatedFee()](https://docs.cryptolegacy.app/documentation/functions-reference#accumulatedfee-ifr1)

**Notes / Edge cases:** None

### FeeBeneficiary (IFR1-S3)

**Type:** `struct` **Fields:**

* `recipient (address)`: Fee recipient address.
* `sharePct (uint32)`: Share percentage.

**Used by:**

* [FeeRegistry.setFeeBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#setfeebeneficiaries-fr1)
* [FeeRegistry.getFeeBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#getfeebeneficiaries-fr1)
* [FeeRegistry.withdrawAccumulatedFee()](https://docs.cryptolegacy.app/documentation/functions-reference#withdrawaccumulatedfee-fr1)

**Notes / Edge cases:** None

## ILockChainGate (ILCG1)

### LCGStorage (ILCG1-S1)

**Type:** `struct` **Fields:**

* `deBridgeGate (IDeBridgeGate)`: DeBridgeGate contract reference.
* `deBridgeNativeFee (mapping(uint256 => uint256))`: Native fee by chain id.
* `destinationChainContracts (mapping(uint256 => address))`: Destination chain contract by chain id.
* `sourceChainsContracts (mapping(uint256 => address))`: Source chain contract by chain id.
* `lockOperators (EnumerableSet.AddressSet)`: Set of lock operators.
* `lifetimeNft (ILifetimeNft)`: Lifetime NFT contract reference.
* `lockPeriod (uint64)`: Lock period duration.
* `transferTimeout (uint64)`: Transfer timeout duration.
* `referralCode (uint32)`: Referral code value.
* `customChainId (uint256)`: Custom chain id override.
* `lockedNft (mapping(address => LockedNft))`: Locked NFT data by holder.
* `ownerOfTokenId (mapping(uint256 => address))`: Owner by token id.
* `lockedToChainsIds (mapping(uint256 => EnumerableSet.UintSet))`: Locked chain ids per token id.
* `lockedNftFromChainId (mapping(uint256 => uint256))`: Source chain id per token id.
* `lockedNftApprovedTo (mapping(uint256 => address))`: Approved address per token id.

**Used by:**

* [LockChainGate.lockChainGateStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#lockchaingatestorage-lcg1)
* [ILockChainGate.lockLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#locklifetimenft-ilcg1)
* [ILockChainGate.isNftLocked()](https://docs.cryptolegacy.app/documentation/functions-reference#isnftlocked-ilcg1)
* [ILockChainGate.isNftLockedAndUpdate()](https://docs.cryptolegacy.app/documentation/functions-reference#isnftlockedandupdate-ilcg1)

**Notes / Edge cases:** None

### LockedNft (ILCG1-S2)

**Type:** `struct` **Fields:**

* `lockedAt (uint256)`: Timestamp when the NFT was locked.
* `tokenId (uint256)`: Locked token id.

**Used by:**

* [ILockChainGate.lockLifetimeNft()](https://docs.cryptolegacy.app/documentation/functions-reference#locklifetimenft-ilcg1)
* [ILockChainGate.isNftLocked()](https://docs.cryptolegacy.app/documentation/functions-reference#isnftlocked-ilcg1)
* [ILockChainGate.isNftLockedAndUpdate()](https://docs.cryptolegacy.app/documentation/functions-reference#isnftlockedandupdate-ilcg1)

**Notes / Edge cases:** None

## ILegacyMessenger (ILM1)

**No tracked data items in this contract/library.**

## ILido (ILD1)

**No tracked data items in this contract/library.**

## ILidoWithdrawalQueue (ILWQ1)

**No tracked data items in this contract/library.**

## ILifetimeNft (ILN1)

### Tier (ILN1-E1)

**Type:** `enum` **Members:**

* `None`
* `Silicon`
* `Gallium`
* `Indium`
* `Based`
* `Tantalum`

**Used by:**

* [ILifetimeNft.mint()](https://docs.cryptolegacy.app/documentation/functions-reference#mint-iln1)

## IPermit2 (IPM21)

**No tracked data items in this contract/library.**

## IPluginsRegistry (IPR1)

### PluginInfo (IPR1-S1)

**Type:** `struct` **Fields:**

* `plugin (address)`: Plugin address.
* `name (string)`: Plugin name.
* `version (uint16)`: Plugin version.
* `descriptionBlockNumbers (uint64[])`: Block numbers for description updates.

**Used by:**

* [PluginsRegistry.getPluginInfoList()](https://docs.cryptolegacy.app/documentation/functions-reference#getplugininfolist-pr1)

**Notes / Edge cases:** None

## ISafeMinimalMultisig (ISM1)

### Storage (ISM1-S1)

**Type:** `struct` **Fields:**

* `requiredConfirmations (uint128)`: Required confirmations count.
* `voters (bytes32[])`: Voter identifiers.
* `proposals (Proposal[])`: Proposal list.
* `confirmedBy (mapping(uint256 => mapping(bytes32 => bool)))`: Confirmation tracking by proposal and voter.
* `heldEth (mapping(bytes32 => uint256))`: ETH held per voter hash.

**Used by:**

* [LibSafeMinimalMultisig.\_initializationStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_initializationstatus-lsm1)
* [LibSafeMinimalMultisig.\_propose()](https://docs.cryptolegacy.app/documentation/functions-reference#_propose-lsm1)
* [LibSafeMinimalMultisig.\_confirm()](https://docs.cryptolegacy.app/documentation/functions-reference#_confirm-lsm1)

**Notes / Edge cases:** None

### ProposalStatus (ISM1-E1)

**Type:** `enum` **Members:**

* `NOT\_EXIST`
* `PENDING`
* `CANCELED`
* `EXECUTED`

**Used by:**

* [LibSafeMinimalMultisig.\_propose()](https://docs.cryptolegacy.app/documentation/functions-reference#_propose-lsm1)
* [LibSafeMinimalMultisig.\_cancel()](https://docs.cryptolegacy.app/documentation/functions-reference#_cancel-lsm1)
* [LibSafeMinimalMultisig.\_execute()](https://docs.cryptolegacy.app/documentation/functions-reference#_execute-lsm1)

### Proposal (ISM1-S2)

**Type:** `struct` **Fields:**

* `params (bytes)`: Proposal parameters.
* `confirms (uint128)`: Confirmation count.
* `selector (bytes4)`: Target function selector.
* `status (ProposalStatus)`: Proposal status.

**Used by:**

* [LibSafeMinimalMultisig.\_propose()](https://docs.cryptolegacy.app/documentation/functions-reference#_propose-lsm1)
* [LibSafeMinimalMultisig.\_getProposalWithStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_getproposalwithstatus-lsm1)

**Notes / Edge cases:** None

### ProposalWithStatus (ISM1-S3)

**Type:** `struct` **Fields:**

* `proposal (Proposal)`: Proposal data.
* `confirmedBy (bool[])`: Confirmation flags by voter index.

**Used by:**

* [LibSafeMinimalMultisig.\_getProposalWithStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_getproposalwithstatus-lsm1)
* [LibSafeMinimalMultisig.\_getProposalListWithStatusesAndStorageVoters()](https://docs.cryptolegacy.app/documentation/functions-reference#_getproposallistwithstatusesandstoragevoters-lsm1)
* [LibSafeMinimalBeneficiaryMultisig.\_getProposalWithStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_getproposalwithstatus-lsmb1)

**Notes / Edge cases:** None

### InitializationStatus (ISM1-E2)

**Type:** `enum` **Members:**

* `UNKNOWN`
* `INITIALIZED`
* `NOT\_INITIALIZED\_NO\_NEED`
* `NOT\_INITIALIZED\_BUT\_NEED`

**Used by:**

* [LibSafeMinimalMultisig.\_initializationStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_initializationstatus-lsm1)
* [LibSafeMinimalBeneficiaryMultisig.\_initializationStatus()](https://docs.cryptolegacy.app/documentation/functions-reference#_initializationstatus-lsmb1)

## ISignatureRoleTimelock (ISRT1)

### CallRequest (ISRT1-S1)

**Type:** `struct` **Fields:**

* `caller (address)`: Caller who scheduled the call.
* `target (address)`: Target contract address.
* `data (bytes)`: Encoded call data.
* `executeAfter (uint128)`: Earliest execution timestamp.
* `executeBefore (uint128)`: Latest execution timestamp.
* `pending (bool)`: Whether the call is still pending.

**Used by:**

* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.getCall()](https://docs.cryptolegacy.app/documentation/functions-reference#getcall-srt1)
* [SignatureRoleTimelock.getCallsList()](https://docs.cryptolegacy.app/documentation/functions-reference#getcallslist-srt1)

**Notes / Edge cases:** None

### AddressRoleInput (ISRT1-S2)

**Type:** `struct` **Fields:**

* `role (bytes32)`: Role identifier.
* `newAccount (address)`: New account to add.
* `prevAccount (address)`: Previous account to remove or replace.

**Used by:**

* [SignatureRoleTimelock.setRoleAccounts()](https://docs.cryptolegacy.app/documentation/functions-reference#setroleaccounts-srt1)

**Notes / Edge cases:** None

### SignatureAttr (ISRT1-S3)

**Type:** `struct` **Fields:**

* `role (bytes32)`: Role identifier.
* `timelock (uint128)`: Timelock duration.

**Used by:**

* [SignatureRoleTimelock.\_addSignatureRole()](https://docs.cryptolegacy.app/documentation/functions-reference#_addsignaturerole-srt1)
* [SignatureRoleTimelock.\_scheduleCall()](https://docs.cryptolegacy.app/documentation/functions-reference#_schedulecall-srt1)
* [SignatureRoleTimelock.getTargetSigs()](https://docs.cryptolegacy.app/documentation/functions-reference#gettargetsigs-srt1)

**Notes / Edge cases:** None

### SignatureToAdd (ISRT1-S4)

**Type:** `struct` **Fields:**

* `target (address)`: Target contract address.
* `signature (bytes4)`: Function selector.
* `role (bytes32)`: Role identifier.
* `timelock (uint128)`: Timelock duration.

**Used by:**

* [SignatureRoleTimelock.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-srt1)
* [SignatureRoleTimelock.addSignatureRoleList()](https://docs.cryptolegacy.app/documentation/functions-reference#addsignaturerolelist-srt1)

**Notes / Edge cases:** None

### SignatureToRemove (ISRT1-S5)

**Type:** `struct` **Fields:**

* `target (address)`: Target contract address.
* `signature (bytes4)`: Function selector.

**Used by:**

* [SignatureRoleTimelock.removeSignatureRoleList()](https://docs.cryptolegacy.app/documentation/functions-reference#removesignaturerolelist-srt1)

**Notes / Edge cases:** None

### CallToAdd (ISRT1-S6)

**Type:** `struct` **Fields:**

* `target (address)`: Target contract address.
* `data (bytes)`: Encoded call data.

**Used by:**

* [SignatureRoleTimelock.scheduleCallList()](https://docs.cryptolegacy.app/documentation/functions-reference#schedulecalllist-srt1)

**Notes / Edge cases:** None

### TargetSigRes (ISRT1-S7)

**Type:** `struct` **Fields:**

* `signature (bytes4)`: Function selector.
* `role (bytes32)`: Required role identifier.
* `timelock (uint256)`: Timelock duration.

**Used by:**

* [SignatureRoleTimelock.getTargetSigs()](https://docs.cryptolegacy.app/documentation/functions-reference#gettargetsigs-srt1)

**Notes / Edge cases:** None

## IStataToken (ISTA1)

**No tracked data items in this contract/library.**

## IStataTokenFactory (ISTF1)

**No tracked data items in this contract/library.**

## ITrustedGuardiansPlugin (ITGP1)

### PluginStorage (ITGP1-S1)

**Type:** `struct` **Fields:**

* `guardians (EnumerableSet.Bytes32Set)`: Set of guardian hashes.
* `guardiansVoted (bytes32[])`: Guardians that have voted.
* `guardiansThreshold (uint128)`: Required guardian threshold.
* `guardiansChallengeTimeout (uint64)`: Guardians challenge timeout.

**Used by:**

* [LibTrustedGuardiansPlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-ltgp1)
* [TrustedGuardiansPlugin.getGuardiansData()](https://docs.cryptolegacy.app/documentation/functions-reference#getguardiansdata-tgp1)
* [TrustedGuardiansPlugin.checkGuardiansVotedAndGetGuardiansData()](https://docs.cryptolegacy.app/documentation/functions-reference#checkguardiansvotedandgetguardiansdata-tgp1)

**Notes / Edge cases:** None

### GuardianToChange (ITGP1-S2)

**Type:** `struct` **Fields:**

* `hash (bytes32)`: Guardian hash.
* `isAdd (bool)`: True to add, false to remove.

**Used by:**

* [TrustedGuardiansPlugin.initializeGuardians()](https://docs.cryptolegacy.app/documentation/functions-reference#initializeguardians-tgp1)
* [TrustedGuardiansPlugin.setGuardians()](https://docs.cryptolegacy.app/documentation/functions-reference#setguardians-tgp1)
* [TrustedGuardiansPlugin.\_setGuardians()](https://docs.cryptolegacy.app/documentation/functions-reference#_setguardians-tgp1)

**Notes / Edge cases:** None

## DiamondLoupeFacet (DLF1)

**No tracked data items in this contract/library.**

## IUniversalRouter (IUR1)

**No tracked data items in this contract/library.**

## IWETH (IWETH1)

**No tracked data items in this contract/library.**

## IWstETH (IWSTETH1)

**No tracked data items in this contract/library.**

## WethUnwrapIWETH (WUI1)

**No tracked data items in this contract/library.**

## LibCLUtils (LCLU1)

**No tracked data items in this contract/library.**

## LibClaimMigrationCore (LCMC1)

### MIGRATION\_SCALE (LCMC1-D1)

**Data Type:** `uint256` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Fixed 1e18 scaling factor used by claim-migration math to keep fractions and ratios in 18-decimal fixed-point precision.

**Modified by:** None

**Read by:**

* [LibClaimMigrationCore.calculateFractionAndRatio()](https://docs.cryptolegacy.app/documentation/functions-reference#calculatefractionandratio-lcmc1)
* [LibClaimMigrationCore.applyMigrationFormula()](https://docs.cryptolegacy.app/documentation/functions-reference#applymigrationformula-lcmc1)

## LibOneStepClaimMigration (LOSCM1)

**No tracked data items in this contract/library.**

## LibTwoStepClaimMigration (LTSCM1)

### CLAIM\_LOCK\_AMOUNT (LTSCM1-D1)

**Data Type:** `uint256` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** `type(uint256).max` sentinel written into beneficiary claim slots while a delayed migration is pending.

**Modified by:** None

**Read by:**

* [LibTwoStepClaimMigration.start()](https://docs.cryptolegacy.app/documentation/functions-reference#start-ltscm1)

### CachedClaims (LTSCM1-S1)

**Type:** `struct` **Fields:**

* `claimedOut (uint256)`: Cached claimed amount for the source token.
* `claimedIn (uint256)`: Cached claimed amount for the destination token.

**Used by:**

* [LibTwoStepClaimMigration.start()](https://docs.cryptolegacy.app/documentation/functions-reference#start-ltscm1)
* [LibTwoStepClaimMigration.abandon()](https://docs.cryptolegacy.app/documentation/functions-reference#abandon-ltscm1)
* [LibTwoStepClaimMigration.\_applyPendingMigration()](https://docs.cryptolegacy.app/documentation/functions-reference#_applypendingmigration-ltscm1)

**Notes / Edge cases:** Stores beneficiary snapshots only while a delayed migration is active; entries are deleted during `complete` and `abandon`.

### PendingMigration (LTSCM1-S2)

**Type:** `struct` **Fields:**

* `active (bool)`: Whether a delayed migration is currently active.
* `tokenOut (address)`: Source token that left the contract first.
* `tokenIn (address)`: Destination token expected to arrive later.
* `amountOut (uint256)`: Source-token amount removed when the migration started.
* `outBalanceBefore (uint256)`: Source-token balance snapshot captured before the delayed flow began.

**Used by:**

* [LibTwoStepClaimMigration.isActive()](https://docs.cryptolegacy.app/documentation/functions-reference#isactive-ltscm1)
* [LibTwoStepClaimMigration.getPendingTokens()](https://docs.cryptolegacy.app/documentation/functions-reference#getpendingtokens-ltscm1)
* [LibTwoStepClaimMigration.start()](https://docs.cryptolegacy.app/documentation/functions-reference#start-ltscm1)
* [LibTwoStepClaimMigration.complete()](https://docs.cryptolegacy.app/documentation/functions-reference#complete-ltscm1)
* [LibTwoStepClaimMigration.abandon()](https://docs.cryptolegacy.app/documentation/functions-reference#abandon-ltscm1)
* [LibTwoStepClaimMigration.\_applyPendingMigration()](https://docs.cryptolegacy.app/documentation/functions-reference#_applypendingmigration-ltscm1)

**Notes / Edge cases:** Holds only one pending migration at a time; callers must keep any protocol-specific identifiers elsewhere.

### PendingMigrationStorage (LTSCM1-S3)

**Type:** `struct` **Fields:**

* `pending (PendingMigration)`: Active pending-migration record.
* `cachedClaimsByBeneficiary (mapping (bytes32 => CachedClaims))`: Cached claim snapshots keyed by beneficiary hash.
* `cachedBeneficiaryHashes (bytes32[])`: Beneficiary order preserved for completion/abandon sweeps.

**Used by:**

* [LibTwoStepClaimMigration.isActive()](https://docs.cryptolegacy.app/documentation/functions-reference#isactive-ltscm1)
* [LibTwoStepClaimMigration.getPendingTokens()](https://docs.cryptolegacy.app/documentation/functions-reference#getpendingtokens-ltscm1)
* [LibTwoStepClaimMigration.start()](https://docs.cryptolegacy.app/documentation/functions-reference#start-ltscm1)
* [LibTwoStepClaimMigration.complete()](https://docs.cryptolegacy.app/documentation/functions-reference#complete-ltscm1)
* [LibTwoStepClaimMigration.abandon()](https://docs.cryptolegacy.app/documentation/functions-reference#abandon-ltscm1)
* [LibTwoStepClaimMigration.\_applyPendingMigration()](https://docs.cryptolegacy.app/documentation/functions-reference#_applypendingmigration-ltscm1)

**Notes / Edge cases:** Encapsulates both the active migration header and the beneficiary-level cached snapshots required to restore or finalize delayed migrations.

## LibCreate3 (LC31)

### PROXY\_CHILD\_BYTECODE (LC31-D1)

**Data Type:** `bytes` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Bytecode for the CREATE3 proxy child contract.

**Modified by:** None

**Read by:**

* [LibCreate3.create3()](https://docs.cryptolegacy.app/documentation/functions-reference#create3bytes32bytes-lc31)
* [LibCreate3.create3()](https://docs.cryptolegacy.app/documentation/functions-reference#create3bytes32bytesuint256-lc31)

### KECCAK256\_PROXY\_CHILD\_BYTECODE (LC31-D2)

**Data Type:** `bytes32` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Keccak256 hash of the CREATE3 proxy child bytecode.

**Modified by:** None

**Read by:**

* [LibCreate3.addressOf()](https://docs.cryptolegacy.app/documentation/functions-reference#addressof-lc31)

## LibCryptoLegacy (LCL1)

### SHARE\_BASE (LCL1-D1)

**Data Type:** `uint256` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Fixed 10,000 denominator for beneficiary-share and vesting-percentage calculations.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.\_transferFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_transferfee-lcl1)
* [LibCryptoLegacy.\_getVestedAndClaimedAmount()](https://docs.cryptolegacy.app/documentation/functions-reference#_getvestedandclaimedamount-lcl1)

### MAX\_CHAINS\_ARRAY\_LENGTH (LCL1-D2)

**Data Type:** `uint256` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Maximum length for chain id arrays.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.\_checkFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkfee-lcl1)

### BENEFICIARY\_SWITCH\_TIMELOCK\_DURATION (LCL1-D3)

**Data Type:** `uint64` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Timelock duration for beneficiary switching.

**Modified by:** None

**Read by:**

* [CryptoLegacyBasePlugin.beneficiarySwitch()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryswitch-clbp1)

### CLAIM\_FUNC\_FLAG (LCL1-D4)

**Data Type:** `uint8` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Flag value used for claim function disablement.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.\_checkDisabledFunc()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkdisabledfunc-lcl1)
* [CryptoLegacyBasePlugin.beneficiaryClaim()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaim-clbp1)

### MAX\_GAS\_MULTIPLIER (LCL1-D5)

**Data Type:** `uint8` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Maximum gas multiplier allowed for selector-based gas estimates.

**Modified by:** None

**Read by:**

* [CryptoLegacyBasePlugin.setGasLimitMultiplier()](https://docs.cryptolegacy.app/documentation/functions-reference#setgaslimitmultiplier-clbp1)

### CRYPTO\_LEGACY\_STORAGE\_POSITION (LCL1-D6)

**Data Type:** `bytes32` **Visibility / Mutability:** internal, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for CryptoLegacyStorage.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.getCryptoLegacyStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getcryptolegacystorage-lcl1)

### transferValueSelector (LCL1-D7)

**Data Type:** `bytes4` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Selector used for transfer value call gas estimation.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.\_sendFeeByTransfer()](https://docs.cryptolegacy.app/documentation/functions-reference#_sendfeebytransfer-lcl1)
* [LibCryptoLegacy.\_gasBySelector()](https://docs.cryptolegacy.app/documentation/functions-reference#_gasbyselector-lcl1)

### lockNftSelector (LCL1-D8)

**Data Type:** `bytes4` **Visibility / Mutability:** internal, constant **Storage Location:** inlined constant **Description:** Selector used for lifetime NFT lock call gas estimation.

**Modified by:** None

**Read by:**

* [LibCryptoLegacy.\_checkFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_checkfee-lcl1)
* [LibCryptoLegacy.\_gasBySelector()](https://docs.cryptolegacy.app/documentation/functions-reference#_gasbyselector-lcl1)

## LibCryptoLegacyDeploy (LCLD1)

**No tracked data items in this contract/library.**

## LibCryptoLegacyPlugins (LCLP1)

**No tracked data items in this contract/library.**

## LibDiamond (LD1)

### DIAMOND\_STORAGE\_POSITION (LD1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** none, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for DiamondStorage.

**Modified by:** None

**Read by:**

* [LibDiamond.diamondStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondstorage-ld1)

### FacetAddressAndPosition (LD1-S1)

**Type:** `struct` **Fields:**

* `facetAddress (address)`: Facet address.
* `functionSelectorPosition (uint96)`: Selector position within the facet selector array.

**Used by:**

* [LibDiamond.diamondStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondstorage-ld1)
* [DiamondLoupeFacet.facets()](https://docs.cryptolegacy.app/documentation/functions-reference#facets-dlf1)

**Notes / Edge cases:** None

### FacetFunctionSelectors (LD1-S2)

**Type:** `struct` **Fields:**

* `functionSelectors (bytes4[])`: Selector list for the facet.
* `facetAddressPosition (uint256)`: Position of the facet address in the facet list.

**Used by:**

* [LibDiamond.diamondStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondstorage-ld1)
* [DiamondLoupeFacet.facetFunctionSelectors()](https://docs.cryptolegacy.app/documentation/functions-reference#facetfunctionselectors-dlf1)

**Notes / Edge cases:** None

### DiamondStorage (LD1-S3)

**Type:** `struct` **Fields:**

* `selectorToFacetAndPosition (mapping(bytes4 => FacetAddressAndPosition))`: Selector to facet mapping.
* `facetFunctionSelectors (mapping(address => FacetFunctionSelectors))`: Facet to selectors mapping.
* `facetAddresses (address[])`: List of facet addresses.
* `supportedInterfaces (mapping(bytes4 => bool))`: ERC165 interface support mapping.
* `contractOwner (address)`: Diamond owner address.

**Used by:**

* [LibDiamond.diamondStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#diamondstorage-ld1)
* [DiamondLoupeFacet.facets()](https://docs.cryptolegacy.app/documentation/functions-reference#facets-dlf1)
* [DiamondLoupeFacet.facetAddresses()](https://docs.cryptolegacy.app/documentation/functions-reference#facetaddresses-dlf1)
* [DiamondLoupeFacet.facetAddress()](https://docs.cryptolegacy.app/documentation/functions-reference#facetaddress-dlf1)

**Notes / Edge cases:** None

## LibSafeMinimalBeneficiaryMultisig (LSMB1)

**No tracked data items in this contract/library.**

## LibSafeMinimalMultisig (LSM1)

**No tracked data items in this contract/library.**

## LibTrustedGuardiansPlugin (LTGP1)

### PLUGIN\_POSITION (LTGP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** internal, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for TrustedGuardians plugin storage.

**Modified by:** None

**Read by:**

* [LibTrustedGuardiansPlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-ltgp1)

## BeneficiaryAaveV3SupplyPlugin (BALP1)

### PLUGIN\_MULTISIG\_POSITION (BALP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for the Aave beneficiary-plugin multisig storage.

**Modified by:** None

**Read by:**

* [BeneficiaryAaveV3SupplyPlugin.getPluginMultisigStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmultisigstorage-balp1)

### POOL (BALP1-D2)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** Aave V3 Pool address used for supply and withdrawal operations.

**Modified by:**

* [BeneficiaryAaveV3SupplyPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-balp1)

**Read by:**

* [BeneficiaryAaveV3SupplyPlugin.baavesSupply()](https://docs.cryptolegacy.app/documentation/functions-reference#baavessupply-balp1)
* [BeneficiaryAaveV3SupplyPlugin.baavesWithdraw()](https://docs.cryptolegacy.app/documentation/functions-reference#baaveswithdraw-balp1)

### POOL\_DATA\_PROVIDER (BALP1-D3)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** PoolDataProvider address used to resolve the reserve's aToken address.

**Modified by:**

* [BeneficiaryAaveV3SupplyPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-balp1)

**Read by:**

* [BeneficiaryAaveV3SupplyPlugin.\_getAToken()](https://docs.cryptolegacy.app/documentation/functions-reference#_getatoken-balp1)

### STATA\_TOKEN\_FACTORY (BALP1-D4)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** StataToken factory used to resolve the wrapper for a given reserve asset.

**Modified by:**

* [BeneficiaryAaveV3SupplyPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-balp1)

**Read by:**

* [BeneficiaryAaveV3SupplyPlugin.\_getStataToken()](https://docs.cryptolegacy.app/documentation/functions-reference#_getstatatoken-balp1)

### DEFAULT\_REFERRAL\_CODE (BALP1-D5)

**Data Type:** `uint16` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** Default Aave referral code used when `baavesSupply()` receives `0` as the requested referral code.

**Modified by:**

* [BeneficiaryAaveV3SupplyPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-balp1)

**Read by:**

* [BeneficiaryAaveV3SupplyPlugin.baavesSupply()](https://docs.cryptolegacy.app/documentation/functions-reference#baavessupply-balp1)

## BeneficiaryLidoStakingPlugin (BLSP1)

### LidoWithdrawalStorage (BLSP1-S1)

**Type:** `struct` **Fields:**

* `pendingRequestIds (uint256[])`: Withdrawal-queue request IDs waiting to be claimed or abandoned.

**Used by:**

* [BeneficiaryLidoStakingPlugin.getLidoWithdrawalStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getlidowithdrawalstorage-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoGetPendingRequestIds()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidogetpendingrequestids-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoClaimWithdrawals()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidoclaimwithdrawals-blsp1)
* [BeneficiaryLidoStakingPlugin.\_storeLidoRequestIds()](https://docs.cryptolegacy.app/documentation/functions-reference#_storelidorequestids-blsp1)

**Notes / Edge cases:** Cleared after successful claims and when `blsLidoAbandonMigration()` abandons the pending migration.

### BeneficiarySwitchGuardStorage (BLSP1-S2)

**Type:** `struct` **Fields:**

* `active (bool)`: Whether beneficiary switching is currently frozen.
* `snapshotOriginalHashes (bytes32[])`: Original beneficiary hashes captured before the guard was activated.
* `timelockBeforeByOriginal (mapping (bytes32 => uint64))`: Timelocks that must be restored after the pending migration completes or is abandoned.

**Used by:**

* [BeneficiaryLidoStakingPlugin.getBeneficiarySwitchGuardStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getbeneficiaryswitchguardstorage-blsp1)
* [BeneficiaryLidoStakingPlugin.\_activateBeneficiarySwitchGuard()](https://docs.cryptolegacy.app/documentation/functions-reference#_activatebeneficiaryswitchguard-blsp1)
* [BeneficiaryLidoStakingPlugin.\_releaseBeneficiarySwitchGuard()](https://docs.cryptolegacy.app/documentation/functions-reference#_releasebeneficiaryswitchguard-blsp1)

**Notes / Edge cases:** While active, beneficiary-switch timelocks are temporarily set to `type(uint64).max` to block switching during pending migrations.

### PLUGIN\_MULTISIG\_POSITION (BLSP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for the Lido beneficiary-plugin multisig storage.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.getPluginMultisigStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmultisigstorage-blsp1)

### PLUGIN\_PENDING\_MIGRATION\_POSITION (BLSP1-D2)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for the plugin-local pending-migration storage.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.getPendingMigrationStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpendingmigrationstorage-blsp1)

### PLUGIN\_LIDO\_WITHDRAWAL\_POSITION (BLSP1-D3)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for pending Lido withdrawal request IDs.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.getLidoWithdrawalStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getlidowithdrawalstorage-blsp1)

### PLUGIN\_BENEFICIARY\_SWITCH\_GUARD\_POSITION (BLSP1-D4)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for the temporary beneficiary-switch guard used during two-step migrations.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.getBeneficiarySwitchGuardStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getbeneficiaryswitchguardstorage-blsp1)

### WETH (BLSP1-D5)

**Data Type:** `address` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Canonical WETH token address used before unwrapping and after successful claim wrapping.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoStakeWethToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidostakewethtosteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoWrapWethToWstEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidowrapwethtowsteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoRequestStEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequeststethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoRequestWstEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequestwstethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoClaimWithdrawals()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidoclaimwithdrawals-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoUnsafeClaimWithdrawals()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidounsafeclaimwithdrawals-blsp1)

### stETH (BLSP1-D6)

**Data Type:** `address` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Canonical stETH token address used for staking, withdrawal requests, and Lido-side claim migration.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoStakeWethToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidostakewethtosteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoRequestStEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequeststethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoWrapStEthToWstEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidowrapstethtowsteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoUnwrapWstEthToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidounwrapwstethtosteth-blsp1)

### wstETH (BLSP1-D7)

**Data Type:** `address` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Canonical wrapped-stETH token address used for direct wrapping, unwrapping, and withdrawal requests.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoWrapWethToWstEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidowrapwethtowsteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoRequestWstEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequestwstethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoWrapStEthToWstEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidowrapstethtowsteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoUnwrapWstEthToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidounwrapwstethtosteth-blsp1)

### LIDO\_WITHDRAWAL\_QUEUE (BLSP1-D8)

**Data Type:** `address` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Lido withdrawal-queue address used to request and claim finalized withdrawals.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoRequestStEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequeststethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoRequestWstEthWithdrawal()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidorequestwstethwithdrawal-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoClaimWithdrawals()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidoclaimwithdrawals-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoUnsafeClaimWithdrawals()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidounsafeclaimwithdrawals-blsp1)

### WETH\_UNWRAP (BLSP1-D9)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** Helper contract address used to unwrap WETH into native ETH before Lido-side operations.

**Modified by:**

* [BeneficiaryLidoStakingPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-blsp1)

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoStakeWethToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidostakewethtosteth-blsp1)
* [BeneficiaryLidoStakingPlugin.blsLidoWrapWethToWstEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidowrapwethtowsteth-blsp1)

### LIDO\_REFERRAL (BLSP1-D10)

**Data Type:** `address` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Default zero-address referral used when the staking caller does not provide a custom Lido referral.

**Modified by:** None

**Read by:**

* [BeneficiaryLidoStakingPlugin.blsLidoStakeWethToStEth()](https://docs.cryptolegacy.app/documentation/functions-reference#blslidostakewethtosteth-blsp1)

## BeneficiaryPluginAddRights (BPAR1)

### PLUGIN\_MULTISIG\_POSITION (BPAR1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for beneficiary add-rights multisig storage.

**Modified by:** None

**Read by:**

* [BeneficiaryPluginAddRights.getPluginMultisigStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmultisigstorage-bpar1)

## BeneficiaryUniswapV4SwapPlugin (BU4SP1)

### PoolKey (BU4SP1-S1)

**Type:** `struct` **Fields:**

* `currency0 (address)`: First currency address in the selected Uniswap V4 pool.
* `currency1 (address)`: Second currency address in the selected Uniswap V4 pool.
* `fee (uint24)`: Pool fee tier.
* `tickSpacing (int24)`: Tick spacing configured for the pool.
* `hooks (address)`: Hook contract address for the pool.

**Used by:**

* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInputSingle()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinputsingle-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)

**Notes / Edge cases:** None

### PathKey (BU4SP1-S2)

**Type:** `struct` **Fields:**

* `intermediateCurrency (address)`: Currency received after this hop.
* `fee (uint24)`: Fee tier for this hop.
* `tickSpacing (int24)`: Tick spacing configured for this hop's pool.
* `hooks (address)`: Hook contract address for this hop.
* `hookData (bytes)`: Hook payload forwarded to the Universal Router.

**Used by:**

* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInput()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinput-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

**Notes / Edge cases:** None

### ExactInputSingleParams (BU4SP1-S3)

**Type:** `struct` **Fields:**

* `poolKey (PoolKey)`: Single-hop pool definition.
* `zeroForOne (bool)`: Swap direction flag.
* `amountIn (uint128)`: Exact input amount.
* `amountOutMinimum (uint128)`: Minimum output expected from the swap.
* `hookData (bytes)`: Arbitrary hook payload passed to the router.

**Used by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)

**Notes / Edge cases:** None

### ExactInputParams (BU4SP1-S4)

**Type:** `struct` **Fields:**

* `currencyIn (address)`: Input currency for the first hop.
* `path (PathKey[])`: Hop-by-hop route description.
* `maxHopSlippage (uint256[])`: Optional hop-level slippage caps.
* `amountIn (uint128)`: Exact input amount.
* `amountOutMinimum (uint128)`: Minimum output expected after the full route.

**Used by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

**Notes / Edge cases:** The live implementation currently initializes `maxHopSlippage` as an empty array.

### PLUGIN\_MULTISIG\_POSITION (BU4SP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for the Uniswap V4 beneficiary-plugin multisig storage.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.getPluginMultisigStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmultisigstorage-bu4sp1)

### V4\_SWAP (BU4SP1-D2)

**Data Type:** `uint8` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Universal Router command byte that enters the Uniswap V4 action dispatcher.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

### SWAP\_EXACT\_IN\_SINGLE (BU4SP1-D3)

**Data Type:** `uint8` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Universal Router action byte for the single-hop exact-input swap flow.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)

### SWAP\_EXACT\_IN (BU4SP1-D4)

**Data Type:** `uint8` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Universal Router action byte for the multi-hop exact-input swap flow.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

### SETTLE\_ALL (BU4SP1-D5)

**Data Type:** `uint8` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Universal Router action byte that settles all inputs before taking swap outputs.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

### TAKE\_ALL (BU4SP1-D6)

**Data Type:** `uint8` **Visibility / Mutability:** private, constant **Storage Location:** inlined constant **Description:** Universal Router action byte that withdraws the full swap proceeds after execution.

**Modified by:** None

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

### UNIVERSAL\_ROUTER (BU4SP1-D7)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** Universal Router address used to execute encoded Uniswap V4 swap command sequences.

**Modified by:**

* [BeneficiaryUniswapV4SwapPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-bu4sp1)

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInputSingle()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinputsingle-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInput()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinput-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputSingleRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputsinglerouter-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.\_executeExactInputRouter()](https://docs.cryptolegacy.app/documentation/functions-reference#_executeexactinputrouter-bu4sp1)

### PERMIT2 (BU4SP1-D8)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** Permit2 contract address used to authorize the Universal Router to spend the plugin's tokens.

**Modified by:**

* [BeneficiaryUniswapV4SwapPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-bu4sp1)

**Read by:**

* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInputSingle()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinputsingle-bu4sp1)
* [BeneficiaryUniswapV4SwapPlugin.bunisSwapExactInput()](https://docs.cryptolegacy.app/documentation/functions-reference#bunisswapexactinput-bu4sp1)

## CryptoLegacyBasePlugin (CLBP1)

**No tracked data items in this contract/library.**

## LegacyRecoveryPlugin (LRP1)

### PLUGIN\_MULTISIG\_POSITION (LRP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for legacy recovery multisig storage.

**Modified by:** None

**Read by:**

* [LegacyRecoveryPlugin.getPluginMultisigStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginmultisigstorage-lrp1)

## LensPlugin (LP1)

**No tracked data items in this contract/library.**

## NftLegacyPlugin (NLP1)

### PLUGIN\_POSITION (NLP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for NFT legacy plugin storage.

**Modified by:** None

**Read by:**

* [NftLegacyPlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-nlp1)

### NftBeneficiary (NLP1-S1)

**Type:** `struct` **Fields:**

* `addressHash (bytes32)`: Beneficiary address hash.
* `claimDelay (uint64)`: Claim delay duration.

**Used by:**

* [NftLegacyPlugin.setNftBeneficiary()](https://docs.cryptolegacy.app/documentation/functions-reference#setnftbeneficiary-nlp1)
* [NftLegacyPlugin.beneficiaryClaimNft()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaimnft-nlp1)

**Notes / Edge cases:** None

### PluginStorage (NLP1-S2)

**Type:** `struct` **Fields:**

* `nftBeneficiary (mapping (address => mapping (uint256 => NftBeneficiary)))`: NFT beneficiary data by owner and token id.

**Used by:**

* [NftLegacyPlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-nlp1)
* [NftLegacyPlugin.setNftBeneficiary()](https://docs.cryptolegacy.app/documentation/functions-reference#setnftbeneficiary-nlp1)
* [NftLegacyPlugin.beneficiaryClaimNft()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaimnft-nlp1)

**Notes / Edge cases:** None

## ReceiveEthPlugin (REP1)

### WETH (REP1-D1)

**Data Type:** `address` **Visibility / Mutability:** public, immutable **Storage Location:** inlined immutable **Description:** WETH contract address used when wrapping received ETH into the ERC-20 form.

**Modified by:**

* [ReceiveEthPlugin.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-rep1)

**Read by:**

* [ReceiveEthPlugin.wrapEthToWeth()](https://docs.cryptolegacy.app/documentation/functions-reference#wrapethtoweth-rep1)

## TrustedGuardiansPlugin (TGP1)

### DEFAULT\_GUARDIANS\_CHALLENGE\_TIMEOUT (TGP1-D1)

**Data Type:** `uint64` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** Default 30-day guardians challenge timeout returned when no custom timeout is configured.

**Modified by:** None

**Read by:**

* [TrustedGuardiansPlugin.\_getGuardiansChallengeTimeout()](https://docs.cryptolegacy.app/documentation/functions-reference#_getguardianschallengetimeout-tgp1)

### MAX\_GUARDIANS\_CHALLENGE\_TIMEOUT (TGP1-D2)

**Data Type:** `uint64` **Visibility / Mutability:** public, constant **Storage Location:** inlined constant **Description:** 30-day upper bound for configured guardians challenge timeouts.

**Modified by:** None

**Read by:**

* [TrustedGuardiansPlugin.\_setGuardiansConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#_setguardiansconfig-tgp1)

## UpdateRolePlugin (URP1)

### PLUGIN\_POSITION (URP1-D1)

**Data Type:** `bytes32` **Visibility / Mutability:** public, constant **Storage Location:** diamond storage slot **Description:** Storage slot identifier for update role plugin storage.

**Modified by:** None

**Read by:**

* [UpdateRolePlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-urp1)

### PluginStorage (URP1-S1)

**Type:** `struct` **Fields:**

* `updaters (EnumerableSet.AddressSet)`: Set of updater addresses.

**Used by:**

* [UpdateRolePlugin.getPluginStorage()](https://docs.cryptolegacy.app/documentation/functions-reference#getpluginstorage-urp1)
* [UpdateRolePlugin.getUpdaterList()](https://docs.cryptolegacy.app/documentation/functions-reference#getupdaterlist-urp1)
* [UpdateRolePlugin.isUpdater()](https://docs.cryptolegacy.app/documentation/functions-reference#isupdater-urp1)
* [UpdateRolePlugin.setUpdater()](https://docs.cryptolegacy.app/documentation/functions-reference#setupdater-urp1)
* [UpdateRolePlugin.updateByUpdater()](https://docs.cryptolegacy.app/documentation/functions-reference#updatebyupdater-urp1)

**Notes / Edge cases:** None

## Data Types Used

* `struct`
* `enum`
* `mapping`
* `EnumerableSet.AddressSet`
* `EnumerableSet.Bytes32Set`
* `EnumerableSet.UintSet`
* `address`
* `bool`
* `bytes`
* `bytes4`
* `bytes8`
* `bytes32`
* `string`
* `uint8`
* `uint16`
* `uint32`
* `uint64`
* `uint96`
* `uint128`
* `uint256`
* `address[]`
* `bytes32[]`
* `bytes4[]`
* `uint64[]`
* `uint256[]`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.cryptolegacy.app/documentation/data-structures-reference.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.
