From cfcdbe83c7ff93dfeae57e070f1d947aed12b21d Mon Sep 17 00:00:00 2001 From: handsdiff <239876380+handsdiff@users.noreply.github.com> Date: Wed, 29 Oct 2025 12:06:48 -0400 Subject: [PATCH 1/4] percent emissions --- ui/routes/claims.ts | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/ui/routes/claims.ts b/ui/routes/claims.ts index 2609514..06f6455 100644 --- a/ui/routes/claims.ts +++ b/ui/routes/claims.ts @@ -312,17 +312,44 @@ router.post('/mint', async ( // Hardcoded split configuration // claimersTotal represents the 90% portion for claimers (excluding 10% admin fee) - // For now: 100% of claimersTotal goes to the developer/creator - const splitRecipients: SplitRecipient[] = [ - { + const splitRecipients: SplitRecipient[] = []; + + // Special case for ZC token: split claimersTotal 50/50 between dev and Percent Markets treasury + const ZC_TOKEN_ADDRESS = 'GVvPZpC6ymCoiHzYJ7CWZ8LhVn9tL2AUpRjSAsLh6jZC'; + const PERCENT_TREASURY_ADDRESS = '4ySrS3XEn8ouZfA2JAgS9uZ5BWeVCyyR16wgJ1Tyh9aG'; // Treasury for percent markets ($PERC) for their contributions to improving the protocol + + if (tokenAddress === ZC_TOKEN_ADDRESS) { + // Split 90% claimers portion: 50% to dev, 50% to Percent Markets treasury + const devAmount = claimersTotal / BigInt(2); + const treasuryAmount = claimersTotal - devAmount; // Ensures total equals exactly claimersTotal + + splitRecipients.push( + { + wallet: trimmedCreatorWallet, + amount: devAmount, // 50% of the 90% claimers portion = 45% total + amountWithDecimals: devAmount * BigInt(10 ** decimals), + label: 'Developer' + }, + { + wallet: PERCENT_TREASURY_ADDRESS, + amount: treasuryAmount, // 50% of the 90% claimers portion = 45% total + amountWithDecimals: treasuryAmount * BigInt(10 ** decimals), + label: 'Percent Markets Treasury' + } + ); + + console.log(`ZC token emission split: 45% to developer ${trimmedCreatorWallet}, 45% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); + } else { + // Default: 100% of claimersTotal goes to the developer/creator + splitRecipients.push({ wallet: trimmedCreatorWallet, amount: claimersTotal, // 100% of the 90% claimers portion = 90% total amountWithDecimals: claimersTotal * BigInt(10 ** decimals), label: 'Developer' - } - ]; + }); - console.log(`Hardcoded emission split: 100% of claimers portion (90% total) to creator ${trimmedCreatorWallet}`) + console.log(`Hardcoded emission split: 100% of claimers portion (90% total) to creator ${trimmedCreatorWallet}`); + } // Get admin token account address const adminTokenAccount = await getAssociatedTokenAddress( From 225ce006732d516bd0410bade4dcd37632f8679b Mon Sep 17 00:00:00 2001 From: handsdiff <239876380+handsdiff@users.noreply.github.com> Date: Wed, 29 Oct 2025 17:01:40 -0400 Subject: [PATCH 2/4] ztorio emissions --- ui/routes/claims.ts | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/ui/routes/claims.ts b/ui/routes/claims.ts index 06f6455..1300a2f 100644 --- a/ui/routes/claims.ts +++ b/ui/routes/claims.ts @@ -314,31 +314,41 @@ router.post('/mint', async ( // claimersTotal represents the 90% portion for claimers (excluding 10% admin fee) const splitRecipients: SplitRecipient[] = []; - // Special case for ZC token: split claimersTotal 50/50 between dev and Percent Markets treasury + // Special case for ZC token: split claimersTotal between ztorio, dev, and Percent Markets treasury const ZC_TOKEN_ADDRESS = 'GVvPZpC6ymCoiHzYJ7CWZ8LhVn9tL2AUpRjSAsLh6jZC'; const PERCENT_TREASURY_ADDRESS = '4ySrS3XEn8ouZfA2JAgS9uZ5BWeVCyyR16wgJ1Tyh9aG'; // Treasury for percent markets ($PERC) for their contributions to improving the protocol + const ZTORIO_ADDRESS = 'A6R6fD82TaTSWKTpKKcRhBotYtc5izyauPFw3yHVYwuP'; // ztorio if (tokenAddress === ZC_TOKEN_ADDRESS) { - // Split 90% claimers portion: 50% to dev, 50% to Percent Markets treasury - const devAmount = claimersTotal / BigInt(2); - const treasuryAmount = claimersTotal - devAmount; // Ensures total equals exactly claimersTotal + // Split total: 2.5% to ztorio, 43.75% to dev, 43.75% to Percent Markets treasury, 10% to fee + // Calculate in basis points for precision: 2.5% = 250/10000 + const ztorioAmount = (requestedAmount * BigInt(250)) / BigInt(10000); // 2.5% of total + const remainderAfterZtorioAndAdmin = requestedAmount - ztorioAmount - adminAmount; // 87.5% of total + const devAmount = remainderAfterZtorioAndAdmin / BigInt(2); // 43.75% of total + const treasuryAmount = remainderAfterZtorioAndAdmin - devAmount; // 43.75% of total (ensures exact total) splitRecipients.push( + { + wallet: ZTORIO_ADDRESS, + amount: ztorioAmount, // 2.5% of total + amountWithDecimals: ztorioAmount * BigInt(10 ** decimals), + label: 'ztorio' + }, { wallet: trimmedCreatorWallet, - amount: devAmount, // 50% of the 90% claimers portion = 45% total + amount: devAmount, // 43.75% of total amountWithDecimals: devAmount * BigInt(10 ** decimals), label: 'Developer' }, { wallet: PERCENT_TREASURY_ADDRESS, - amount: treasuryAmount, // 50% of the 90% claimers portion = 45% total + amount: treasuryAmount, // 43.75% of total amountWithDecimals: treasuryAmount * BigInt(10 ** decimals), label: 'Percent Markets Treasury' } ); - console.log(`ZC token emission split: 45% to developer ${trimmedCreatorWallet}, 45% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); + console.log(`ZC token emission split: 2.5% to ztorio ${ZTORIO_ADDRESS}, 43.75% to developer ${trimmedCreatorWallet}, 43.75% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); } else { // Default: 100% of claimersTotal goes to the developer/creator splitRecipients.push({ From 8c1ce636bc7bf377d57aeb3ec8e61667d031a31c Mon Sep 17 00:00:00 2001 From: handsdiff <239876380+handsdiff@users.noreply.github.com> Date: Wed, 29 Oct 2025 18:32:45 -0400 Subject: [PATCH 3/4] solpay emissions --- ui/routes/claims.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/ui/routes/claims.ts b/ui/routes/claims.ts index 1300a2f..cd5514e 100644 --- a/ui/routes/claims.ts +++ b/ui/routes/claims.ts @@ -314,18 +314,20 @@ router.post('/mint', async ( // claimersTotal represents the 90% portion for claimers (excluding 10% admin fee) const splitRecipients: SplitRecipient[] = []; - // Special case for ZC token: split claimersTotal between ztorio, dev, and Percent Markets treasury + // Special case for ZC token: split claimersTotal between ztorio, solpay, dev, and Percent Markets treasury const ZC_TOKEN_ADDRESS = 'GVvPZpC6ymCoiHzYJ7CWZ8LhVn9tL2AUpRjSAsLh6jZC'; const PERCENT_TREASURY_ADDRESS = '4ySrS3XEn8ouZfA2JAgS9uZ5BWeVCyyR16wgJ1Tyh9aG'; // Treasury for percent markets ($PERC) for their contributions to improving the protocol const ZTORIO_ADDRESS = 'A6R6fD82TaTSWKTpKKcRhBotYtc5izyauPFw3yHVYwuP'; // ztorio + const SOLPAY_ADDRESS = 'J7xnWtfi5Fa3JC1creRBHzo7DkRf6etugCBv1s9vEe5N'; // solpay ($SP) if (tokenAddress === ZC_TOKEN_ADDRESS) { - // Split total: 2.5% to ztorio, 43.75% to dev, 43.75% to Percent Markets treasury, 10% to fee + // Split total: 2.5% to ztorio, 2.5% to solpay, 42.5% to dev, 42.5% to Percent Markets treasury, 10% to fee // Calculate in basis points for precision: 2.5% = 250/10000 const ztorioAmount = (requestedAmount * BigInt(250)) / BigInt(10000); // 2.5% of total - const remainderAfterZtorioAndAdmin = requestedAmount - ztorioAmount - adminAmount; // 87.5% of total - const devAmount = remainderAfterZtorioAndAdmin / BigInt(2); // 43.75% of total - const treasuryAmount = remainderAfterZtorioAndAdmin - devAmount; // 43.75% of total (ensures exact total) + const solpayAmount = (requestedAmount * BigInt(250)) / BigInt(10000); // 2.5% of total + const remainderAfterFixedAllocations = requestedAmount - ztorioAmount - solpayAmount - adminAmount; // 85% of total + const devAmount = remainderAfterFixedAllocations / BigInt(2); // 42.5% of total + const treasuryAmount = remainderAfterFixedAllocations - devAmount; // 42.5% of total (ensures exact total) splitRecipients.push( { @@ -334,21 +336,27 @@ router.post('/mint', async ( amountWithDecimals: ztorioAmount * BigInt(10 ** decimals), label: 'ztorio' }, + { + wallet: SOLPAY_ADDRESS, + amount: solpayAmount, // 2.5% of total + amountWithDecimals: solpayAmount * BigInt(10 ** decimals), + label: 'solpay' + }, { wallet: trimmedCreatorWallet, - amount: devAmount, // 43.75% of total + amount: devAmount, // 42.5% of total amountWithDecimals: devAmount * BigInt(10 ** decimals), label: 'Developer' }, { wallet: PERCENT_TREASURY_ADDRESS, - amount: treasuryAmount, // 43.75% of total + amount: treasuryAmount, // 42.5% of total amountWithDecimals: treasuryAmount * BigInt(10 ** decimals), label: 'Percent Markets Treasury' } ); - console.log(`ZC token emission split: 2.5% to ztorio ${ZTORIO_ADDRESS}, 43.75% to developer ${trimmedCreatorWallet}, 43.75% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); + console.log(`ZC token emission split: 2.5% to ztorio ${ZTORIO_ADDRESS}, 2.5% to solpay ${SOLPAY_ADDRESS}, 42.5% to developer ${trimmedCreatorWallet}, 42.5% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); } else { // Default: 100% of claimersTotal goes to the developer/creator splitRecipients.push({ From 6b7c879f94e6a853c34793d9f8ba52c769bc1d7b Mon Sep 17 00:00:00 2001 From: handsdiff <239876380+handsdiff@users.noreply.github.com> Date: Wed, 29 Oct 2025 19:04:02 -0400 Subject: [PATCH 4/4] update solpay emission --- ui/routes/claims.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ui/routes/claims.ts b/ui/routes/claims.ts index cd5514e..4abaec3 100644 --- a/ui/routes/claims.ts +++ b/ui/routes/claims.ts @@ -321,13 +321,13 @@ router.post('/mint', async ( const SOLPAY_ADDRESS = 'J7xnWtfi5Fa3JC1creRBHzo7DkRf6etugCBv1s9vEe5N'; // solpay ($SP) if (tokenAddress === ZC_TOKEN_ADDRESS) { - // Split total: 2.5% to ztorio, 2.5% to solpay, 42.5% to dev, 42.5% to Percent Markets treasury, 10% to fee - // Calculate in basis points for precision: 2.5% = 250/10000 + // Split total: 2.5% to ztorio, 1% to solpay, 43.25% to dev, 43.25% to Percent Markets treasury, 10% to fee + // Calculate in basis points for precision: 2.5% = 250/10000, 1% = 100/10000 const ztorioAmount = (requestedAmount * BigInt(250)) / BigInt(10000); // 2.5% of total - const solpayAmount = (requestedAmount * BigInt(250)) / BigInt(10000); // 2.5% of total - const remainderAfterFixedAllocations = requestedAmount - ztorioAmount - solpayAmount - adminAmount; // 85% of total - const devAmount = remainderAfterFixedAllocations / BigInt(2); // 42.5% of total - const treasuryAmount = remainderAfterFixedAllocations - devAmount; // 42.5% of total (ensures exact total) + const solpayAmount = (requestedAmount * BigInt(100)) / BigInt(10000); // 1% of total + const remainderAfterFixedAllocations = requestedAmount - ztorioAmount - solpayAmount - adminAmount; // 86.5% of total + const devAmount = remainderAfterFixedAllocations / BigInt(2); // 43.25% of total + const treasuryAmount = remainderAfterFixedAllocations - devAmount; // 43.25% of total (ensures exact total) splitRecipients.push( { @@ -338,25 +338,25 @@ router.post('/mint', async ( }, { wallet: SOLPAY_ADDRESS, - amount: solpayAmount, // 2.5% of total + amount: solpayAmount, // 1% of total amountWithDecimals: solpayAmount * BigInt(10 ** decimals), label: 'solpay' }, { wallet: trimmedCreatorWallet, - amount: devAmount, // 42.5% of total + amount: devAmount, // 43.25% of total amountWithDecimals: devAmount * BigInt(10 ** decimals), label: 'Developer' }, { wallet: PERCENT_TREASURY_ADDRESS, - amount: treasuryAmount, // 42.5% of total + amount: treasuryAmount, // 43.25% of total amountWithDecimals: treasuryAmount * BigInt(10 ** decimals), label: 'Percent Markets Treasury' } ); - console.log(`ZC token emission split: 2.5% to ztorio ${ZTORIO_ADDRESS}, 2.5% to solpay ${SOLPAY_ADDRESS}, 42.5% to developer ${trimmedCreatorWallet}, 42.5% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); + console.log(`ZC token emission split: 2.5% to ztorio ${ZTORIO_ADDRESS}, 1% to solpay ${SOLPAY_ADDRESS}, 43.25% to developer ${trimmedCreatorWallet}, 43.25% to Percent Markets treasury ${PERCENT_TREASURY_ADDRESS}, 10% to fee`); } else { // Default: 100% of claimersTotal goes to the developer/creator splitRecipients.push({