We propose the following method to select the block level for the hDAO snapshot. hDAO holders will receive as many Teia DAO tokens as hDAOs they had at the selected block level. These DAO tokens will be added to their corresponding activity tokens. The precise moment for the Teia DAO token claim is still to be decided, but it's expected to start in one or two months and last for several months. hDAO tokens will not be swapped or burned for Teia DAO tokens. hDAO owners can do whatever they consider appropriate with their tokens. The snapshot block level will be calculated using the following JavaScript code: // Parameters to be filled after the execution of this proposal. // They are now filled with example values from the last executed proposal: // https://tzkt.io/onjFdmaJMmZ7y12CmNDZTsxKZU41JTBYFJTdVtneToKCwNvAamV // let operationHash = "onjFdmaJMmZ7y12CmNDZTsxKZU41JTBYFJTdVtneToKCwNvAamV" let operationBlock = 3267596 // // Random number generator used by fxhash // https://www.fxhash.xyz/doc/artist/snippet-api#snippet-code // var fxhash = operationHash let alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" let b58dec = (str) => [...str].reduce((p, c) => (p * alphabet.length + alphabet.indexOf(c)) | 0, 0) let fxhashTrunc = fxhash.slice(2) let regex = new RegExp(".{" + ((fxhash.length / 4) | 0) + "}", "g") let hashes = fxhashTrunc.match(regex).map((h) => b58dec(h)) let sfc32 = (a, b, c, d) => { return () => { a |= 0 b |= 0 c |= 0 d |= 0 var t = (((a + b) | 0) + d) | 0 d = (d + 1) | 0 a = b ^ (b >>> 9) b = (c + (c << 3)) | 0 c = (c << 21) | (c >>> 11) c = (c + t) | 0 return (t >>> 0) / 4294967296 } } var fxrand = sfc32(...hashes) // // Calculate the block level where the hDAO snapshot will take place // const hdaoSnapshotBlock = Math.round(operationBlock - 200000 * fxrand()) The operationHash and operationBlock parameters will be set by the execution of this proposal. operationHash will be the operation hash associated to the proposal execution transaction. operationBlock will be the block number where the proposal execution transaction was included. By definition the hDAO snapshot block will be a block between the proposal execution block and 200000 blocks before that moment (around one month for 15-second blocks). The block selection is done using the fxhash random number generator function fxrand, which produces values between 0 and 1. With this method there is no practical way to know the hDAO snapshot block before the proposal is executed. The following tool can be used to calculate the block for the hDAO snapshot once this proposal is executed: https://ipfs.io/ipfs/QmYkYdhjGFXndWzcyksJeb5Mtf8CKUX9fR9d9QyeQYWnwd