> 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/events-reference.md).

# Contracts Events

## Table of Contents

1. [BeneficiaryRegistry (BR1)](#beneficiaryregistry-br1)
2. [BuildManagerOwnable (BMO1)](#buildmanagerownable-bmo1)
3. [Create3Factory (C3F1)](#create3factory-c3f1)
   * [Create3Contract (C3F1)](#create3contract-c3f1)
4. [CryptoLegacy (CL1)](#cryptolegacy-cl1)
5. [CryptoLegacyBuildManager (CLBM1)](#cryptolegacybuildmanager-clbm1)
6. [CryptoLegacyDiamondBase (CLDB1)](#cryptolegacydiamondbase-cldb1)
7. [CryptoLegacyExternalLens (CLEXL1)](#cryptolegacyexternallens-clexl1)
8. [CryptoLegacyFactory (CLF1)](#cryptolegacyfactory-clf1)
9. [CryptoLegacyOwnable (CLO1)](#cryptolegacyownable-clo1)
10. [FeeRegistry (FR1)](#feeregistry-fr1)
11. [LegacyMessenger (LM1)](#legacymessenger-lm1)
12. [LifetimeNft (LN1)](#lifetimenft-ln1)
    * [SetBaseURI (LN1)](#setbaseuri-ln1)
    * [SetMinterOperator (LN1)](#setminteroperator-ln1)
13. [LockChainGate (LCG1)](#lockchaingate-lcg1)
14. [MultiPermit (MP1)](#multipermit-mp1)
15. [PluginsRegistry (PR1)](#pluginsregistry-pr1)
16. [ProxyBuilder (PB1)](#proxybuilder-pb1)
    * [Build (PB1)](#build-pb1)
    * [SetProxyAdmin (PB1)](#setproxyadmin-pb1)
17. [ProxyBuilderAdmin (PBA1)](#proxybuilderadmin-pba1)
18. [SignatureRoleTimelock (SRT1)](#signatureroletimelock-srt1)
19. [ArbSys (AS1)](#arbsys-as1)
20. [Flags (FLG1)](#flags-flg1)
21. [IAaveV3Pool (IAV3P1)](#iaavev3pool-iav3p1)
22. [IAaveV3PoolDataProvider (IAV3PDP1)](#iaavev3pooldataprovider-iav3pdp1)
23. [WethUnwrap (WU1)](#wethunwrap-wu1)
24. [IBeneficiaryRegistry (IBR1)](#ibeneficiaryregistry-ibr1)
    * [AddCryptoLegacyForBeneficiary (IBR1)](#addcryptolegacyforbeneficiary-ibr1)
    * [RemoveCryptoLegacyForBeneficiary (IBR1)](#removecryptolegacyforbeneficiary-ibr1)
    * [AddCryptoLegacyForGuardian (IBR1)](#addcryptolegacyforguardian-ibr1)
    * [RemoveCryptoLegacyForGuardian (IBR1)](#removecryptolegacyforguardian-ibr1)
    * [AddCryptoLegacyForRecovery (IBR1)](#addcryptolegacyforrecovery-ibr1)
    * [RemoveCryptoLegacyForRecovery (IBR1)](#removecryptolegacyforrecovery-ibr1)
    * [AddCryptoLegacyForOwner (IBR1)](#addcryptolegacyforowner-ibr1)
    * [RemoveCryptoLegacyForOwner (IBR1)](#removecryptolegacyforowner-ibr1)
25. [IBuildManagerOwnable (IBMO1)](#ibuildmanagerownable-ibmo1)
    * [AddBuildManager (IBMO1)](#addbuildmanager-ibmo1)
    * [RemoveBuildManager (IBMO1)](#removebuildmanager-ibmo1)
26. [ICallProxy (ICP1)](#icallproxy-icp1)
27. [ICryptoLegacy (ICL1)](#icryptolegacy-icl1)
    * [PauseSet (ICL1)](#pauseset-icl1)
    * [Update (ICL1)](#update-icl1)
    * [FeePaidByLifetime (ICL1)](#feepaidbylifetime-icl1)
    * [FeePaidByDefault (ICL1)](#feepaidbydefault-icl1)
    * [FeePaidByTransfer (ICL1)](#feepaidbytransfer-icl1)
    * [FeeSentToRefByTransfer (ICL1)](#feesenttorefbytransfer-icl1)
    * [BeneficiaryClaim (ICL1)](#beneficiaryclaim-icl1)
    * [BeneficiaryClaimAmountDecrease (ICL1)](#beneficiaryclaimamountdecrease-icl1)
    * [TransferTreasuryTokensToLegacy (ICL1)](#transfertreasurytokenstolegacy-icl1)
    * [TransferTokensFromLegacy (ICL1)](#transfertokensfromlegacy-icl1)
    * [SetGasLimitMultiplier (ICL1)](#setgaslimitmultiplier-icl1)
    * [AddFunctions (ICL1)](#addfunctions-icl1)
    * [RemoveFunctions (ICL1)](#removefunctions-icl1)
    * [SkipSendFeeByTransfer (ICL1)](#skipsendfeebytransfer-icl1)
    * [IsLifetimeNftLockedAndUpdateCatch (ICL1)](#islifetimenftlockedandupdatecatch-icl1)
    * [GetUpdateFeeCatch (ICL1)](#getupdatefeecatch-icl1)
    * [PayFeeCatch (ICL1)](#payfeecatch-icl1)
    * [SetCryptoLegacyOwnerCatch (ICL1)](#setcryptolegacyownercatch-icl1)
    * [SetCryptoLegacyBeneficiaryCatch (ICL1)](#setcryptolegacybeneficiarycatch-icl1)
    * [SetCryptoLegacyGuardianCatch (ICL1)](#setcryptolegacyguardiancatch-icl1)
    * [SetCryptoLegacyRecoveryAddressesCatch (ICL1)](#setcryptolegacyrecoveryaddressescatch-icl1)
    * [BeneficiaryRegistryCatch (ICL1)](#beneficiaryregistrycatch-icl1)
    * [BeneficiaryRegistryNotDefined (ICL1)](#beneficiaryregistrynotdefined-icl1)
28. [ICryptoLegacyBuildManager (ICLBM1)](#icryptolegacybuildmanager-iclbm1)
    * [CreateRef (ICLBM1)](#createref-iclbm1)
    * [CreateCustomRef (ICLBM1)](#createcustomref-iclbm1)
    * [SetCrossChainsRef (ICLBM1)](#setcrosschainsref-iclbm1)
    * [WithdrawFee (ICLBM1)](#withdrawfee-iclbm1)
    * [SetRegistries (ICLBM1)](#setregistries-iclbm1)
    * [SetFactory (ICLBM1)](#setfactory-iclbm1)
    * [SetSupplyLimit (ICLBM1)](#setsupplylimit-iclbm1)
    * [SetExternalLens (ICLBM1)](#setexternallens-iclbm1)
    * [PaidForMint (ICLBM1)](#paidformint-iclbm1)
    * [PaidForMultipleNft (ICLBM1)](#paidformultiplenft-iclbm1)
    * [Build (ICLBM1)](#build-iclbm1)
29. [ICryptoLegacyDiamondBase (ICLDB1)](#icryptolegacydiamondbase-icldb1)
    * [StaticCallCheck (ICLDB1)](#staticcallcheck-icldb1)
30. [ICryptoLegacyFactory (ICLF1)](#icryptolegacyfactory-iclf1)
    * [AddBuildOperator (ICLF1)](#addbuildoperator-iclf1)
    * [RemoveBuildOperator (ICLF1)](#removebuildoperator-iclf1)
31. [ICryptoLegacyLens (ICLL1)](#icryptolegacylens-icll1)
32. [ICryptoLegacyOwnable (ICLO1)](#icryptolegacyownable-iclo1)
    * [OwnershipTransferStarted (ICLO1)](#ownershiptransferstarted-iclo1)
    * [OwnershipTransferred (ICLO1)](#ownershiptransferred-iclo1)
33. [ICryptoLegacyPlugin (ICLP1)](#icryptolegacyplugin-iclp1)
34. [ICryptoLegacyUpdaterPlugin (ICLUP1)](#icryptolegacyupdaterplugin-iclup1)
    * [AddUpdater (ICLUP1)](#addupdater-iclup1)
    * [RemoveUpdater (ICLUP1)](#removeupdater-iclup1)
35. [IDeBridgeGate (IDBG1)](#idebridgegate-idbg1)
    * [Sent (IDBG1)](#sent-idbg1)
    * [Claimed (IDBG1)](#claimed-idbg1)
    * [PairAdded (IDBG1)](#pairadded-idbg1)
    * [MonitoringSendEvent (IDBG1)](#monitoringsendevent-idbg1)
    * [MonitoringClaimEvent (IDBG1)](#monitoringclaimevent-idbg1)
    * [ChainSupportUpdated (IDBG1)](#chainsupportupdated-idbg1)
    * [ChainsSupportUpdated (IDBG1)](#chainssupportupdated-idbg1)
    * [CallProxyUpdated (IDBG1)](#callproxyupdated-idbg1)
    * [AutoRequestExecuted (IDBG1)](#autorequestexecuted-idbg1)
    * [Blocked (IDBG1)](#blocked-idbg1)
    * [Unblocked (IDBG1)](#unblocked-idbg1)
    * [WithdrawnFee (IDBG1)](#withdrawnfee-idbg1)
    * [FixedNativeFeeUpdated (IDBG1)](#fixednativefeeupdated-idbg1)
    * [FixedNativeFeeAutoUpdated (IDBG1)](#fixednativefeeautoupdated-idbg1)
36. [IDiamondCut (IDC1)](#idiamondcut-idc1)
    * [DiamondCut (IDC1)](#diamondcut-idc1)
37. [IDiamondLoupe (IDL1)](#idiamondloupe-idl1)
38. [IFeeRegistry (IFR1)](#ifeeregistry-ifr1)
    * [AddCodeOperator (IFR1)](#addcodeoperator-ifr1)
    * [RemoveCodeOperator (IFR1)](#removecodeoperator-ifr1)
    * [SetDefaultPct (IFR1)](#setdefaultpct-ifr1)
    * [SetRefererSpecificPct (IFR1)](#setrefererspecificpct-ifr1)
    * [SetContractCaseFee (IFR1)](#setcontractcasefee-ifr1)
    * [TakeFee (IFR1)](#takefee-ifr1)
    * [SentFee (IFR1)](#sentfee-ifr1)
    * [AccumulateFee (IFR1)](#accumulatefee-ifr1)
    * [CreateCode (IFR1)](#createcode-ifr1)
    * [UpdateCode (IFR1)](#updatecode-ifr1)
    * [ChangeCode (IFR1)](#changecode-ifr1)
    * [ChangeRecipient (IFR1)](#changerecipient-ifr1)
    * [SetCrossChainsRef (IFR1)](#setcrosschainsref-ifr1)
    * [SetFeeBeneficiaries (IFR1)](#setfeebeneficiaries-ifr1)
    * [AddSupportedRefCodeInChain (IFR1)](#addsupportedrefcodeinchain-ifr1)
    * [RemoveSupportedRefCodeInChain (IFR1)](#removesupportedrefcodeinchain-ifr1)
    * [WithdrawFee (IFR1)](#withdrawfee-ifr1)
    * [WithdrawRefFee (IFR1)](#withdrawreffee-ifr1)
39. [ILockChainGate (ILCG1)](#ilockchaingate-ilcg1)
    * [AddLockOperator (ILCG1)](#addlockoperator-ilcg1)
    * [RemoveLockOperator (ILCG1)](#removelockoperator-ilcg1)
    * [SetDestinationChainContract (ILCG1)](#setdestinationchaincontract-ilcg1)
    * [SetSourceChainContract (ILCG1)](#setsourcechaincontract-ilcg1)
    * [SetDeBridgeGate (ILCG1)](#setdebridgegate-ilcg1)
    * [SetDeBridgeNativeFee (ILCG1)](#setdebridgenativefee-ilcg1)
    * [SetLockPeriodConfig (ILCG1)](#setlockperiodconfig-ilcg1)
    * [SendToChain (ILCG1)](#sendtochain-ilcg1)
    * [LockNft (ILCG1)](#locknft-ilcg1)
    * [UnlockNft (ILCG1)](#unlocknft-ilcg1)
    * [ApproveNft (ILCG1)](#approvenft-ilcg1)
    * [TransferNft (ILCG1)](#transfernft-ilcg1)
    * [LockToChain (ILCG1)](#locktochain-ilcg1)
    * [UpdateLockToChain (ILCG1)](#updatelocktochain-ilcg1)
    * [Update (ILCG1)](#update-ilcg1)
    * [UnlockFromChain (ILCG1)](#unlockfromchain-ilcg1)
    * [CrossLockNft (ILCG1)](#crosslocknft-ilcg1)
    * [CrossUnlockNft (ILCG1)](#crossunlocknft-ilcg1)
    * [CrossUpdateNftOwner (ILCG1)](#crossupdatenftowner-ilcg1)
    * [SetReferralCode (ILCG1)](#setreferralcode-ilcg1)
    * [SetCustomChainId (ILCG1)](#setcustomchainid-ilcg1)
40. [ILegacyMessenger (ILM1)](#ilegacymessenger-ilm1)
    * [LegacyMessage (ILM1)](#legacymessage-ilm1)
    * [LegacyMessageCheck (ILM1)](#legacymessagecheck-ilm1)
41. [ILido (ILD1)](#ilido-ild1)
42. [ILidoWithdrawalQueue (ILWQ1)](#ilidowithdrawalqueue-ilwq1)
43. [ILifetimeNft (ILN1)](#ilifetimenft-iln1)
44. [IPermit2 (IPM21)](#ipermit2-ipm21)
45. [IPluginsRegistry (IPR1)](#ipluginsregistry-ipr1)
    * [AddPlugin (IPR1)](#addplugin-ipr1)
    * [AddPluginDescription (IPR1)](#addplugindescription-ipr1)
    * [RemovePlugin (IPR1)](#removeplugin-ipr1)
46. [ISafeMinimalMultisig (ISM1)](#isafeminimalmultisig-ism1)
    * [CreateSafeMinimalMultisigProposal (ISM1)](#createsafeminimalmultisigproposal-ism1)
    * [CancelSafeMinimalMultisigProposal (ISM1)](#cancelsafeminimalmultisigproposal-ism1)
    * [ConfirmSafeMinimalMultisigProposal (ISM1)](#confirmsafeminimalmultisigproposal-ism1)
    * [ExecuteSafeMinimalMultisigProposal (ISM1)](#executesafeminimalmultisigproposal-ism1)
    * [SetVotersAndConfirmations (ISM1)](#setvotersandconfirmations-ism1)
    * [SetConfirmations (ISM1)](#setconfirmations-ism1)
    * [AddHeldEth (ISM1)](#addheldeth-ism1)
    * [WithdrawHeldEth (ISM1)](#withdrawheldeth-ism1)
47. [ISignatureRoleTimelock (ISRT1)](#isignatureroletimelock-isrt1)
    * [SetMaxExecutionPeriod (ISRT1)](#setmaxexecutionperiod-isrt1)
    * [AddRoleAccount (ISRT1)](#addroleaccount-isrt1)
    * [RemoveRoleAccount (ISRT1)](#removeroleaccount-isrt1)
    * [AddSignatureRole (ISRT1)](#addsignaturerole-isrt1)
    * [RemoveSignatureRole (ISRT1)](#removesignaturerole-isrt1)
    * [AddTarget (ISRT1)](#addtarget-isrt1)
    * [RemoveTarget (ISRT1)](#removetarget-isrt1)
    * [CallScheduled (ISRT1)](#callscheduled-isrt1)
    * [CallExecuted (ISRT1)](#callexecuted-isrt1)
    * [CallCanceled (ISRT1)](#callcanceled-isrt1)
48. [IStataToken (ISTA1)](#istatatoken-ista1)
49. [IStataTokenFactory (ISTF1)](#istatatokenfactory-istf1)
50. [ITrustedGuardiansPlugin (ITGP1)](#itrustedguardiansplugin-itgp1)
    * [SetGuardian (ITGP1)](#setguardian-itgp1)
    * [GuardiansVoteForDistribution (ITGP1)](#guardiansvotefordistribution-itgp1)
    * [GuardiansDistributionStartSet (ITGP1)](#guardiansdistributionstartset-itgp1)
    * [SetGuardiansConfig (ITGP1)](#setguardiansconfig-itgp1)
    * [ResetGuardiansVoting (ITGP1)](#resetguardiansvoting-itgp1)
    * [ClearGuardiansVoted (ITGP1)](#clearguardiansvoted-itgp1)
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)
58. [LibOneStepClaimMigration (LOSCM1)](#libonestepclaimmigration-loscm1)
59. [LibTwoStepClaimMigration (LTSCM1)](#libtwostepclaimmigration-ltscm1)
60. [LibCreate3 (LC31)](#libcreate3-lc31)
61. [LibCryptoLegacy (LCL1)](#libcryptolegacy-lcl1)
62. [LibCryptoLegacyDeploy (LCLD1)](#libcryptolegacydeploy-lcld1)
    * [CryptoLegacyCreation (LCLD1)](#cryptolegacycreation-lcld1)
63. [LibCryptoLegacyPlugins (LCLP1)](#libcryptolegacyplugins-lclp1)
64. [LibDiamond (LD1)](#libdiamond-ld1)
    * [OwnershipTransferred (LD1)](#ownershiptransferred-ld1)
    * [DiamondCut (LD1)](#diamondcut-ld1)
65. [LibSafeMinimalBeneficiaryMultisig (LSMB1)](#libsafeminimalbeneficiarymultisig-lsmb1)
66. [LibSafeMinimalMultisig (LSM1)](#libsafeminimalmultisig-lsm1)
67. [LibTrustedGuardiansPlugin (LTGP1)](#libtrustedguardiansplugin-ltgp1)
68. [BeneficiaryAaveV3SupplyPlugin (BALP1)](#beneficiaryaavev3supplyplugin-balp1)
    * [AaveSupply (BALP1)](#aavesupply-balp1)
    * [AaveWithdraw (BALP1)](#aavewithdraw-balp1)
    * [WrapATokenToStataToken (BALP1)](#wrapatokentostatatoken-balp1)
    * [UnwrapStataTokenToAToken (BALP1)](#unwrapstatatokentoatoken-balp1)
    * [DepositToStataToken (BALP1)](#deposittostatatoken-balp1)
    * [RedeemFromStataToken (BALP1)](#redeemfromstatatoken-balp1)
69. [BeneficiaryLidoStakingPlugin (BLSP1)](#beneficiarylidostakingplugin-blsp1)
    * [StakeWethToStEth (BLSP1)](#stakewethtosteth-blsp1)
    * [WrapWethToWstEth (BLSP1)](#wrapwethtowsteth-blsp1)
    * [RequestStEthWithdrawal (BLSP1)](#requeststethwithdrawal-blsp1)
    * [RequestWstEthWithdrawal (BLSP1)](#requestwstethwithdrawal-blsp1)
    * [ClaimWithdrawals (BLSP1)](#claimwithdrawals-blsp1)
    * [UnsafeClaimWithdrawals (BLSP1)](#unsafeclaimwithdrawals-blsp1)
    * [AbandonMigration (BLSP1)](#abandonmigration-blsp1)
70. [BeneficiaryPluginAddRights (BPAR1)](#beneficiarypluginaddrights-bpar1)
71. [BeneficiaryUniswapV4SwapPlugin (BU4SP1)](#beneficiaryuniswapv4swapplugin-bu4sp1)
    * [UniswapV4SwapExactInputSingle (BU4SP1)](#uniswapv4swapexactinputsingle-bu4sp1)
    * [UniswapV4SwapExactInput (BU4SP1)](#uniswapv4swapexactinput-bu4sp1)
72. [CryptoLegacyBasePlugin (CLBP1)](#cryptolegacybaseplugin-clbp1)
    * [SetBeneficiary (CLBP1)](#setbeneficiary-clbp1)
    * [SwitchBeneficiary (CLBP1)](#switchbeneficiary-clbp1)
    * [ChallengeInitiate (CLBP1)](#challengeinitiate-clbp1)
    * [BeneficiaryMessage (CLBP1)](#beneficiarymessage-clbp1)
    * [BeneficiaryMessageCheck (CLBP1)](#beneficiarymessagecheck-clbp1)
73. [LegacyRecoveryPlugin (LRP1)](#legacyrecoveryplugin-lrp1)
74. [LensPlugin (LP1)](#lensplugin-lp1)
75. [NftLegacyPlugin (NLP1)](#nftlegacyplugin-nlp1)
    * [SetNftBeneficiary (NLP1)](#setnftbeneficiary-nlp1)
    * [BeneficiaryClaimNft (NLP1)](#beneficiaryclaimnft-nlp1)
    * [TransferNftToCryptoLegacy (NLP1)](#transfernfttocryptolegacy-nlp1)
76. [ReceiveEthPlugin (REP1)](#receiveethplugin-rep1)
    * [WrapEthToWeth (REP1)](#wrapethtoweth-rep1)
77. [TrustedGuardiansPlugin (TGP1)](#trustedguardiansplugin-tgp1)
78. [UpdateRolePlugin (URP1)](#updateroleplugin-urp1)
79. [Parameter Types](#parameter-types)

## BeneficiaryRegistry (BR1)

**No events in this contract/library.**

## BuildManagerOwnable (BMO1)

**No events in this contract/library.**

## Create3Factory (C3F1)

### Create3Contract (C3F1)

**Parameters:**

* `contractAddress (address)`: Address of the contract deployed via CREATE3.

**Description:** Emitted after a successful CREATE3 deployment in `build`, providing the deployed contract address.

**Event Signature:** `Create3Contract(address contractAddress)`

**Emitted by:**

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

**Notes / Edge cases:** None

## CryptoLegacy (CL1)

**No events in this contract/library.**

## CryptoLegacyBuildManager (CLBM1)

**No events in this contract/library.**

## CryptoLegacyDiamondBase (CLDB1)

**No events in this contract/library.**

## CryptoLegacyExternalLens (CLEXL1)

**No events in this contract/library.**

## CryptoLegacyFactory (CLF1)

**No events in this contract/library.**

## CryptoLegacyOwnable (CLO1)

**No events in this contract/library.**

## FeeRegistry (FR1)

**No events in this contract/library.**

## LegacyMessenger (LM1)

**No events in this contract/library.**

## LifetimeNft (LN1)

### SetBaseURI (LN1)

**Parameters:**

* `baseURI (string)`: New base URI prefix used by `tokenURI` for all LifetimeNft tokens.

**Description:** Emitted when the LifetimeNft base URI prefix is set or updated (during deployment or via the owner), signaling indexers to refresh token metadata URLs.

**Event Signature:** `SetBaseURI(string baseURI)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetMinterOperator (LN1)

**Parameters:**

* `minter (address, indexed)`: Address whose minting permission is being updated.
* `isActive (bool, indexed)`: `true` to grant minting rights, `false` to revoke them.

**Description:** Emitted when the owner grants or revokes an address’s ability to mint LifetimeNft tokens via the `minterOperator` mapping.

**Event Signature:** `SetMinterOperator(address indexed minter, bool indexed isActive)`

**Emitted by:**

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

**Notes / Edge cases:** None

## LockChainGate (LCG1)

**No events in this contract/library.**

## MultiPermit (MP1)

**No events in this contract/library.**

## PluginsRegistry (PR1)

**No events in this contract/library.**

## ProxyBuilder (PB1)

### Build (PB1)

**Parameters:**

* `proxy (address)`: Address of the newly deployed proxy contract.
* `implementation (address)`: Implementation address set in the new proxy.

**Description:** Emitted after `build` deploys a new `TransparentUpgradeableProxy` via CREATE3 and the address check succeeds.

**Event Signature:** `Build(address proxy, address implementation)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetProxyAdmin (PB1)

**Parameters:**

* `proxyAdmin (address)`: New ProxyAdmin address to manage newly created proxies.

**Description:** Emitted when the owner updates the `proxyAdmin` controller used by ProxyBuilder.

**Event Signature:** `SetProxyAdmin(address proxyAdmin)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ProxyBuilderAdmin (PBA1)

**No events in this contract/library.**

## SignatureRoleTimelock (SRT1)

**No events in this contract/library.**

## ArbSys (AS1)

**No events in this contract/library.**

## Flags (FLG1)

**No events in this contract/library.**

## IAaveV3Pool (IAV3P1)

**No events in this contract/library.**

## IAaveV3PoolDataProvider (IAV3PDP1)

**No events in this contract/library.**

## WethUnwrap (WU1)

**No events in this contract/library.**

## IBeneficiaryRegistry (IBR1)

### AddCryptoLegacyForBeneficiary (IBR1)

**Parameters:**

* `beneficiary (bytes32, indexed)`: Hash of the beneficiary identifier being linked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address added to the registry for this beneficiary.

**Description:** Emitted when the beneficiary registry adds a CryptoLegacy contract under a beneficiary hash via `IBeneficiaryRegistry`.

**Event Signature:** `AddCryptoLegacyForBeneficiary(bytes32 indexed beneficiary, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was already linked to the hash, because `EnumerableSet.add` is idempotent and its return value is ignored.

### RemoveCryptoLegacyForBeneficiary (IBR1)

**Parameters:**

* `beneficiary (bytes32, indexed)`: Hash of the beneficiary identifier being unlinked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address removed from the registry for this beneficiary.

**Description:** Emitted when the beneficiary registry removes a CryptoLegacy contract from a beneficiary hash via `IBeneficiaryRegistry`.

**Event Signature:** `RemoveCryptoLegacyForBeneficiary(bytes32 indexed beneficiary, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was not linked to the hash, because `EnumerableSet.remove` return value is ignored.

### AddCryptoLegacyForGuardian (IBR1)

**Parameters:**

* `guardian (bytes32, indexed)`: Hash of the guardian identifier being linked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address added to the registry for this guardian.

**Description:** Emitted when the beneficiary registry adds a CryptoLegacy contract under a guardian hash via `IBeneficiaryRegistry`.

**Event Signature:** `AddCryptoLegacyForGuardian(bytes32 indexed guardian, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was already linked to the hash, because `EnumerableSet.add` is idempotent and its return value is ignored.

### RemoveCryptoLegacyForGuardian (IBR1)

**Parameters:**

* `guardian (bytes32, indexed)`: Hash of the guardian identifier being unlinked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address removed from the registry for this guardian.

**Description:** Emitted when the beneficiary registry removes a CryptoLegacy contract from a guardian hash via `IBeneficiaryRegistry`.

**Event Signature:** `RemoveCryptoLegacyForGuardian(bytes32 indexed guardian, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was not linked to the hash, because `EnumerableSet.remove` return value is ignored.

### AddCryptoLegacyForRecovery (IBR1)

**Parameters:**

* `recovery (bytes32, indexed)`: Hash of the recovery identifier being linked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address added to the registry for this recovery.

**Description:** Emitted when the beneficiary registry adds a CryptoLegacy contract under a recovery hash via `IBeneficiaryRegistry`.

**Event Signature:** `AddCryptoLegacyForRecovery(bytes32 indexed recovery, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was already linked to the hash, because `EnumerableSet.add` is idempotent and its return value is ignored.

### RemoveCryptoLegacyForRecovery (IBR1)

**Parameters:**

* `recovery (bytes32, indexed)`: Hash of the recovery identifier being unlinked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address removed from the registry for this recovery.

**Description:** Emitted when the beneficiary registry removes a CryptoLegacy contract from a recovery hash via `IBeneficiaryRegistry`.

**Event Signature:** `RemoveCryptoLegacyForRecovery(bytes32 indexed recovery, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was not linked to the hash, because `EnumerableSet.remove` return value is ignored.

### AddCryptoLegacyForOwner (IBR1)

**Parameters:**

* `owner (bytes32, indexed)`: Hash of the owner identifier being linked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address added to the registry for this owner.

**Description:** Emitted when the beneficiary registry adds a CryptoLegacy contract under an owner hash via `IBeneficiaryRegistry`.

**Event Signature:** `AddCryptoLegacyForOwner(bytes32 indexed owner, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was already linked to the hash, because `EnumerableSet.add` is idempotent and its return value is ignored.

### RemoveCryptoLegacyForOwner (IBR1)

**Parameters:**

* `owner (bytes32, indexed)`: Hash of the owner identifier being unlinked.
* `cryptoLegacy (address, indexed)`: CryptoLegacy contract address removed from the registry for this owner.

**Description:** Emitted when the beneficiary registry removes a CryptoLegacy contract from an owner hash via `IBeneficiaryRegistry`.

**Event Signature:** `RemoveCryptoLegacyForOwner(bytes32 indexed owner, address indexed cryptoLegacy)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if `cryptoLegacy` was not linked to the hash, because `EnumerableSet.remove` return value is ignored.

## IBuildManagerOwnable (IBMO1)

### AddBuildManager (IBMO1)

**Parameters:**

* `buildManager (address, indexed)`: Address being added to the allowed build manager set.

**Description:** Emitted when the owner adds a build manager via `setBuildManager` with the add flag set to `true`, updating the allowed build manager set.

**Event Signature:** `AddBuildManager(address indexed buildManager)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if the address was already in the set, because `EnumerableSet.add` is idempotent and the return value is not checked before emitting.

### RemoveBuildManager (IBMO1)

**Parameters:**

* `buildManager (address, indexed)`: Address being removed from the allowed build manager set.

**Description:** Emitted when the owner removes a build manager via `setBuildManager` with the add flag set to `false`, updating the allowed build manager set.

**Event Signature:** `RemoveBuildManager(address indexed buildManager)`

**Emitted by:**

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

**Notes / Edge cases:** Emitted even if the address was not in the set, because `EnumerableSet.remove` is a no-op and its return value is not checked before emitting.

## ICallProxy (ICP1)

**No events in this contract/library.**

## ICryptoLegacy (ICL1)

### PauseSet (ICL1)

**Parameters:**

* `isPaused (bool, indexed)`: New paused state for the CryptoLegacy instance.

**Description:** Emitted when the pause flag is toggled for a CryptoLegacy instance (paused or unpaused).

**Event Signature:** `PauseSet(bool indexed isPaused)`

**Emitted by:**

* [CryptoLegacyOwnable.setPause()](https://docs.cryptolegacy.app/documentation/functions-reference#setpause-clo1)
* [CryptoLegacyBasePlugin.initializeByBuildManager()](https://docs.cryptolegacy.app/documentation/functions-reference#initializebybuildmanager-clbp1)
* [CryptoLegacyBasePlugin.payInitialFee()](https://docs.cryptolegacy.app/documentation/functions-reference#payinitialfee-clbp1)
* [LibCryptoLegacy.\_setPause()](https://docs.cryptolegacy.app/documentation/functions-reference#_setpause-lcl1)

**Notes / Edge cases:** None

### Update (ICL1)

**Parameters:**

* `updateFee (uint256)`: Fee amount recorded for the update.
* `byPlugin (bytes32, indexed)`: Plugin identifier that initiated the update.

**Description:** Emitted after an update operation, recording the fee and the plugin that triggered it.

**Event Signature:** `Update(uint256 updateFee, bytes32 indexed byPlugin)`

**Emitted by:**

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

**Notes / Edge cases:** None

### FeePaidByLifetime (ICL1)

**Parameters:**

* `refCode (bytes8, indexed)`: Referral code applied to the payment.
* `initial (bool, indexed)`: True if this is the initial fee payment; false for an update/recurring payment.
* `factory (address)`: Build manager/factory address that receives the fee.
* `lastFeePaidAt (uint64)`: Updated last-fee-payment timestamp (seconds).

**Description:** Emitted when the fee is satisfied via the lifetime NFT path.

**Event Signature:** `FeePaidByLifetime(bytes8 indexed refCode, bool indexed initial, address factory, uint64 lastFeePaidAt)`

**Emitted by:**

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

**Notes / Edge cases:** None

### FeePaidByDefault (ICL1)

**Parameters:**

* `refCode (bytes8, indexed)`: Referral code applied to the payment.
* `initial (bool, indexed)`: True if this is the initial fee payment; false for an update/recurring payment.
* `value (uint256)`: Amount paid as the fee.
* `returnedValue (uint256)`: Amount refunded to the payer (excess over required fee).
* `factory (address)`: Build manager/factory address that receives the fee.
* `lastFeePaidAt (uint64)`: Updated last-fee-payment timestamp (seconds).

**Description:** Emitted when the standard (non-transfer) fee payment succeeds, including any refund.

**Event Signature:** `FeePaidByDefault(bytes8 indexed refCode, bool indexed initial, uint256 value, uint256 returnedValue, address factory, uint64 lastFeePaidAt)`

**Emitted by:**

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

**Notes / Edge cases:** None

### FeePaidByTransfer (ICL1)

**Parameters:**

* `refCode (bytes8, indexed)`: Referral code applied to the payment.
* `initial (bool, indexed)`: True if this is the initial fee payment; false for an update/recurring payment.
* `value (uint256)`: Amount transferred as the fee to the build manager (after any referral share).
* `factory (address)`: Build manager/factory address that receives the fee.
* `lastFeePaidAt (uint64)`: Updated last-fee-payment timestamp (seconds).

**Description:** Emitted when the fee is paid via the direct transfer path.

**Event Signature:** `FeePaidByTransfer(bytes8 indexed refCode, bool indexed initial, uint256 value, address factory, uint64 lastFeePaidAt)`

**Emitted by:**

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

**Notes / Edge cases:** None

### FeeSentToRefByTransfer (ICL1)

**Parameters:**

* `refCode (bytes8, indexed)`: Referral code tied to the fee payment.
* `value (uint256)`: Portion of the fee forwarded to the referral.
* `referral (address)`: Address receiving the referral share.

**Description:** Emitted when a fee paid via the transfer path includes a referral share, recording the referral code, amount sent, and recipient.

**Event Signature:** `FeeSentToRefByTransfer(bytes8 indexed refCode, uint256 value, address referral)`

**Emitted by:**

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

**Notes / Edge cases:** None

### BeneficiaryClaim (ICL1)

**Parameters:**

* `token (address, indexed)`: Token address being claimed.
* `amount (uint256)`: Amount claimed by the beneficiary.
* `beneficiary (bytes32, indexed)`: Beneficiary hash receiving the claim.

**Description:** Emitted when a beneficiary claim is executed for a token.

**Event Signature:** `BeneficiaryClaim(address indexed token, uint256 amount, bytes32 indexed beneficiary)`

**Emitted by:**

* [CryptoLegacyBasePlugin.\_claimTokenWithVesting()](https://docs.cryptolegacy.app/documentation/functions-reference#_claimtokenwithvesting-clbp1)

**Notes / Edge cases:** None

### BeneficiaryClaimAmountDecrease (ICL1)

**Parameters:**

* `token (address, indexed)`: Token whose claimable amount was reduced.
* `beneficiary (bytes32, indexed)`: Beneficiary hash whose claimable balance changed.
* `prevAmount (uint256)`: Claimable amount before the decrease.
* `newAmount (uint256)`: Claimable amount after the decrease.

**Description:** Emitted when a beneficiary's claimable amount for a token is reduced (e.g., after vesting/claim calculation).

**Event Signature:** `BeneficiaryClaimAmountDecrease(address indexed token, bytes32 indexed beneficiary, uint256 prevAmount, uint256 newAmount)`

**Emitted by:**

* [CryptoLegacyBasePlugin.\_claimTokenWithVesting()](https://docs.cryptolegacy.app/documentation/functions-reference#_claimtokenwithvesting-clbp1)

**Notes / Edge cases:** None

### TransferTreasuryTokensToLegacy (ICL1)

**Parameters:**

* `holders (address[])`: Treasury holder addresses whose balances are moved.
* `tokens (address[])`: Token addresses being moved from the treasury into the legacy contract.

**Description:** Emitted when treasury-held tokens are transferred into the legacy contract, listing holders and token set.

**Event Signature:** `TransferTreasuryTokensToLegacy(address[] holders, address[] tokens)`

**Emitted by:**

* [CryptoLegacyBasePlugin.transferTreasuryTokensToLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#transfertreasurytokenstolegacy-clbp1)
* [LegacyRecoveryPlugin.lrTransferTreasuryTokensToLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#lrtransfertreasurytokenstolegacy-lrp1)
* [TrustedGuardiansPlugin.guardiansTransferTreasuryTokensToLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#guardianstransfertreasurytokenstolegacy-tgp1)
* [LibCryptoLegacy.\_transferTreasuryTokensToLegacy()](https://docs.cryptolegacy.app/documentation/functions-reference#_transfertreasurytokenstolegacy-lcl1)

**Notes / Edge cases:** None

### TransferTokensFromLegacy (ICL1)

**Parameters:**

* `transfers (ICryptoLegacy.TokenTransferTo[])`: Batch of token transfers executed from the legacy contract (token, recipient, amount).

**Description:** Emitted after executing a batch transfer of tokens from the legacy contract to recipients, capturing the full transfer list.

**Event Signature:** `TransferTokensFromLegacy(ICryptoLegacy.TokenTransferTo[] transfers)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetGasLimitMultiplier (ICL1)

**Parameters:**

* `gasLimitMultiplier (uint)`: New multiplier applied to gas limits for external calls.

**Description:** Emitted when the gas limit multiplier used for external calls is updated.

**Event Signature:** `SetGasLimitMultiplier(uint gasLimitMultiplier)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddFunctions (ICL1)

**Parameters:**

* `\_facetAddress (address)`: Facet address that provides the new selectors.
* `\_functionSelectors (bytes4[])`: Function selectors being added to the diamond.
* `selectorPosition (uint16)`: Starting selector position/index assigned to this facet.

**Description:** Emitted when function selectors are added to a facet during a diamond update.

**Event Signature:** `AddFunctions(address \_facetAddress, bytes4[] \_functionSelectors, uint16 selectorPosition)`

**Emitted by:**

* [CryptoLegacy.constructor()](https://docs.cryptolegacy.app/documentation/functions-reference#constructor-cl1)
* [CryptoLegacy.replacePlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#replaceplugin-cl1)
* [CryptoLegacy.addPluginList()](https://docs.cryptolegacy.app/documentation/functions-reference#addpluginlist-cl1)
* [BeneficiaryPluginAddRights.barAddPluginList()](https://docs.cryptolegacy.app/documentation/functions-reference#baraddpluginlist-bpar1)
* [LibCryptoLegacyPlugins.\_addPluginList()](https://docs.cryptolegacy.app/documentation/functions-reference#_addpluginlist-lclp1)
* [LibCryptoLegacyPlugins.addFunctions()](https://docs.cryptolegacy.app/documentation/functions-reference#addfunctions-lclp1)

**Notes / Edge cases:** None

### RemoveFunctions (ICL1)

**Parameters:**

* `\_facetAddress (address)`: Facet address from which selectors are removed.
* `\_functionSelectors (bytes4[])`: Function selectors being removed from the diamond.

**Description:** Emitted when function selectors are removed from a facet during a diamond update.

**Event Signature:** `RemoveFunctions(address \_facetAddress, bytes4[] \_functionSelectors)`

**Emitted by:**

* [CryptoLegacy.replacePlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#replaceplugin-cl1)
* [CryptoLegacy.removePluginList()](https://docs.cryptolegacy.app/documentation/functions-reference#removepluginlist-cl1)
* [LibCryptoLegacyPlugins.\_removePlugin()](https://docs.cryptolegacy.app/documentation/functions-reference#_removeplugin-lclp1)
* [LibCryptoLegacyPlugins.removeFunctions()](https://docs.cryptolegacy.app/documentation/functions-reference#removefunctions-lclp1)

**Notes / Edge cases:** None

### SkipSendFeeByTransfer (ICL1)

**Parameters:**

* `buildManagerAddress (address)`: Build manager address that would have received the fee transfer.
* `value (uint256)`: ETH amount provided (zero when skipped).

**Description:** Emitted when the transfer-based fee path is skipped because `msg.value` is zero.

**Event Signature:** `SkipSendFeeByTransfer(address buildManagerAddress, uint256 value)`

**Emitted by:**

* [CryptoLegacyBasePlugin.update()](https://docs.cryptolegacy.app/documentation/functions-reference#update-clbp1)
* [CryptoLegacyBasePlugin.beneficiaryClaim()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaim-clbp1)
* [LegacyRecoveryPlugin.lrResetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#lrresetguardianvoting-lrp1)
* [TrustedGuardiansPlugin.resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#resetguardianvoting-tgp1)
* [LibCryptoLegacy.\_sendFeeByTransfer()](https://docs.cryptolegacy.app/documentation/functions-reference#_sendfeebytransfer-lcl1)

**Notes / Edge cases:** None

### IsLifetimeNftLockedAndUpdateCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data returned by the failed `isLifetimeNftLockedAndUpdate` call.

**Description:** Emitted when the lifetime-NFT status check on the build manager reverts and the error is captured.

**Event Signature:** `IsLifetimeNftLockedAndUpdateCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyBasePlugin.payInitialFee()](https://docs.cryptolegacy.app/documentation/functions-reference#payinitialfee-clbp1)
* [LegacyRecoveryPlugin.lrResetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#lrresetguardianvoting-lrp1)
* [TrustedGuardiansPlugin.resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#resetguardianvoting-tgp1)
* [LibCryptoLegacy.\_isLifetimeActiveAndUpdate()](https://docs.cryptolegacy.app/documentation/functions-reference#_islifetimeactiveandupdate-lcl1)

**Notes / Edge cases:** None

### GetUpdateFeeCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed build manager `getUpdateFee` call.

**Description:** Emitted when fetching the update fee from the build manager reverts.

**Event Signature:** `GetUpdateFeeCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyBasePlugin.update()](https://docs.cryptolegacy.app/documentation/functions-reference#update-clbp1)
* [CryptoLegacyBasePlugin.beneficiaryClaim()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaim-clbp1)
* [LegacyRecoveryPlugin.lrResetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#lrresetguardianvoting-lrp1)
* [TrustedGuardiansPlugin.resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#resetguardianvoting-tgp1)
* [LibCryptoLegacy.\_takeFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_takefee-lcl1)

**Notes / Edge cases:** None

### PayFeeCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed build manager `payFee` call.

**Description:** Emitted when the build manager fee payment call reverts and the flow falls back to transfer-based handling.

**Event Signature:** `PayFeeCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyBasePlugin.update()](https://docs.cryptolegacy.app/documentation/functions-reference#update-clbp1)
* [CryptoLegacyBasePlugin.beneficiaryClaim()](https://docs.cryptolegacy.app/documentation/functions-reference#beneficiaryclaim-clbp1)
* [LegacyRecoveryPlugin.lrResetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#lrresetguardianvoting-lrp1)
* [TrustedGuardiansPlugin.resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#resetguardianvoting-tgp1)
* [LibCryptoLegacy.\_takeFee()](https://docs.cryptolegacy.app/documentation/functions-reference#_takefee-lcl1)

**Notes / Edge cases:** None

### SetCryptoLegacyOwnerCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed `setCryptoLegacyOwner` call to the beneficiary registry.

**Description:** Emitted when updating the owner entry in the beneficiary registry reverts.

**Event Signature:** `SetCryptoLegacyOwnerCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyOwnable.acceptOwnership()](https://docs.cryptolegacy.app/documentation/functions-reference#acceptownership-clo1)
* [CryptoLegacyBasePlugin.initializeByBuildManager()](https://docs.cryptolegacy.app/documentation/functions-reference#initializebybuildmanager-clbp1)
* [LibCryptoLegacy.\_setCryptoLegacyToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacytobeneficiaryregistry-lcl1)

**Notes / Edge cases:** None

### SetCryptoLegacyBeneficiaryCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed `setCryptoLegacyBeneficiary` call to the beneficiary registry.

**Description:** Emitted when updating the beneficiary entry in the registry reverts.

**Event Signature:** `SetCryptoLegacyBeneficiaryCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyBasePlugin.initializeByBuildManager()](https://docs.cryptolegacy.app/documentation/functions-reference#initializebybuildmanager-clbp1)
* [CryptoLegacyBasePlugin.setBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#setbeneficiaries-clbp1)
* [LibCryptoLegacy.\_setCryptoLegacyToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacytobeneficiaryregistry-lcl1)

**Notes / Edge cases:** None

### SetCryptoLegacyGuardianCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed `setCryptoLegacyGuardian` call to the beneficiary registry.

**Description:** Emitted when updating the guardian entry in the registry reverts.

**Event Signature:** `SetCryptoLegacyGuardianCatch(bytes reason)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetCryptoLegacyRecoveryAddressesCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed `setCryptoLegacyRecoveryAddresses` call.

**Description:** Emitted when updating recovery addresses in the registry reverts.

**Event Signature:** `SetCryptoLegacyRecoveryAddressesCatch(bytes reason)`

**Emitted by:**

* [LegacyRecoveryPlugin.lrSetMultisigConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#lrsetmultisigconfig-lrp1)
* [LibCryptoLegacy.\_setCryptoLegacyListToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacylisttobeneficiaryregistry-lcl1)

**Notes / Edge cases:** None

### BeneficiaryRegistryCatch (ICL1)

**Parameters:**

* `reason (bytes)`: Revert data from the failed `beneficiaryRegistry()` lookup on the build manager.

**Description:** Emitted when fetching the beneficiary registry from the build manager reverts.

**Event Signature:** `BeneficiaryRegistryCatch(bytes reason)`

**Emitted by:**

* [CryptoLegacyOwnable.acceptOwnership()](https://docs.cryptolegacy.app/documentation/functions-reference#acceptownership-clo1)
* [LegacyRecoveryPlugin.lrSetMultisigConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#lrsetmultisigconfig-lrp1)
* [LibCryptoLegacy.\_getBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_getbeneficiaryregistry-lcl1)

**Notes / Edge cases:** None

### BeneficiaryRegistryNotDefined (ICL1)

**Parameters:** None

**Description:** Emitted when the beneficiary registry address is not configured (zero address), so registry updates are skipped.

**Event Signature:** `BeneficiaryRegistryNotDefined()`

**Emitted by:**

* [CryptoLegacyOwnable.acceptOwnership()](https://docs.cryptolegacy.app/documentation/functions-reference#acceptownership-clo1)
* [CryptoLegacyBasePlugin.initializeByBuildManager()](https://docs.cryptolegacy.app/documentation/functions-reference#initializebybuildmanager-clbp1)
* [CryptoLegacyBasePlugin.setBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#setbeneficiaries-clbp1)
* [LegacyRecoveryPlugin.lrSetMultisigConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#lrsetmultisigconfig-lrp1)
* [TrustedGuardiansPlugin.initializeGuardians()](https://docs.cryptolegacy.app/documentation/functions-reference#initializeguardians-tgp1)
* [TrustedGuardiansPlugin.setGuardians()](https://docs.cryptolegacy.app/documentation/functions-reference#setguardians-tgp1)
* [LibCryptoLegacy.\_setCryptoLegacyToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacytobeneficiaryregistry-lcl1)
* [LibCryptoLegacy.\_setCryptoLegacyListToBeneficiaryRegistry()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcryptolegacylisttobeneficiaryregistry-lcl1)

**Notes / Edge cases:** None

## ICryptoLegacyBuildManager (ICLBM1)

### CreateRef (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the referral creation.
* `refCode (bytes8, indexed)`: Generated referral code.
* `recipient (address, indexed)`: Address that receives referral benefits for this code.
* `chainIds (uint256[])`: Destination chain IDs included for cross-chain usage.

**Description:** Emitted when a new referral code is created via `createRef`/`\_createRef` (including via `\_createRefAndPayForBuild`).

**Event Signature:** `CreateRef(address indexed sender, bytes8 indexed refCode, address indexed recipient, uint256[] chainIds)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CreateCustomRef (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the custom referral creation.
* `refCode (bytes8, indexed)`: Custom referral code created (or assigned) for the recipient.
* `recipient (address, indexed)`: Address that receives referral benefits for this code.
* `chainIds (uint256[])`: Destination chain IDs included for cross-chain usage.

**Description:** Emitted when a custom referral code is created via `createCustomRef`/`\_createCustomRef` (including via `\_createRefAndPayForBuild`).

**Event Signature:** `CreateCustomRef(address indexed sender, bytes8 indexed refCode, address indexed recipient, uint256[] chainIds)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetCrossChainsRef (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that updated the cross-chain referral settings.
* `chainIds (uint256[])`: Destination chain IDs enabled for cross-chain referral usage.

**Description:** Emitted when a caller updates the cross-chain referral configuration for their referral code.

**Event Signature:** `SetCrossChainsRef(address indexed sender, uint256[] chainIds)`

**Emitted by:**

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

**Notes / Edge cases:** None

### WithdrawFee (ICLBM1)

**Parameters:**

* `recipient (address, indexed)`: Address receiving the withdrawn fees.
* `amount (uint256, indexed)`: Amount of fees withdrawn.

**Description:** Emitted when accumulated fees are withdrawn to a recipient address.

**Event Signature:** `WithdrawFee(address indexed recipient, uint256 indexed amount)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetRegistries (ICLBM1)

**Parameters:**

* `feeRegistry (address, indexed)`: Address of the fee registry contract.
* `pluginsRegistry (address, indexed)`: Address of the plugins registry contract.
* `beneficiaryRegistry (address, indexed)`: Address of the beneficiary registry contract.

**Description:** Emitted when registry contract addresses are set or updated.

**Event Signature:** `SetRegistries(address indexed feeRegistry, address indexed pluginsRegistry, address indexed beneficiaryRegistry)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetFactory (ICLBM1)

**Parameters:**

* `factory (address, indexed)`: Address of the CryptoLegacy factory contract.

**Description:** Emitted when the factory address used to deploy CryptoLegacy contracts is set or updated.

**Event Signature:** `SetFactory(address indexed factory)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetSupplyLimit (ICLBM1)

**Parameters:**

* `supplyLimit (uint256)`: New lifetime NFT supply limit used by the build manager.

**Description:** Emitted when the lifetime NFT supply limit is updated.

**Event Signature:** `SetSupplyLimit(uint256 supplyLimit)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetExternalLens (ICLBM1)

**Parameters:**

* `externalLens (address, indexed)`: Address of the external lens contract.

**Description:** Emitted when the external lens address is set or updated.

**Event Signature:** `SetExternalLens(address indexed externalLens)`

**Emitted by:**

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

**Notes / Edge cases:** None

### PaidForMint (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that paid for the mint.
* `tokenId (uint256, indexed)`: Token ID of the newly minted lifetime NFT.
* `toHolder (address, indexed)`: Address receiving the minted lifetime NFT.

**Description:** Emitted for each lifetime NFT minted during a paid mint flow.

**Event Signature:** `PaidForMint(address indexed sender, uint256 indexed tokenId, address indexed toHolder)`

**Emitted by:**

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

**Notes / Edge cases:** None

### PaidForMultipleNft (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that paid for the batch mint.
* `code (bytes8, indexed)`: Referral code applied to the payment.
* `value (uint256)`: Total fee amount paid.
* `totalAmount (uint256)`: Total number of NFTs minted in the batch.

**Description:** Emitted after a successful batch lifetime NFT purchase and minting.

**Event Signature:** `PaidForMultipleNft(address indexed sender, bytes8 indexed code, uint256 value, uint256 totalAmount)`

**Emitted by:**

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

**Notes / Edge cases:** None

### Build (ICLBM1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the build.
* `cryptoLegacy (address, indexed)`: Newly deployed CryptoLegacy contract address.
* `plugins (address[])`: Plugin addresses configured on deployment.
* `beneficiaryHashes (bytes32[])`: Beneficiary hashes configured for the legacy.
* `beneficiaryConfig (ICryptoLegacy.BeneficiaryConfig[])`: Beneficiary configuration entries.
* `isPaid (bool)`: True if the initial fee was already paid (no initial fee due).
* `updateInterval (uint64)`: Update interval configured for the legacy.
* `challengeTimeout (uint64)`: Challenge timeout configured for the legacy.

**Description:** Emitted when a new CryptoLegacy contract is deployed and initialized with plugins and beneficiary settings.

**Event Signature:** `Build(address indexed sender, address indexed cryptoLegacy, address[] plugins, bytes32[] beneficiaryHashes, ICryptoLegacy.BeneficiaryConfig[] beneficiaryConfig, bool isPaid, uint64 updateInterval, uint64 challengeTimeout)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ICryptoLegacyDiamondBase (ICLDB1)

### StaticCallCheck (ICLDB1)

**Parameters:** None

**Description:** Emitted by the self-call probe when `staticCallChecker()` succeeds in a non-static context, allowing the diamond fallback to detect that the current call is not static.

**Event Signature:** `StaticCallCheck()`

**Emitted by:**

* [CryptoLegacyDiamondBase.staticCallChecker()](https://docs.cryptolegacy.app/documentation/functions-reference#staticcallchecker-cldb1)

**Notes / Edge cases:** None

## ICryptoLegacyFactory (ICLF1)

### AddBuildOperator (ICLF1)

**Parameters:**

* `buildOperator (address, indexed)`: Address granted the build-operator role.

**Description:** Emitted when a build operator is added to the allowed set.

**Event Signature:** `AddBuildOperator(address indexed buildOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveBuildOperator (ICLF1)

**Parameters:**

* `buildOperator (address, indexed)`: Address removed from the build-operator role.

**Description:** Emitted when a build operator is removed from the allowed set.

**Event Signature:** `RemoveBuildOperator(address indexed buildOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ICryptoLegacyLens (ICLL1)

**No events in this contract/library.**

## ICryptoLegacyOwnable (ICLO1)

### OwnershipTransferStarted (ICLO1)

**Parameters:**

* `previousOwner (address, indexed)`: Current owner before transfer is initiated.
* `newOwner (address, indexed)`: Pending owner set during initiation.

**Description:** Emitted when a two-step ownership transfer is initiated and a pending owner is set.

**Event Signature:** `OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)`

**Emitted by:**

* [CryptoLegacyOwnable.\_transferOwnership()](https://docs.cryptolegacy.app/documentation/functions-reference#_transferownership-clo1)

**Notes / Edge cases:** None

### OwnershipTransferred (ICLO1)

**Parameters:**

* `previousOwner (address, indexed)`: Owner address before the transfer completes.
* `newOwner (address, indexed)`: Owner address after the transfer completes.

**Description:** Emitted when ownership is transferred to a new owner.

**Event Signature:** `OwnershipTransferred(address indexed previousOwner, address indexed newOwner)`

**Emitted by:** None

**Notes / Edge cases:** None

## ICryptoLegacyPlugin (ICLP1)

**No events in this contract/library.**

## ICryptoLegacyUpdaterPlugin (ICLUP1)

### AddUpdater (ICLUP1)

**Parameters:**

* `owner (address, indexed)`: Owner address that added the updater.
* `updater (address, indexed)`: Updater address added to the allowlist.

**Description:** Emitted when the owner adds an updater account.

**Event Signature:** `AddUpdater(address indexed owner, address indexed updater)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveUpdater (ICLUP1)

**Parameters:**

* `owner (address, indexed)`: Owner address that removed the updater.
* `updater (address, indexed)`: Updater address removed from the allowlist.

**Description:** Emitted when the owner removes an updater account.

**Event Signature:** `RemoveUpdater(address indexed owner, address indexed updater)`

**Emitted by:**

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

**Notes / Edge cases:** None

## IDeBridgeGate (IDBG1)

### Sent (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Unique submission ID for the transfer.
* `debridgeId (bytes32, indexed)`: Asset identifier within deBridge.
* `amount (uint256)`: Amount sent/locked on the source chain.
* `receiver (bytes)`: Encoded receiver address on the destination chain.
* `nonce (uint256)`: Nonce associated with this submission.
* `chainIdTo (uint256, indexed)`: Destination chain ID.
* `referralCode (uint32)`: Referral code associated with the submission.
* `feeParams (FeeParams)`: Fee parameters applied to the transfer.
* `autoParams (bytes)`: Auto-execution parameters for the target call.
* `nativeSender (address)`: Native sender address on the source chain.

**Description:** Emitted when assets are sent from the native chain to another chain, creating a transfer submission.

**Event Signature:** `Sent(bytes32 submissionId, bytes32 indexed debridgeId, uint256 amount, bytes receiver, uint256 nonce, uint256 indexed chainIdTo, uint32 referralCode, FeeParams feeParams, bytes autoParams, address nativeSender)`

**Emitted by:** None

**Notes / Edge cases:** None

### Claimed (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID being claimed on the target chain.
* `debridgeId (bytes32, indexed)`: Asset identifier within deBridge.
* `amount (uint256)`: Amount claimed/withdrawn.
* `receiver (address, indexed)`: Receiver address on the target chain.
* `nonce (uint256)`: Nonce associated with the submission.
* `chainIdFrom (uint256, indexed)`: Source chain ID.
* `autoParams (bytes)`: Auto-execution parameters used during claim.
* `isNativeToken (bool)`: True if the asset is the native token.

**Description:** Emitted when a transfer is claimed and withdrawn on the target chain.

**Event Signature:** `Claimed(bytes32 submissionId, bytes32 indexed debridgeId, uint256 amount, address indexed receiver, uint256 nonce, uint256 indexed chainIdFrom, bytes autoParams, bool isNativeToken)`

**Emitted by:** None

**Notes / Edge cases:** None

### PairAdded (IDBG1)

**Parameters:**

* `debridgeId (bytes32)`: Asset identifier within deBridge.
* `tokenAddress (address)`: Asset address on the current chain.
* `nativeAddress (bytes)`: Asset address on the native chain (encoded).
* `nativeChainId (uint256, indexed)`: Native chain ID for the asset.
* `maxAmount (uint256)`: Maximum transferable amount for the asset.
* `minReservesBps (uint16)`: Minimum reserves in basis points for the asset.

**Description:** Emitted when support for a new asset pair is added.

**Event Signature:** `PairAdded(bytes32 debridgeId, address tokenAddress, bytes nativeAddress, uint256 indexed nativeChainId, uint256 maxAmount, uint16 minReservesBps)`

**Emitted by:** None

**Notes / Edge cases:** None

### MonitoringSendEvent (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID being monitored.
* `nonce (uint256)`: Nonce associated with the submission.
* `lockedOrMintedAmount (uint256)`: Amount locked or minted for the send.
* `totalSupply (uint256)`: Total supply after the send.

**Description:** Emitted for monitoring when a send locks or mints assets and updates total supply.

**Event Signature:** `MonitoringSendEvent(bytes32 submissionId, uint256 nonce, uint256 lockedOrMintedAmount, uint256 totalSupply)`

**Emitted by:** None

**Notes / Edge cases:** None

### MonitoringClaimEvent (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID being monitored.
* `lockedOrMintedAmount (uint256)`: Amount unlocked or burned for the claim.
* `totalSupply (uint256)`: Total supply after the claim.

**Description:** Emitted for monitoring when a claim is processed and total supply is updated.

**Event Signature:** `MonitoringClaimEvent(bytes32 submissionId, uint256 lockedOrMintedAmount, uint256 totalSupply)`

**Emitted by:** None

**Notes / Edge cases:** None

### ChainSupportUpdated (IDBG1)

**Parameters:**

* `chainId (uint256)`: Chain ID whose support flag changed.
* `isSupported (bool)`: Whether the chain is supported.
* `isChainFrom (bool)`: True if the update applies to the source-chain side.

**Description:** Emitted when support for a single chain is enabled or disabled.

**Event Signature:** `ChainSupportUpdated(uint256 chainId, bool isSupported, bool isChainFrom)`

**Emitted by:** None

**Notes / Edge cases:** None

### ChainsSupportUpdated (IDBG1)

**Parameters:**

* `chainIds (uint256)`: Chain ID being updated.
* `chainSupportInfo (ChainSupportInfo)`: Support settings for the chain (fees and support flag).
* `isChainFrom (bool)`: True if the update applies to the source-chain side.

**Description:** Emitted when chain support settings are updated.

**Event Signature:** `ChainsSupportUpdated(uint256 chainIds, ChainSupportInfo chainSupportInfo, bool isChainFrom)`

**Emitted by:** None

**Notes / Edge cases:** None

### CallProxyUpdated (IDBG1)

**Parameters:**

* `callProxy (address)`: Address of the new call proxy contract.

**Description:** Emitted when the call proxy address is updated.

**Event Signature:** `CallProxyUpdated(address callProxy)`

**Emitted by:** None

**Notes / Edge cases:** None

### AutoRequestExecuted (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID whose auto-request executed.
* `success (bool, indexed)`: Whether the auto-execution succeeded.
* `callProxy (address)`: Call proxy used for the execution.

**Description:** Emitted when an auto-execution request is executed via the call proxy.

**Event Signature:** `AutoRequestExecuted(bytes32 submissionId, bool indexed success, address callProxy)`

**Emitted by:** None

**Notes / Edge cases:** None

### Blocked (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID that was blocked.

**Description:** Emitted when a submission is blocked.

**Event Signature:** `Blocked(bytes32 submissionId)`

**Emitted by:** None

**Notes / Edge cases:** None

### Unblocked (IDBG1)

**Parameters:**

* `submissionId (bytes32)`: Submission ID that was unblocked.

**Description:** Emitted when a submission is unblocked.

**Event Signature:** `Unblocked(bytes32 submissionId)`

**Emitted by:** None

**Notes / Edge cases:** None

### WithdrawnFee (IDBG1)

**Parameters:**

* `debridgeId (bytes32)`: Asset identifier whose fees were withdrawn.
* `fee (uint256)`: Fee amount withdrawn.

**Description:** Emitted when accumulated fees are withdrawn for an asset.

**Event Signature:** `WithdrawnFee(bytes32 debridgeId, uint256 fee)`

**Emitted by:** None

**Notes / Edge cases:** None

### FixedNativeFeeUpdated (IDBG1)

**Parameters:**

* `globalFixedNativeFee (uint256)`: Updated global fixed native fee.
* `globalTransferFeeBps (uint256)`: Updated global transfer fee in basis points.

**Description:** Emitted when global fixed native fee and transfer fee parameters are updated.

**Event Signature:** `FixedNativeFeeUpdated(uint256 globalFixedNativeFee, uint256 globalTransferFeeBps)`

**Emitted by:** None

**Notes / Edge cases:** None

### FixedNativeFeeAutoUpdated (IDBG1)

**Parameters:**

* `globalFixedNativeFee (uint256)`: New global fixed native fee set by the updater.

**Description:** Emitted when the global fixed native fee is auto-updated by the fee updater.

**Event Signature:** `FixedNativeFeeAutoUpdated(uint256 globalFixedNativeFee)`

**Emitted by:** None

**Notes / Edge cases:** None

## IDiamondCut (IDC1)

### DiamondCut (IDC1)

**Parameters:**

* `\_diamondCut (FacetCut[])`: Facet cut operations (add/replace/remove) applied to the diamond.
* `\_init (address)`: Optional initialization target for delegatecall.
* `\_calldata (bytes)`: Initialization calldata passed to the delegatecall.

**Description:** Emitted after applying a diamond cut to record the facet changes and optional initialization.

**Event Signature:** `DiamondCut(FacetCut[] \_diamondCut, address \_init, bytes \_calldata)`

**Emitted by:** None

**Notes / Edge cases:** None

## IDiamondLoupe (IDL1)

**No events in this contract/library.**

## IFeeRegistry (IFR1)

### AddCodeOperator (IFR1)

**Parameters:**

* `codeOperator (address, indexed)`: Address targeted to be added as an authorized code operator.

**Description:** Emitted when the owner calls `setCodeOperator` with `\_isAdd = true` (even if the operator is already present).

**Event Signature:** `AddCodeOperator(address indexed codeOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveCodeOperator (IFR1)

**Parameters:**

* `codeOperator (address, indexed)`: Address targeted to be removed from the set of authorized code operators.

**Description:** Emitted when the owner calls `setCodeOperator` with `\_isAdd = false` (even if the operator is not present).

**Event Signature:** `RemoveCodeOperator(address indexed codeOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetDefaultPct (IFR1)

**Parameters:**

* `defaultDiscountPct (uint32)`: New default discount percentage (basis points, denominator 10,000).
* `defaultSharePct (uint32)`: New default referrer share percentage (basis points, denominator 10,000).

**Description:** Emitted after the default discount/share percentages are written to storage during initialization or an owner update.

**Event Signature:** `SetDefaultPct(uint32 defaultDiscountPct, uint32 defaultSharePct)`

**Emitted by:**

* [FeeRegistry.\_setDefaultPct()](https://docs.cryptolegacy.app/documentation/functions-reference#_setdefaultpct-fr1)

**Notes / Edge cases:** None

### SetRefererSpecificPct (IFR1)

**Parameters:**

* `referrer (address, indexed)`: Referrer whose custom percentages are updated.
* `code (bytes8, indexed)`: Referral code associated with the referrer.
* `discountPct (uint32)`: New discount percentage (basis points).
* `sharePct (uint32)`: New referrer share percentage (basis points).

**Description:** Emitted when the owner updates a referrer’s custom discount/share percentages in `setRefererSpecificPct`.

**Event Signature:** `SetRefererSpecificPct(address indexed referrer, bytes8 indexed code, uint32 discountPct, uint32 sharePct)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetContractCaseFee (IFR1)

**Parameters:**

* `sourceContract (address, indexed)`: Source contract for which the fee is configured.
* `contractCase (uint8, indexed)`: Case identifier within the source contract.
* `fee (uint256)`: New fee value set for the contract-case combination.

**Description:** Emitted when the owner sets or updates the fee for a specific pair `sourceContract` + `contractCase`.

**Event Signature:** `SetContractCaseFee(address indexed sourceContract, uint8 indexed contractCase, uint256 fee)`

**Emitted by:**

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

**Notes / Edge cases:** None

### TakeFee (IFR1)

**Parameters:**

* `sourceContract (address, indexed)`: Source contract for which the fee is charged.
* `contractCase (uint8, indexed)`: Case identifier within the source contract.
* `code (bytes8, indexed)`: Referral code used for fee calculation.
* `discount (uint256)`: Discount amount applied to the base fee.
* `share (uint256)`: Referral share amount (either sent or accumulated).
* `fee (uint256)`: Final fee required from the caller after discount.
* `value (uint256)`: `msg.value` supplied with the call.

**Description:** Emitted after `takeFee` calculates the fee and processes the referral share; captures the final fee math and the actual ETH value provided.

**Event Signature:** `TakeFee(address indexed sourceContract, uint8 indexed contractCase, bytes8 indexed code, uint256 discount, uint256 share, uint256 fee, uint256 value)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SentFee (IFR1)

**Parameters:**

* `referrer (address, indexed)`: Referrer (owner of the referral code).
* `code (bytes8, indexed)`: Referral code used for the fee calculation.
* `recipient (address, indexed)`: Recipient that successfully received the referral share.
* `value (uint256)`: Amount of the referral share transferred to `recipient`.

**Description:** Emitted when `takeFee` successfully transfers the referral share to the configured recipient (transfer succeeds, and the share is not accumulated).

**Event Signature:** `SentFee(address indexed referrer, bytes8 indexed code, address indexed recipient, uint256 value)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AccumulateFee (IFR1)

**Parameters:**

* `referrer (address, indexed)`: Referrer (owner of the referral code).
* `code (bytes8, indexed)`: Referral code used for the fee calculation.
* `recipient (address, indexed)`: Intended recipient of the referral share.
* `value (uint256)`: Amount of the referral share that was accumulated.
* `transferResponse (bytes)`: Low-level call return data from the failed transfer attempt.

**Description:** Emitted when the referral share transfer in `takeFee` fails, and the share is added to the referrer’s accumulated balance for later withdrawal.

**Event Signature:** `AccumulateFee(address indexed referrer, bytes8 indexed code, address indexed recipient, uint256 value, bytes transferResponse)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CreateCode (IFR1)

**Parameters:**

* `codeOperator (address, indexed)`: Operator that initiates code creation.
* `referrer (address, indexed)`: Referrer that owns the code.
* `code (bytes8, indexed)`: Newly created referral code.
* `recipient (address)`: Recipient of referral rewards.
* `fromChain (uint256)`: Source chain ID for cross-chain creation (0 for local).
* `discountPct (uint32)`: Discount percentage assigned to the code.
* `sharePct (uint32)`: Referrer share percentage assigned to the code.

**Description:** Emitted when a new referral code is created in `\_createCustomCode`, including cross-chain creation.

**Event Signature:** `CreateCode(address indexed codeOperator, address indexed referrer, bytes8 indexed code, address recipient, uint256 fromChain, uint32 discountPct, uint32 sharePct)`

**Emitted by:**

* [FeeRegistry.\_createCustomCode()](https://docs.cryptolegacy.app/documentation/functions-reference#_createcustomcode-fr1)

**Notes / Edge cases:** None

### UpdateCode (IFR1)

**Parameters:**

* `codeOperator (address, indexed)`: Sender of the cross-chain message that triggered the update.
* `referrer (address, indexed)`: Referrer that owns the updated code.
* `code (bytes8, indexed)`: Referral code being updated.
* `recipient (address)`: New recipient for referral rewards.
* `fromChain (uint256)`: Source chain ID that sent the update.
* `discountPct (uint32)`: Updated discount percentage (basis points).
* `sharePct (uint32)`: Updated referrer share percentage (basis points).

**Description:** Emitted after `crossUpdateCustomCode` applies a cross-chain update to a referral code, updating referrer/recipient and discount/share percentages.

**Event Signature:** `UpdateCode(address indexed codeOperator, address indexed referrer, bytes8 indexed code, address recipient, uint256 fromChain, uint32 discountPct, uint32 sharePct)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ChangeCode (IFR1)

**Parameters:**

* `oldReferrer (address, indexed)`: Previous referrer (current owner) of the code.
* `newReferrer (address, indexed)`: New referrer set for the code.
* `code (bytes8, indexed)`: Referral code whose referrer changes.

**Description:** Emitted when a referrer transfers ownership of a referral code to a new referrer in `changeCodeReferrer`.

**Event Signature:** `ChangeCode(address indexed oldReferrer, address indexed newReferrer, bytes8 indexed code)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ChangeRecipient (IFR1)

**Parameters:**

* `referrer (address, indexed)`: Referrer that owns the code.
* `newRecipient (address, indexed)`: New recipient address for referral rewards.
* `code (bytes8, indexed)`: Referral code whose recipient changes.

**Description:** Emitted when the referrer updates the recipient address for a referral code in `changeRecipientReferrer`.

**Event Signature:** `ChangeRecipient(address indexed referrer, address indexed newRecipient, bytes8 indexed code)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetCrossChainsRef (IFR1)

**Parameters:**

* `shortCode (bytes8, indexed)`: Referral code being created or updated across chains.
* `isCreate (bool, indexed)`: Whether the cross-chain operation is a create (`true`) or update (`false`).
* `toChainIDs (uint256[])`: Destination chain IDs targeted by the cross-chain update.
* `crossChainFees (uint256[])`: Fees used for each destination chain send.

**Description:** Emitted after `\_setCrossChainsRef` prepares and sends cross-chain create/update commands for the referral code.

**Event Signature:** `SetCrossChainsRef(bytes8 indexed shortCode, bool indexed isCreate, uint256[] toChainIDs, uint256[] crossChainFees)`

**Emitted by:**

* [FeeRegistry.\_setCrossChainsRef()](https://docs.cryptolegacy.app/documentation/functions-reference#_setcrosschainsref-fr1)

**Notes / Edge cases:** None

### SetFeeBeneficiaries (IFR1)

**Parameters:**

* `beneficiaries (FeeBeneficiary[])`: New list of fee beneficiaries and their share percentages.

**Description:** Emitted after the fee beneficiary list is replaced and validated in `setFeeBeneficiaries`.

**Event Signature:** `SetFeeBeneficiaries(FeeBeneficiary[] beneficiaries)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddSupportedRefCodeInChain (IFR1)

**Parameters:**

* `chainId (uint256, indexed)`: Chain ID added to the supported referral-code chains list.

**Description:** Emitted for each chain ID added to `supportedRefInChains` via `setSupportedRefCodeInChains`.

**Event Signature:** `AddSupportedRefCodeInChain(uint256 indexed chainId)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveSupportedRefCodeInChain (IFR1)

**Parameters:**

* `chainId (uint256, indexed)`: Chain ID removed from the supported referral-code chains list.

**Description:** Emitted for each chain ID removed from `supportedRefInChains` via `setSupportedRefCodeInChains`.

**Event Signature:** `RemoveSupportedRefCodeInChain(uint256 indexed chainId)`

**Emitted by:**

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

**Notes / Edge cases:** None

### WithdrawFee (IFR1)

**Parameters:**

* `beneficiary (address, indexed)`: Fee beneficiary that receives the payout.
* `value (uint256)`: Amount of fee share transferred to the beneficiary.

**Description:** Emitted for each beneficiary when `withdrawAccumulatedFee` distributes the accumulated fee share to that beneficiary.

**Event Signature:** `WithdrawFee(address indexed beneficiary, uint256 value)`

**Emitted by:**

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

**Notes / Edge cases:** None

### WithdrawRefFee (IFR1)

**Parameters:**

* `recipient (address, indexed)`: Referral fee recipient address.
* `value (uint256)`: Amount of accumulated referral fee transferred.

**Description:** Emitted when `withdrawReferralAccumulatedFee` transfers the accumulated referral fee to the recipient for the given code.

**Event Signature:** `WithdrawRefFee(address indexed recipient, uint256 value)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ILockChainGate (ILCG1)

### AddLockOperator (ILCG1)

**Parameters:**

* `lockOperator (address, indexed)`: Address granted the lock-operator role.

**Description:** Emitted when a lock operator is added to the allowlist.

**Event Signature:** `AddLockOperator(address indexed lockOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveLockOperator (ILCG1)

**Parameters:**

* `lockOperator (address, indexed)`: Address removed from the lock-operator role.

**Description:** Emitted when a lock operator is removed from the allowlist.

**Event Signature:** `RemoveLockOperator(address indexed lockOperator)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetDestinationChainContract (ILCG1)

**Parameters:**

* `chainId (uint256, indexed)`: Destination chain ID being configured.
* `chainContract (address, indexed)`: Contract address on the destination chain.

**Description:** Emitted when the destination-chain contract mapping is set or updated.

**Event Signature:** `SetDestinationChainContract(uint256 indexed chainId, address indexed chainContract)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetSourceChainContract (ILCG1)

**Parameters:**

* `chainId (uint256, indexed)`: Source chain ID being configured.
* `chainContract (address, indexed)`: Contract address on the source chain.

**Description:** Emitted when the source-chain contract mapping is set or updated.

**Event Signature:** `SetSourceChainContract(uint256 indexed chainId, address indexed chainContract)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetDeBridgeGate (ILCG1)

**Parameters:**

* `deBridgeGate (address, indexed)`: Address of the deBridgeGate contract.

**Description:** Emitted when the deBridgeGate address is set or updated.

**Event Signature:** `SetDeBridgeGate(address indexed deBridgeGate)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetDeBridgeNativeFee (ILCG1)

**Parameters:**

* `chainId (uint256, indexed)`: Chain ID whose native fee is set.
* `nativeFee (uint256)`: Native fee amount configured for the chain.

**Description:** Emitted when the native fee for a chain is set or updated.

**Event Signature:** `SetDeBridgeNativeFee(uint256 indexed chainId, uint256 nativeFee)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetLockPeriodConfig (ILCG1)

**Parameters:**

* `lockPeriod (uint256)`: Required lock period for a lifetime NFT.
* `transferTimeout (uint256)`: Timeout after which transfers are permitted.

**Description:** Emitted when the lock period and transfer timeout configuration is updated.

**Event Signature:** `SetLockPeriodConfig(uint256 lockPeriod, uint256 transferTimeout)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SendToChain (ILCG1)

**Parameters:**

* `toChainId (uint256, indexed)`: Destination chain ID.
* `submissionId (bytes32, indexed)`: deBridge submission ID.
* `value (uint256)`: Native fee value sent with the submission.
* `dstTransactionCall (bytes)`: Encoded destination-chain call payload.

**Description:** Emitted when a cross-chain call/transfer is submitted to deBridge.

**Event Signature:** `SendToChain(uint256 indexed toChainId, bytes32 indexed submissionId, uint256 value, bytes dstTransactionCall)`

**Emitted by:**

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

**Notes / Edge cases:** None

### LockNft (ILCG1)

**Parameters:**

* `lockedAt (uint256)`: Timestamp when the NFT was locked.
* `tokenId (uint256, indexed)`: Token ID that was locked.
* `holder (address, indexed)`: Address that locked the NFT.

**Description:** Emitted when a lifetime NFT is locked for a holder.

**Event Signature:** `LockNft(uint256 lockedAt, uint256 indexed tokenId, address indexed holder)`

**Emitted by:**

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

**Notes / Edge cases:** None

### UnlockNft (ILCG1)

**Parameters:**

* `lockedAt (uint256)`: Timestamp when the NFT was locked.
* `tokenId (uint256, indexed)`: Token ID that was unlocked.
* `holder (address, indexed)`: Address that previously held the lock.
* `recipient (address, indexed)`: Address receiving the unlocked NFT.

**Description:** Emitted when a lifetime NFT is unlocked and transferred to a recipient.

**Event Signature:** `UnlockNft(uint256 lockedAt, uint256 indexed tokenId, address indexed holder, address indexed recipient)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ApproveNft (ILCG1)

**Parameters:**

* `tokenId (uint256, indexed)`: Token ID being approved.
* `holder (address, indexed)`: Current holder granting the approval.
* `approveTo (address, indexed)`: Address approved to manage the NFT.

**Description:** Emitted when a holder approves another address to manage a locked NFT.

**Event Signature:** `ApproveNft(uint256 indexed tokenId, address indexed holder, address indexed approveTo)`

**Emitted by:**

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

**Notes / Edge cases:** None

### TransferNft (ILCG1)

**Parameters:**

* `tokenId (uint256, indexed)`: Token ID being transferred.
* `holder (address, indexed)`: Previous owner of the NFT.
* `transferTo (address, indexed)`: New owner of the NFT.
* `fromChainID (uint256)`: Origin chain ID for the transfer (0 for same-chain).

**Description:** Emitted when NFT ownership is transferred locally or via a cross-chain update.

**Event Signature:** `TransferNft(uint256 indexed tokenId, address indexed holder, address indexed transferTo, uint256 fromChainID)`

**Emitted by:**

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

**Notes / Edge cases:** None

### LockToChain (ILCG1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the lock-to-chain action.
* `tokenId (uint256, indexed)`: Token ID being locked to the chain.
* `toChainID (uint256, indexed)`: Destination chain ID.
* `submissionId (bytes32)`: deBridge submission ID.

**Description:** Emitted when a lock command is sent to a destination chain.

**Event Signature:** `LockToChain(address indexed sender, uint256 indexed tokenId, uint256 indexed toChainID, bytes32 submissionId)`

**Emitted by:**

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

**Notes / Edge cases:** None

### UpdateLockToChain (ILCG1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the update.
* `tokenId (uint256, indexed)`: Token ID whose owner is being updated.
* `toChainID (uint256, indexed)`: Destination chain ID.
* `submissionId (bytes32)`: deBridge submission ID.

**Description:** Emitted when an ownership update is sent to a destination chain.

**Event Signature:** `UpdateLockToChain(address indexed sender, uint256 indexed tokenId, uint256 indexed toChainID, bytes32 submissionId)`

**Emitted by:**

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

**Notes / Edge cases:** None

### Update (ILCG1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the update.
* `tokenId (uint256, indexed)`: Token ID being updated.
* `toChainID (uint256, indexed)`: Destination chain ID.
* `submissionId (bytes32)`: deBridge submission ID.

**Description:** Emitted when a lock-chain update submission is created.

**Event Signature:** `Update(address indexed sender, uint256 indexed tokenId, uint256 indexed toChainID, bytes32 submissionId)`

**Emitted by:** None

**Notes / Edge cases:** None

### UnlockFromChain (ILCG1)

**Parameters:**

* `sender (address, indexed)`: Address that initiated the unlock.
* `tokenId (uint256, indexed)`: Token ID being unlocked.
* `toChainID (uint256, indexed)`: Destination chain ID for the unlock.
* `submissionId (bytes32)`: deBridge submission ID.

**Description:** Emitted when an unlock command is sent to a destination chain.

**Event Signature:** `UnlockFromChain(address indexed sender, uint256 indexed tokenId, uint256 indexed toChainID, bytes32 submissionId)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CrossLockNft (ILCG1)

**Parameters:**

* `lockedAt (uint256)`: Timestamp when the NFT was locked on the source chain.
* `tokenId (uint256, indexed)`: Token ID locked across chains.
* `holder (address, indexed)`: Holder address on the destination chain.
* `fromChainID (uint256, indexed)`: Source chain ID.

**Description:** Emitted when a cross-chain lock is received from another chain.

**Event Signature:** `CrossLockNft(uint256 lockedAt, uint256 indexed tokenId, address indexed holder, uint256 indexed fromChainID)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CrossUnlockNft (ILCG1)

**Parameters:**

* `lockedAt (uint256)`: Timestamp when the NFT was locked on the source chain.
* `tokenId (uint256, indexed)`: Token ID being unlocked across chains.
* `holder (address, indexed)`: Holder address on the destination chain.
* `fromChainID (uint256, indexed)`: Source chain ID.

**Description:** Emitted when a cross-chain unlock is received from another chain.

**Event Signature:** `CrossUnlockNft(uint256 lockedAt, uint256 indexed tokenId, address indexed holder, uint256 indexed fromChainID)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CrossUpdateNftOwner (ILCG1)

**Parameters:**

* `fromChainID (uint256, indexed)`: Source chain ID.
* `tokenId (uint256, indexed)`: Token ID whose owner is updated.
* `transferTo (address, indexed)`: New owner address on the destination chain.

**Description:** Emitted when a cross-chain owner update is received from another chain.

**Event Signature:** `CrossUpdateNftOwner(uint256 indexed fromChainID, uint256 indexed tokenId, address indexed transferTo)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetReferralCode (ILCG1)

**Parameters:**

* `referralCode (uint32, indexed)`: Referral code applied to cross-chain submissions.

**Description:** Emitted when the referral code used for submissions is set or updated.

**Event Signature:** `SetReferralCode(uint32 indexed referralCode)`

**Emitted by:**

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

**Notes / Edge cases:** None

### SetCustomChainId (ILCG1)

**Parameters:**

* `customChainId (uint256, indexed)`: Custom chain ID override used for cross-chain messages.

**Description:** Emitted when the custom chain ID override is set or updated.

**Event Signature:** `SetCustomChainId(uint256 indexed customChainId)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ILegacyMessenger (ILM1)

### LegacyMessage (ILM1)

**Parameters:**

* `legacy (address, indexed)`: CryptoLegacy contract address sending the message.
* `toRecipient (bytes32, indexed)`: Recipient hash the message is addressed to.
* `messageHash (bytes32)`: Hash of the message payload.
* `message (bytes)`: Raw message payload.
* `messageType (uint256, indexed)`: Message type identifier.

**Description:** Emitted when a legacy message is sent to a recipient.

**Event Signature:** `LegacyMessage(address indexed legacy, bytes32 indexed toRecipient, bytes32 messageHash, bytes message, uint256 indexed messageType)`

**Emitted by:**

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

**Notes / Edge cases:** None

### LegacyMessageCheck (ILM1)

**Parameters:**

* `legacy (address, indexed)`: CryptoLegacy contract address sending the message.
* `toBeneficiary (bytes32, indexed)`: Beneficiary hash the message targets for verification.
* `messageHash (bytes32)`: Hash of the message payload.
* `message (bytes)`: Raw message payload.
* `messageType (uint256, indexed)`: Message type identifier.

**Description:** Emitted when a message is sent for beneficiary verification/check.

**Event Signature:** `LegacyMessageCheck(address indexed legacy, bytes32 indexed toBeneficiary, bytes32 messageHash, bytes message, uint256 indexed messageType)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ILido (ILD1)

**No events in this contract/library.**

## ILidoWithdrawalQueue (ILWQ1)

**No events in this contract/library.**

## ILifetimeNft (ILN1)

**No events in this contract/library.**

## IPermit2 (IPM21)

**No events in this contract/library.**

## IPluginsRegistry (IPR1)

### AddPlugin (IPR1)

**Parameters:**

* `plugin (address, indexed)`: Plugin contract address being registered.
* `description (string)`: Human-readable plugin description.

**Description:** Emitted when a plugin is added to the registry with its description.

**Event Signature:** `AddPlugin(address indexed plugin, string description)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddPluginDescription (IPR1)

**Parameters:**

* `plugin (address, indexed)`: Plugin contract address being updated.
* `description (string)`: Updated human-readable plugin description.

**Description:** Emitted when a plugin description is set or updated.

**Event Signature:** `AddPluginDescription(address indexed plugin, string description)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemovePlugin (IPR1)

**Parameters:**

* `plugin (address, indexed)`: Plugin contract address removed from the registry.

**Description:** Emitted when a plugin is removed from the registry.

**Event Signature:** `RemovePlugin(address indexed plugin)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ISafeMinimalMultisig (ISM1)

### CreateSafeMinimalMultisigProposal (ISM1)

**Parameters:**

* `proposalId (uint256)`: Identifier of the newly created proposal.
* `voter (bytes32)`: Voter identifier that created the proposal.
* `reqConfirmations (uint128)`: Required confirmations for this proposal.

**Description:** Emitted when a multisig proposal is created.

**Event Signature:** `CreateSafeMinimalMultisigProposal(uint256 proposalId, bytes32 voter, uint128 reqConfirmations)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#barpropose-bpar1)
* [LegacyRecoveryPlugin.lrPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#lrpropose-lrp1)
* [LibSafeMinimalBeneficiaryMultisig.\_propose()](https://docs.cryptolegacy.app/documentation/functions-reference#_propose-lsmb1)
* [LibSafeMinimalMultisig.\_propose()](https://docs.cryptolegacy.app/documentation/functions-reference#_propose-lsm1)

**Notes / Edge cases:** None

### CancelSafeMinimalMultisigProposal (ISM1)

**Parameters:**

* `proposalId (uint256)`: Identifier of the canceled proposal.
* `voter (bytes32)`: Voter identifier that canceled the proposal.
* `reqConfirmations (uint128)`: Required confirmations for this proposal.
* `status (ProposalStatus)`: Proposal status after cancellation.

**Description:** Emitted when a multisig proposal is canceled.

**Event Signature:** `CancelSafeMinimalMultisigProposal(uint256 proposalId, bytes32 voter, uint128 reqConfirmations, ProposalStatus status)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barCancel()](https://docs.cryptolegacy.app/documentation/functions-reference#barcancel-bpar1)
* [LegacyRecoveryPlugin.lrCancel()](https://docs.cryptolegacy.app/documentation/functions-reference#lrcancel-lrp1)
* [LibSafeMinimalBeneficiaryMultisig.\_cancel()](https://docs.cryptolegacy.app/documentation/functions-reference#_cancel-lsmb1)
* [LibSafeMinimalMultisig.\_cancel()](https://docs.cryptolegacy.app/documentation/functions-reference#_cancel-lsm1)

**Notes / Edge cases:** None

### ConfirmSafeMinimalMultisigProposal (ISM1)

**Parameters:**

* `proposalId (uint256)`: Identifier of the confirmed proposal.
* `voter (bytes32)`: Voter identifier that confirmed the proposal.
* `reqConfirmations (uint128)`: Required confirmations for this proposal.
* `confirms (uint256)`: Current number of confirmations after this vote.

**Description:** Emitted when a voter confirms a multisig proposal.

**Event Signature:** `ConfirmSafeMinimalMultisigProposal(uint256 proposalId, bytes32 voter, uint128 reqConfirmations, uint256 confirms)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#barconfirm-bpar1)
* [LegacyRecoveryPlugin.lrConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#lrconfirm-lrp1)
* [LibSafeMinimalBeneficiaryMultisig.\_confirm()](https://docs.cryptolegacy.app/documentation/functions-reference#_confirm-lsmb1)
* [LibSafeMinimalMultisig.\_confirm()](https://docs.cryptolegacy.app/documentation/functions-reference#_confirm-lsm1)

**Notes / Edge cases:** None

### ExecuteSafeMinimalMultisigProposal (ISM1)

**Parameters:**

* `proposalId (uint256)`: Identifier of the executed proposal.
* `voter (bytes32)`: Voter identifier that executed the proposal.
* `executed (bool)`: Whether the execution succeeded.
* `returnData (bytes)`: Return data from the executed call.

**Description:** Emitted when a multisig proposal is executed (or execution is attempted).

**Event Signature:** `ExecuteSafeMinimalMultisigProposal(uint256 proposalId, bytes32 voter, bool executed, bytes returnData)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#barpropose-bpar1)
* [BeneficiaryPluginAddRights.barConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#barconfirm-bpar1)
* [LegacyRecoveryPlugin.lrPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#lrpropose-lrp1)
* [LegacyRecoveryPlugin.lrConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#lrconfirm-lrp1)
* [LibSafeMinimalMultisig.\_execute()](https://docs.cryptolegacy.app/documentation/functions-reference#_execute-lsm1)

**Notes / Edge cases:** None

### SetVotersAndConfirmations (ISM1)

**Parameters:**

* `voters (bytes32[])`: New list of voter identifiers.
* `requiredConfirmations (uint128)`: New required confirmations threshold.

**Description:** Emitted when the voter set and confirmation threshold are updated.

**Event Signature:** `SetVotersAndConfirmations(bytes32[] voters, uint128 requiredConfirmations)`

**Emitted by:**

* [LegacyRecoveryPlugin.lrSetMultisigConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#lrsetmultisigconfig-lrp1)
* [LibSafeMinimalMultisig.\_setVotersAndConfirmations()](https://docs.cryptolegacy.app/documentation/functions-reference#_setvotersandconfirmations-lsm1)

**Notes / Edge cases:** None

### SetConfirmations (ISM1)

**Parameters:**

* `requiredConfirmations (uint128)`: New required confirmations threshold.

**Description:** Emitted when the required confirmations threshold is updated.

**Event Signature:** `SetConfirmations(uint128 requiredConfirmations)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barSetMultisigConfig()](https://docs.cryptolegacy.app/documentation/functions-reference#barsetmultisigconfig-bpar1)
* [BeneficiaryPluginAddRights.barPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#barpropose-bpar1)
* [BeneficiaryPluginAddRights.barConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#barconfirm-bpar1)
* [LibSafeMinimalBeneficiaryMultisig.\_setConfirmations()](https://docs.cryptolegacy.app/documentation/functions-reference#_setconfirmations-lsmb1)

**Notes / Edge cases:** None

### AddHeldEth (ISM1)

**Parameters:**

* `voter (bytes32)`: Voter identifier whose held ETH balance increased.
* `value (uint256)`: Amount of ETH credited.

**Description:** Emitted when ETH is credited to a voter's held balance.

**Event Signature:** `AddHeldEth(bytes32 voter, uint256 value)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#barpropose-bpar1)
* [BeneficiaryPluginAddRights.barConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#barconfirm-bpar1)
* [LegacyRecoveryPlugin.lrPropose()](https://docs.cryptolegacy.app/documentation/functions-reference#lrpropose-lrp1)
* [LegacyRecoveryPlugin.lrConfirm()](https://docs.cryptolegacy.app/documentation/functions-reference#lrconfirm-lrp1)
* [LibSafeMinimalMultisig.\_updateHeldEth()](https://docs.cryptolegacy.app/documentation/functions-reference#_updateheldeth-lsm1)

**Notes / Edge cases:** None

### WithdrawHeldEth (ISM1)

**Parameters:**

* `voter (bytes32)`: Voter identifier whose held ETH balance decreased.
* `value (uint256)`: Amount of ETH withdrawn.

**Description:** Emitted when ETH is withdrawn from a voter's held balance.

**Event Signature:** `WithdrawHeldEth(bytes32 voter, uint256 value)`

**Emitted by:**

* [BeneficiaryPluginAddRights.barWithdrawHeldEth()](https://docs.cryptolegacy.app/documentation/functions-reference#barwithdrawheldeth-bpar1)
* [LegacyRecoveryPlugin.lrWithdrawHeldEth()](https://docs.cryptolegacy.app/documentation/functions-reference#lrwithdrawheldeth-lrp1)
* [LibSafeMinimalBeneficiaryMultisig.\_withdrawHeldEth()](https://docs.cryptolegacy.app/documentation/functions-reference#_withdrawheldeth-lsmb1)
* [LibSafeMinimalMultisig.\_withdrawHeldEth()](https://docs.cryptolegacy.app/documentation/functions-reference#_withdrawheldeth-lsm1)

**Notes / Edge cases:** None

## ISignatureRoleTimelock (ISRT1)

### SetMaxExecutionPeriod (ISRT1)

**Parameters:**

* `maxExecutionPeriod (uint128, indexed)`: Maximum execution window for scheduled calls (seconds).

**Description:** Emitted when the maximum execution period is set or updated.

**Event Signature:** `SetMaxExecutionPeriod(uint128 indexed maxExecutionPeriod)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddRoleAccount (ISRT1)

**Parameters:**

* `role (bytes32, indexed)`: Role identifier being granted.
* `account (address, indexed)`: Account address granted the role.

**Description:** Emitted when an account is granted a role.

**Event Signature:** `AddRoleAccount(bytes32 indexed role, address indexed account)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveRoleAccount (ISRT1)

**Parameters:**

* `role (bytes32, indexed)`: Role identifier being revoked.
* `account (address, indexed)`: Account address removed from the role.

**Description:** Emitted when an account is removed from a role.

**Event Signature:** `RemoveRoleAccount(bytes32 indexed role, address indexed account)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddSignatureRole (ISRT1)

**Parameters:**

* `target (address, indexed)`: Target contract address.
* `signature (bytes4, indexed)`: Function selector being restricted.
* `role (bytes32, indexed)`: Role required to schedule/execute the call.
* `timelock (uint256)`: Timelock delay (seconds) for the signature.

**Description:** Emitted when a role requirement and timelock are assigned to a target function.

**Event Signature:** `AddSignatureRole(address indexed target, bytes4 indexed signature, bytes32 indexed role, uint256 timelock)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveSignatureRole (ISRT1)

**Parameters:**

* `target (address, indexed)`: Target contract address.
* `signature (bytes4, indexed)`: Function selector being unassigned.

**Description:** Emitted when a role requirement for a target function is removed.

**Event Signature:** `RemoveSignatureRole(address indexed target, bytes4 indexed signature)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AddTarget (ISRT1)

**Parameters:**

* `target (address, indexed)`: Target contract address added to the allowlist.

**Description:** Emitted when a target contract is added to the allowlist.

**Event Signature:** `AddTarget(address indexed target)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RemoveTarget (ISRT1)

**Parameters:**

* `target (address, indexed)`: Target contract address removed from the allowlist.

**Description:** Emitted when a target contract is removed from the allowlist.

**Event Signature:** `RemoveTarget(address indexed target)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CallScheduled (ISRT1)

**Parameters:**

* `callId (bytes32, indexed)`: Unique identifier of the scheduled call.
* `caller (address, indexed)`: Address that scheduled the call.
* `target (address, indexed)`: Target contract address.
* `signature (bytes4)`: Function selector to be executed.
* `executeAfter (uint256)`: Earliest timestamp when the call can be executed.

**Description:** Emitted when a call is scheduled with a timelock.

**Event Signature:** `CallScheduled(bytes32 indexed callId, address indexed caller, address indexed target, bytes4 signature, uint256 executeAfter)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CallExecuted (ISRT1)

**Parameters:**

* `callId (bytes32, indexed)`: Identifier of the executed call.
* `msgSender (address, indexed)`: Executor address.
* `returnData (bytes)`: Return data from the executed call.

**Description:** Emitted when a scheduled call is executed.

**Event Signature:** `CallExecuted(bytes32 indexed callId, address indexed msgSender, bytes returnData)`

**Emitted by:**

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

**Notes / Edge cases:** None

### CallCanceled (ISRT1)

**Parameters:**

* `callId (bytes32, indexed)`: Identifier of the canceled call.
* `msgSender (address, indexed)`: Address that canceled the call.

**Description:** Emitted when a scheduled call is canceled.

**Event Signature:** `CallCanceled(bytes32 indexed callId, address indexed msgSender)`

**Emitted by:**

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

**Notes / Edge cases:** None

## IStataToken (ISTA1)

**No events in this contract/library.**

## IStataTokenFactory (ISTF1)

**No events in this contract/library.**

## ITrustedGuardiansPlugin (ITGP1)

### SetGuardian (ITGP1)

**Parameters:**

* `guardian (bytes32, indexed)`: Guardian identifier hash that was added to or removed from the guardians set.
* `\_isAdd (bool, indexed)`: True if the guardian was added; false if removed.

**Description:** Emitted when a guardian is added to or removed from the guardians set during initialization or updates.

**Event Signature:** `SetGuardian(bytes32 indexed guardian, bool indexed \_isAdd)`

**Emitted by:**

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

**Notes / Edge cases:** None

### GuardiansVoteForDistribution (ITGP1)

**Parameters:**

* `guardian (bytes32, indexed)`: Guardian identifier hash that submitted the vote.
* `votedCount (uint256)`: Current number of recorded guardian votes after this vote (may be reset to 0 if the threshold is reached).

**Description:** Emitted when a guardian successfully votes for distribution and the vote count is updated.

**Event Signature:** `GuardiansVoteForDistribution(bytes32 indexed guardian, uint256 votedCount)`

**Emitted by:**

* [TrustedGuardiansPlugin.guardiansVoteForDistribution()](https://docs.cryptolegacy.app/documentation/functions-reference#guardiansvotefordistribution-tgp1)

**Notes / Edge cases:** None

### GuardiansDistributionStartSet (ITGP1)

**Parameters:**

* `guardian (bytes32, indexed)`: Guardian identifier hash whose vote triggered or updated the distribution start time.
* `distributionStartAt (uint256)`: Timestamp when distribution becomes available after the guardians challenge timeout.

**Description:** Emitted when the voting threshold is met and the distribution start time is set or updated.

**Event Signature:** `GuardiansDistributionStartSet(bytes32 indexed guardian, uint256 distributionStartAt)`

**Emitted by:**

* [TrustedGuardiansPlugin.guardiansVoteForDistribution()](https://docs.cryptolegacy.app/documentation/functions-reference#guardiansvotefordistribution-tgp1)

**Notes / Edge cases:** None

### SetGuardiansConfig (ITGP1)

**Parameters:**

* `guardiansThreshold (uint128)`: Required number of guardian votes to trigger distribution.
* `guardiansChallengeTimeout (uint64)`: Challenge timeout in seconds applied once the threshold is met.

**Description:** Emitted when the guardians threshold and challenge timeout configuration is set or updated.

**Event Signature:** `SetGuardiansConfig(uint128 guardiansThreshold, uint64 guardiansChallengeTimeout)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ResetGuardiansVoting (ITGP1)

**Parameters:** None

**Description:** Emitted when guardian voting state is reset, clearing recorded guardian votes and resetting the distribution start time.

**Event Signature:** `ResetGuardiansVoting()`

**Emitted by:**

* [LegacyRecoveryPlugin.lrResetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#lrresetguardianvoting-lrp1)
* [TrustedGuardiansPlugin.resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#resetguardianvoting-tgp1)
* [LibTrustedGuardiansPlugin.\_resetGuardianVoting()](https://docs.cryptolegacy.app/documentation/functions-reference#_resetguardianvoting-ltgp1)

**Notes / Edge cases:** None

### ClearGuardiansVoted (ITGP1)

**Parameters:** None

**Description:** Emitted when the guardian votes list is cleared after guardians configuration changes.

**Event Signature:** `ClearGuardiansVoted()`

**Emitted by:**

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

**Notes / Edge cases:** None

## DiamondLoupeFacet (DLF1)

**No events in this contract/library.**

## IUniversalRouter (IUR1)

**No events in this contract/library.**

## IWETH (IWETH1)

**No events in this contract/library.**

## IWstETH (IWSTETH1)

**No events in this contract/library.**

## WethUnwrapIWETH (WUI1)

**No events in this contract/library.**

## LibCLUtils (LCLU1)

**No events in this contract/library.**

## LibClaimMigrationCore (LCMC1)

**No events in this contract/library.**

## LibOneStepClaimMigration (LOSCM1)

**No events in this contract/library.**

## LibTwoStepClaimMigration (LTSCM1)

**No events in this contract/library.**

## LibCreate3 (LC31)

**No events in this contract/library.**

## LibCryptoLegacy (LCL1)

**No events in this contract/library.**

## LibCryptoLegacyDeploy (LCLD1)

### CryptoLegacyCreation (LCLD1)

**Parameters:**

* `addr (address)`: Address of the newly deployed CryptoLegacy contract.
* `salt (bytes32)`: The final CREATE3 salt derived from the owner and factory/user salt used for deployment.
* `userSalt (bytes32)`: The factory/user-provided salt that seeds the final CREATE3 salt (or its fallback value).

**Description:** Emitted after a successful CREATE3 deployment to record the deployed address and salts used.

**Event Signature:** `CryptoLegacyCreation(address addr, bytes32 salt, bytes32 userSalt)`

**Emitted by:**

* [LibCryptoLegacyDeploy.\_deployByCreate3()](https://docs.cryptolegacy.app/documentation/functions-reference#_deploybycreate3-lcld1)

**Notes / Edge cases:** None

## LibCryptoLegacyPlugins (LCLP1)

**No events in this contract/library.**

## LibDiamond (LD1)

### OwnershipTransferred (LD1)

**Parameters:**

* `previousOwner (address, indexed)`: Address that previously owned the diamond.
* `newOwner (address, indexed)`: Address that becomes the new diamond owner.

**Description:** Emitted when the diamond owner is updated via `LibDiamond.setContractOwner`.

**Event Signature:** `OwnershipTransferred(address indexed previousOwner, address indexed newOwner)`

**Emitted by:**

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

**Notes / Edge cases:** None

### DiamondCut (LD1)

**Parameters:**

* `\_diamondCut (IDiamondCut.FacetCut[])`: The list of facet add/replace/remove operations applied to the diamond.
* `\_init (address)`: Optional initialization target that will receive the delegatecall.
* `\_calldata (bytes)`: Initialization calldata passed to the delegatecall (empty if no init).

**Description:** Emitted after applying a facet cut to record the changes and the optional initialization call.

**Event Signature:** `DiamondCut(IDiamondCut.FacetCut[] \_diamondCut, address \_init, bytes \_calldata)`

**Emitted by:**

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

**Notes / Edge cases:** None

## LibSafeMinimalBeneficiaryMultisig (LSMB1)

**No events in this contract/library.**

## LibSafeMinimalMultisig (LSM1)

**No events in this contract/library.**

## LibTrustedGuardiansPlugin (LTGP1)

**No events in this contract/library.**

## BeneficiaryAaveV3SupplyPlugin (BALP1)

### AaveSupply (BALP1)

**Parameters:**

* `asset (address, indexed)`: Reserve asset supplied into Aave.
* `aToken (address, indexed)`: Yield-bearing aToken received for the reserve.
* `amount (uint256)`: Asset amount that was supplied.

**Description:** Emitted after the plugin supplies an asset into Aave V3 and migrates beneficiary claims from the reserve asset into its aToken.

**Event Signature:** `AaveSupply(address indexed asset, address indexed aToken, uint256 amount)`

**Emitted by:**

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

**Notes / Edge cases:** None

### AaveWithdraw (BALP1)

**Parameters:**

* `asset (address, indexed)`: Reserve asset withdrawn from Aave.
* `aToken (address, indexed)`: aToken burned during the withdrawal.
* `amount (uint256)`: Asset amount requested from the pool.

**Description:** Emitted after the plugin withdraws an asset from Aave V3 and migrates beneficiary claims from the aToken back into the reserve asset.

**Event Signature:** `AaveWithdraw(address indexed asset, address indexed aToken, uint256 amount)`

**Emitted by:**

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

**Notes / Edge cases:** None

### WrapATokenToStataToken (BALP1)

**Parameters:**

* `aToken (address, indexed)`: aToken that was wrapped.
* `stataToken (address, indexed)`: StataToken received by the plugin.
* `aTokenAmount (uint256)`: aToken amount sent into the wrapper.
* `stataTokenReceived (uint256)`: StataToken shares minted to the plugin.

**Description:** Emitted after the plugin converts rebasing aTokens into non-rebasing StataToken shares.

**Event Signature:** `WrapATokenToStataToken(address indexed aToken, address indexed stataToken, uint256 aTokenAmount, uint256 stataTokenReceived)`

**Emitted by:**

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

**Notes / Edge cases:** When `aTokenAmount == type(uint256).max`, the plugin first expands it to the full aToken balance it currently holds.

### UnwrapStataTokenToAToken (BALP1)

**Parameters:**

* `stataToken (address, indexed)`: StataToken share contract being redeemed.
* `aToken (address, indexed)`: aToken returned by the redemption.
* `stataTokenShares (uint256)`: Share amount redeemed.
* `aTokenReceived (uint256)`: aToken amount received by the plugin.

**Description:** Emitted after the plugin redeems StataToken shares back into rebasing aTokens.

**Event Signature:** `UnwrapStataTokenToAToken(address indexed stataToken, address indexed aToken, uint256 stataTokenShares, uint256 aTokenReceived)`

**Emitted by:**

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

**Notes / Edge cases:** The emitted `aTokenReceived` depends on the current ERC-4626 exchange rate.

### DepositToStataToken (BALP1)

**Parameters:**

* `asset (address, indexed)`: Reserve asset deposited into the StataToken wrapper.
* `stataToken (address, indexed)`: StataToken received by the plugin.
* `amount (uint256)`: Asset amount deposited.
* `stataTokenReceived (uint256)`: StataToken shares minted to the plugin.

**Description:** Emitted after the plugin deposits a reserve asset directly into its StataToken wrapper and migrates beneficiary claims in one step.

**Event Signature:** `DepositToStataToken(address indexed asset, address indexed stataToken, uint256 amount, uint256 stataTokenReceived)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RedeemFromStataToken (BALP1)

**Parameters:**

* `stataToken (address, indexed)`: StataToken share contract being redeemed.
* `asset (address, indexed)`: Reserve asset received by the plugin.
* `stataTokenShares (uint256)`: Share amount redeemed.
* `assetReceived (uint256)`: Reserve-asset amount returned by the redemption.

**Description:** Emitted after the plugin redeems StataToken shares directly into the reserve asset and migrates claims back into the underlying token.

**Event Signature:** `RedeemFromStataToken(address indexed stataToken, address indexed asset, uint256 stataTokenShares, uint256 assetReceived)`

**Emitted by:**

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

**Notes / Edge cases:** None

## BeneficiaryLidoStakingPlugin (BLSP1)

### StakeWethToStEth (BLSP1)

**Parameters:**

* `wethAmount (uint256)`: WETH amount unwrapped and staked.
* `sharesMinted (uint256)`: Lido share amount minted from the stake.

**Description:** Emitted after the plugin unwraps WETH into ETH and submits that ETH to Lido for rebasing stETH shares.

**Event Signature:** `StakeWethToStEth(uint256 wethAmount, uint256 sharesMinted)`

**Emitted by:**

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

**Notes / Edge cases:** The stETH balance may differ by 1-2 wei from the input ETH because Lido internally accounts in shares.

### WrapWethToWstEth (BLSP1)

**Parameters:**

* `wethAmount (uint256)`: WETH amount unwrapped and forwarded into wstETH wrapping.
* `wstEthMinted (uint256)`: wstETH amount minted to the plugin.

**Description:** Emitted after the plugin unwraps WETH into ETH and atomically wraps the resulting ETH into non-rebasing wstETH.

**Event Signature:** `WrapWethToWstEth(uint256 wethAmount, uint256 wstEthMinted)`

**Emitted by:**

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

**Notes / Edge cases:** The emitted `wstEthMinted` reflects the current stETH:wstETH exchange rate, not a 1:1 relationship with ETH.

### RequestStEthWithdrawal (BLSP1)

**Parameters:**

* `requestIds (uint256[])`: Withdrawal-request IDs returned by the Lido queue.
* `stEthAmounts (uint256[])`: stETH amounts requested for withdrawal.

**Description:** Emitted after the plugin submits stETH withdrawal requests and starts a pending two-step migration from stETH into WETH.

**Event Signature:** `RequestStEthWithdrawal(uint256[] requestIds, uint256[] stEthAmounts)`

**Emitted by:**

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

**Notes / Edge cases:** None

### RequestWstEthWithdrawal (BLSP1)

**Parameters:**

* `requestIds (uint256[])`: Withdrawal-request IDs returned by the Lido queue.
* `wstEthAmounts (uint256[])`: wstETH amounts requested for withdrawal.

**Description:** Emitted after the plugin submits wstETH withdrawal requests and starts a pending two-step migration from wstETH into WETH.

**Event Signature:** `RequestWstEthWithdrawal(uint256[] requestIds, uint256[] wstEthAmounts)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ClaimWithdrawals (BLSP1)

**Parameters:**

* `requestIds (uint256[])`: Withdrawal-request IDs claimed in the queue.
* `ethClaimedAmount (uint256)`: ETH amount claimed and then wrapped into WETH.

**Description:** Emitted after a beneficiary claims finalized Lido withdrawals and the plugin completes the pending two-step migration into WETH.

**Event Signature:** `ClaimWithdrawals(uint256[] requestIds, uint256 ethClaimedAmount)`

**Emitted by:**

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

**Notes / Edge cases:** Emits even when the claimed ETH amount is zero.

### UnsafeClaimWithdrawals (BLSP1)

**Parameters:**

* `requestIds (uint256[])`: Withdrawal-request IDs claimed in the queue.
* `ethClaimedAmount (uint256)`: ETH amount claimed and then wrapped into WETH.

**Description:** Emitted after the emergency unsafe-claim path settles finalized Lido withdrawals without replaying the original fair migration state.

**Event Signature:** `UnsafeClaimWithdrawals(uint256[] requestIds, uint256 ethClaimedAmount)`

**Emitted by:**

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

**Notes / Edge cases:** This path is intentionally unfair relative to historical claims and exists only for emergency recovery scenarios.

### AbandonMigration (BLSP1)

**Parameters:**

* `tokenOut (address, indexed)`: Token being abandoned as the migration source.
* `tokenIn (address, indexed)`: Token that would have been credited by the pending migration.
* `tokenOutBalance (uint256)`: Source-token balance remaining after the abandonment path completes.

**Description:** Emitted after the plugin abandons an active Lido pending migration and restores the source-token distribution state.

**Event Signature:** `AbandonMigration(address indexed tokenOut, address indexed tokenIn, uint256 tokenOutBalance)`

**Emitted by:**

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

**Notes / Edge cases:** When `tokenOutBalance == 0`, the plugin also zeroes the cached beneficiary claims for that token before emitting the event.

## BeneficiaryPluginAddRights (BPAR1)

**No events in this contract/library.**

## BeneficiaryUniswapV4SwapPlugin (BU4SP1)

### UniswapV4SwapExactInputSingle (BU4SP1)

**Parameters:**

* `tokenIn (address, indexed)`: Input token sold into the swap.
* `tokenOut (address, indexed)`: Output token received from the swap.
* `amountIn (uint256)`: Exact input amount sent into the router.
* `amountOut (uint256)`: Output amount received by the plugin.

**Description:** Emitted after the plugin executes a single-hop exact-input swap through the Universal Router and migrates claims from the sold token into the received token.

**Event Signature:** `UniswapV4SwapExactInputSingle(address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)`

**Emitted by:**

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

**Notes / Edge cases:** None

### UniswapV4SwapExactInput (BU4SP1)

**Parameters:**

* `tokenIn (address, indexed)`: Input token sold into the multi-hop route.
* `tokenOut (address, indexed)`: Final output token received from the route.
* `amountIn (uint256)`: Exact input amount sent into the router.
* `amountOut (uint256)`: Final output amount received by the plugin.

**Description:** Emitted after the plugin executes a multi-hop exact-input swap through the Universal Router and migrates claims into the route's final output token.

**Event Signature:** `UniswapV4SwapExactInput(address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut)`

**Emitted by:**

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

**Notes / Edge cases:** None

## CryptoLegacyBasePlugin (CLBP1)

### SetBeneficiary (CLBP1)

**Parameters:**

* `beneficiary (bytes32, indexed)`: Beneficiary hash being configured.
* `vestingPeriod (uint64, indexed)`: Vesting period (seconds) for the beneficiary.
* `shareBps (uint64)`: Share in basis points assigned to the beneficiary.
* `claimDelay (uint64)`: Delay (seconds) before the beneficiary can claim.

**Description:** Emitted when a beneficiary configuration is set or updated.

**Event Signature:** `SetBeneficiary(bytes32 indexed beneficiary, uint64 indexed vestingPeriod, uint64 shareBps, uint64 claimDelay)`

**Emitted by:**

* [CryptoLegacyBasePlugin.\_setBeneficiaries()](https://docs.cryptolegacy.app/documentation/functions-reference#_setbeneficiaries-clbp1)

**Notes / Edge cases:** None

### SwitchBeneficiary (CLBP1)

**Parameters:**

* `oldBeneficiary (bytes32, indexed)`: Previous beneficiary hash.
* `newBeneficiary (bytes32, indexed)`: New beneficiary hash.

**Description:** Emitted when the beneficiary is switched from one hash to another.

**Event Signature:** `SwitchBeneficiary(bytes32 indexed oldBeneficiary, bytes32 indexed newBeneficiary)`

**Emitted by:**

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

**Notes / Edge cases:** None

### ChallengeInitiate (CLBP1)

**Parameters:**

* `beneficiary (bytes32, indexed)`: Beneficiary hash being challenged.

**Description:** Emitted when a beneficiary challenge process is initiated.

**Event Signature:** `ChallengeInitiate(bytes32 indexed beneficiary)`

**Emitted by:**

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

**Notes / Edge cases:** None

### BeneficiaryMessage (CLBP1)

**Parameters:**

* `toBeneficiary (bytes32, indexed)`: Beneficiary hash receiving the message.
* `messageHash (bytes32)`: Hash of the message payload.
* `message (bytes)`: Raw message payload.
* `messageType (uint256, indexed)`: Message type identifier.

**Description:** Emitted when a message is sent to a beneficiary.

**Event Signature:** `BeneficiaryMessage(bytes32 indexed toBeneficiary, bytes32 messageHash, bytes message, uint256 indexed messageType)`

**Emitted by:**

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

**Notes / Edge cases:** None

### BeneficiaryMessageCheck (CLBP1)

**Parameters:**

* `toBeneficiary (bytes32, indexed)`: Beneficiary hash receiving the message check.
* `messageHash (bytes32)`: Hash of the message payload.
* `message (bytes)`: Raw message payload.
* `messageType (uint256, indexed)`: Message type identifier.

**Description:** Emitted when a message is sent for beneficiary verification/check.

**Event Signature:** `BeneficiaryMessageCheck(bytes32 indexed toBeneficiary, bytes32 messageHash, bytes message, uint256 indexed messageType)`

**Emitted by:**

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

**Notes / Edge cases:** None

## LegacyRecoveryPlugin (LRP1)

**No events in this contract/library.**

## LensPlugin (LP1)

**No events in this contract/library.**

## NftLegacyPlugin (NLP1)

### SetNftBeneficiary (NLP1)

**Parameters:**

* `nftContract (address, indexed)`: Address of the NFT contract for which the beneficiary is being set.
* `tokenId (uint256, indexed)`: ID of the NFT for which the beneficiary is being set.
* `beneficiaryHash (bytes32, indexed)`: Beneficiary hash (typically keccak256 of the address) assigned rights to this NFT.

**Description:** Emitted when a beneficiary is set or updated for a specific NFT in `setNftBeneficiary` (one event per `tokenId`).

**Event Signature:** `SetNftBeneficiary(address indexed nftContract, uint256 indexed tokenId, bytes32 indexed beneficiaryHash)`

**Emitted by:**

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

**Notes / Edge cases:** None

### BeneficiaryClaimNft (NLP1)

**Parameters:**

* `nftContract (address, indexed)`: Address of the NFT contract whose token is being claimed.
* `tokenId (uint256, indexed)`: ID of the NFT claimed by the beneficiary.
* `beneficiaryHash (bytes32, indexed)`: Beneficiary hash authorized to claim the NFT.
* `beneficiaryAddress (address)`: Beneficiary address that received the NFT.

**Description:** Emitted after a beneficiary successfully claims an NFT in `beneficiaryClaimNft` (eligibility and delay already verified).

**Event Signature:** `BeneficiaryClaimNft(address indexed nftContract, uint256 indexed tokenId, bytes32 indexed beneficiaryHash, address beneficiaryAddress)`

**Emitted by:**

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

**Notes / Edge cases:** None

### TransferNftToCryptoLegacy (NLP1)

**Parameters:**

* `nftContract (address, indexed)`: Address of the NFT contract whose token is transferred to CryptoLegacy.
* `tokenId (uint256, indexed)`: ID of the NFT transferred to the CryptoLegacy contract.

**Description:** Emitted when an NFT is transferred to CryptoLegacy during `transferNftTokensToLegacy` (one event per `tokenId`).

**Event Signature:** `TransferNftToCryptoLegacy(address indexed nftContract, uint256 indexed tokenId)`

**Emitted by:**

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

**Notes / Edge cases:** None

## ReceiveEthPlugin (REP1)

### WrapEthToWeth (REP1)

**Parameters:**

* `amount (uint256)`: Amount of ETH that was wrapped into WETH.

**Description:** Emitted when `wrapEthToWeth()` converts the contract's ETH balance into WETH and updates CryptoLegacy distribution state.

**Event Signature:** `WrapEthToWeth(uint256 amount)`

**Emitted by:**

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

**Notes / Edge cases:** The emitted amount equals the full ETH balance held by the plugin context at execution time.

## TrustedGuardiansPlugin (TGP1)

**No events in this contract/library.**

## UpdateRolePlugin (URP1)

**No events in this contract/library.**

## Parameter Types

| Type                                | Description                                        |
| ----------------------------------- | -------------------------------------------------- |
| `address`                           | EOA or contract address.                           |
| `string`                            | UTF-8 string.                                      |
| `bool`                              | Boolean flag.                                      |
| `bytes32`                           | Fixed-length byte array.                           |
| `uint256`                           | Unsigned 256-bit integer.                          |
| `bytes8`                            | Fixed-length 8-byte array.                         |
| `uint64`                            | Unsigned 64-bit integer.                           |
| `address[]`                         | Array of `address` values.                         |
| `ICryptoLegacy.TokenTransferTo[]`   | Array of `ICryptoLegacy.TokenTransferTo` values.   |
| `uint`                              | Unsigned integer (alias of uint256).               |
| `bytes4[]`                          | Array of `bytes4` values.                          |
| `uint16`                            | Unsigned 16-bit integer.                           |
| `bytes`                             | Dynamic byte array.                                |
| `uint256[]`                         | Array of `uint256` values.                         |
| `bytes32[]`                         | Array of `bytes32` values.                         |
| `ICryptoLegacy.BeneficiaryConfig[]` | Array of `ICryptoLegacy.BeneficiaryConfig` values. |
| `uint32`                            | Unsigned 32-bit integer.                           |
| `FeeParams`                         | Type defined in the source contracts.              |
| `ChainSupportInfo`                  | Type defined in the source contracts.              |
| `FacetCut[]`                        | Array of `FacetCut` values.                        |
| `uint8`                             | Unsigned 8-bit integer.                            |
| `FeeBeneficiary[]`                  | Array of `FeeBeneficiary` values.                  |
| `uint128`                           | Unsigned 128-bit integer.                          |
| `ProposalStatus`                    | Type defined in the source contracts.              |
| `bytes4`                            | Fixed-length 4-byte array.                         |
| `IDiamondCut.FacetCut[]`            | Array of `IDiamondCut.FacetCut` values.            |


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.cryptolegacy.app/documentation/events-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
