2.2.5. Verification

Verification Core

If a project's circulating Supply CS(t)CS(t)is greater than CSs(t)CS_s(t), the project's scheduled circulating supply, more tokens are considered to be circulating than it's scheduled circulating supply. Therefore, verification for CS(t)CS(t)is true when

CS(t)≤CSs(t)CS(t) \le CS_{s}(t)

Verification may target via allocation categories, ACi(t)AC_i(t). Therefore, assuming categorized unlock schedules exist, verification for a allocation category ACi(t)AC_i(t)is true when

ACi(t)≤ACis(t)AC_i(t) \le AC_{i_s}(t)

TGE Verification

TGE(TokenGenerationEvent)TGE(Token Generation Event): A specific time tTGEt_{TGE}(=tinit=t_{init}) where Token Contract deployment event occurred and tokens are minted and distributed initially

When TGE event occurs, we assume these properties to be existent at the generation event:

(1) AC(AllocationCategories)AC(AllocationCategories): Allocation Categories defined by the project

(2) TSACi(t)TS_{ACi}(t): Tokens that are allocated to each categories also defined by the project

Verifying the actual distribution status at tTGEt_{TGE}, verification logic follows below equation

Σi=1nTSACi(tTGE)=TS(tTGE)\Sigma_{i=1}^n TS_{AC_i}(t_{TGE}) = TS(t_{TGE})

Where aciac_{i} ∈\in {ac1,ac2,ac3,ac4,ac5...acn}=AllocationCategories\{ac_1,ac_2,ac_3,ac_4,ac_5...ac_n \} = AllocationCategories which every element in the set corresponds to AllocationCategoriesAllocationCategories provided by the project.

Since AllocationCategoriesAllocationCategories is intrinsically a labelled arbitrary data type, new ACnAC_n should also be implemented to arbitrarily be created, read, updated, and removed anytime.

Verification Buffers

In the process of verifying projects’ unlock schedules vs actual on-chain data driven by given procedures, It is more often then not emphasized often to keep the balance between operational flexibility and objectiveness in abiding to unlock schedules. Here at Xangle, our standards are strict and even slight difference from unlock schedules are reported if over-issuance or over-circulation are to occur. However, if we are to leave a bit of room of flexibility for a project, this could be done in two ways: (1) quantity-wise verification buffers and (2) time-wise verification buffers.

(1) Quantity-Wise Verification Buffers (vertical buffers)

Comparing between CirculatingSupplyCirculating Supply at tt, CS(t)CS(t) and submitted ScheduledCirculatingSupplyScheduled Circulating Supply, CSsCS_{s} verification is true when

CS(t)−CSs(t)≤CS(t)∗βCS(t) - CS_{s}(t) \le CS(t)*\beta

where β\beta is a buffer coefficient for flexible distribution schedules management (recommend 0.1% of CSs(t)CS_{s}(t), of submitted ScheduledCirculatingSupplyScheduledCirculatingSupply to avoid excessive alarming from verification failures but the value may vary for different purposes)

(2) Time-Wise Verification Buffers (horizontal buffers)

Comparing between CirculatingSupplyCirculatingSupply at tt, and suppose a submitted ScheduledCirculatingSupplyScheduledCirculatingSupply, CSs(t)CS_s(t) has a buffer of tγt_{γ} Verification is true when

CSs(t−tγ)≤CS(t)≤CSs(t)CS_s(t-t_{\gamma})\le CS(t)\le CS_{s}(t)

Abiding to disclosed unlock schedules can be tricky for project sometimes. Things might go out of hand and require the actual operation on-chain to take more time than what people anticipated for. Therefore we need horizontal buffers, which gives a bit of flexibility on its operating schedules.

We strongly advise that these two buffers are jointly applied on top of base verification method - and selectively applied to each other. Meaning one can use only vertical buffers if it suits its verification needs better if he/she wants to.

Last updated