Changes to bitretire.scroll.pub

root
root
25 days ago
Initial commit
body.html
Changed around line 1
+
+

Bitcoin Retirement Calculator

+

Plan your financial future with Bitcoin

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 50%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Retirement Projections

+
+
+

Total Savings

+

$0

+
+
+

Bitcoin Holdings

+

0 BTC

+
+
+

Retirement Income

+

$0/year

+
+
+
+
+
+
+

Disclaimer: This is for informational purposes only. Consult a financial advisor for professional advice.

+
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://bitretire.scroll.pub
+ metaTags
+ editButton /edit.html
+ title Bitcoin Retirement Calculator
+ style.css
+ body.html
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "e58e40d2-e70c-49b3-bf58-652846e8fb71",
+ "object": "chat.completion",
+ "created": 1735363656,
+ "model": "deepseek-chat",
+ "choices": [
+ {
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "---domain---\nbitretire.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://bitretire.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Bitcoin Retirement Calculator\nstyle.css\nbody.html\nscript.js\n---body.html---\n
\n

Bitcoin Retirement Calculator

\n

Plan your financial future with Bitcoin

\n
\n\n
\n
\n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n
\n \n \n 50%\n
\n \n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n\n
\n

Retirement Projections

\n
\n
\n

Total Savings

\n

$0

\n
\n
\n

Bitcoin Holdings

\n

0 BTC

\n
\n
\n

Retirement Income

\n

$0/year

\n
\n
\n
\n
\n\n
\n

Disclaimer: This is for informational purposes only. Consult a financial advisor for professional advice.

\n
\n---style.css---\n:root {\n --primary: #f7931a;\n --secondary: #4a90e2;\n --background: #f5f5f5;\n --text: #333;\n --card-bg: #fff;\n --shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\nbody {\n font-family: 'Segoe UI', sans-serif;\n line-height: 1.6;\n color: var(--text);\n background: var(--background);\n margin: 0;\n padding: 0;\n}\n\nheader {\n background: var(--primary);\n color: white;\n padding: 2rem;\n text-align: center;\n}\n\nmain {\n max-width: 800px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\n.calculator {\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 8px;\n box-shadow: var(--shadow);\n}\n\n.input-group {\n margin-bottom: 1.5rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: 600;\n}\n\ninput[type=\"number\"],\ninput[type=\"range\"] {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n\ninput[type=\"range\"] {\n -webkit-appearance: none;\n height: 8px;\n background: #ddd;\n border-radius: 4px;\n margin-top: 0.5rem;\n}\n\ninput[type=\"range\"]::-webkit-slider-thumb {\n -webkit-appearance: none;\n width: 20px;\n height: 20px;\n background: var(--primary);\n border-radius: 50%;\n cursor: pointer;\n}\n\nbutton {\n background: var(--secondary);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 4px;\n cursor: pointer;\n width: 100%;\n font-size: 1rem;\n transition: background 0.3s;\n}\n\nbutton:hover {\n background: #357abd;\n}\n\n.results {\n margin-top: 2rem;\n}\n\n.result-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n}\n\n.card {\n background: var(--card-bg);\n padding: 1.5rem;\n border-radius: 8px;\n box-shadow: var(--shadow);\n text-align: center;\n}\n\nfooter {\n text-align: center;\n padding: 1rem;\n background: var(--card-bg);\n margin-top: 2rem;\n}\n\n@media (max-width: 600px) {\n header {\n padding: 1rem;\n }\n \n .calculator {\n padding: 1rem;\n }\n \n .result-cards {\n grid-template-columns: 1fr;\n }\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', function() {\n const currentAge = document.getElementById('currentAge');\n const retirementAge = document.getElementById('retirementAge');\n const monthlySavings = document.getElementById('monthlySavings');\n const bitcoinAllocation = document.getElementById('bitcoinAllocation');\n const allocationValue = document.getElementById('allocationValue');\n const bitcoinGrowth = document.getElementById('bitcoinGrowth');\n const inflation = document.getElementById('inflation');\n const calculateButton = document.getElementById('calculate');\n \n const totalSavings = document.getElementById('totalSavings');\n const bitcoinHoldings = document.getElementById('bitcoinHoldings');\n const retirementIncome = document.getElementById('retirementIncome');\n\n bitcoinAllocation.addEventListener('input', function() {\n allocationValue.textContent = `${this.value}%`;\n });\n\n calculateButton.addEventListener('click', function() {\n const yearsToRetirement = retirementAge.value - currentAge.value;\n const totalMonths = yearsToRetirement * 12;\n const bitcoinPercent = bitcoinAllocation.value / 100;\n const traditionalPercent = 1 - bitcoinPercent;\n \n // Traditional savings calculation\n const traditionalFutureValue = monthlySavings.value * traditionalPercent * \n (((Math.pow(1 + (inflation.value/100), yearsToRetirement) - 1) / (inflation.value/100)));\n \n // Bitcoin savings calculation\n const bitcoinFutureValue = monthlySavings.value * bitcoinPercent * \n (((Math.pow(1 + (bitcoinGrowth.value/100), yearsToRetirement) - 1) / (bitcoinGrowth.value/100)));\n \n const totalFutureValue = traditionalFutureValue + bitcoinFutureValue;\n \n // Display results\n totalSavings.textContent = `$${Math.round(totalFutureValue).toLocaleString()}`;\n bitcoinHoldings.textContent = `${Math.round(bitcoinFutureValue / 50000)} BTC`; // Assuming $50,000 per BTC\n retirementIncome.textContent = `$${Math.round(totalFutureValue * 0.04).toLocaleString()}/year`; // 4% rule\n });\n});\n---end---"
+ },
+ "logprobs": null,
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 259,
+ "completion_tokens": 1749,
+ "total_tokens": 2008,
+ "prompt_cache_hit_tokens": 0,
+ "prompt_cache_miss_tokens": 259
+ },
+ "system_fingerprint": "fp_f1afce2943"
+ }
readme.scroll
Changed around line 1
+ # bitretire.scroll.pub
+ Website generated by DeepSeek from prompt: Create a bitcoin retirement calculator with lots of different options, toggles, sliders, and relevant questions for retiring on bitcoin
script.js
Changed around line 1
+ document.addEventListener('DOMContentLoaded', function() {
+ const currentAge = document.getElementById('currentAge');
+ const retirementAge = document.getElementById('retirementAge');
+ const monthlySavings = document.getElementById('monthlySavings');
+ const bitcoinAllocation = document.getElementById('bitcoinAllocation');
+ const allocationValue = document.getElementById('allocationValue');
+ const bitcoinGrowth = document.getElementById('bitcoinGrowth');
+ const inflation = document.getElementById('inflation');
+ const calculateButton = document.getElementById('calculate');
+
+ const totalSavings = document.getElementById('totalSavings');
+ const bitcoinHoldings = document.getElementById('bitcoinHoldings');
+ const retirementIncome = document.getElementById('retirementIncome');
+
+ bitcoinAllocation.addEventListener('input', function() {
+ allocationValue.textContent = `${this.value}%`;
+ });
+
+ calculateButton.addEventListener('click', function() {
+ const yearsToRetirement = retirementAge.value - currentAge.value;
+ const totalMonths = yearsToRetirement * 12;
+ const bitcoinPercent = bitcoinAllocation.value / 100;
+ const traditionalPercent = 1 - bitcoinPercent;
+
+ // Traditional savings calculation
+ const traditionalFutureValue = monthlySavings.value * traditionalPercent *
+ (((Math.pow(1 + (inflation.value/100), yearsToRetirement) - 1) / (inflation.value/100)));
+
+ // Bitcoin savings calculation
+ const bitcoinFutureValue = monthlySavings.value * bitcoinPercent *
+ (((Math.pow(1 + (bitcoinGrowth.value/100), yearsToRetirement) - 1) / (bitcoinGrowth.value/100)));
+
+ const totalFutureValue = traditionalFutureValue + bitcoinFutureValue;
+
+ // Display results
+ totalSavings.textContent = `$${Math.round(totalFutureValue).toLocaleString()}`;
+ bitcoinHoldings.textContent = `${Math.round(bitcoinFutureValue / 50000)} BTC`; // Assuming $50,000 per BTC
+ retirementIncome.textContent = `$${Math.round(totalFutureValue * 0.04).toLocaleString()}/year`; // 4% rule
+ });
+ });
style.css
Changed around line 1
+ :root {
+ --primary: #f7931a;
+ --secondary: #4a90e2;
+ --background: #f5f5f5;
+ --text: #333;
+ --card-bg: #fff;
+ --shadow: 0 2px 4px rgba(0,0,0,0.1);
+ }
+
+ body {
+ font-family: 'Segoe UI', sans-serif;
+ line-height: 1.6;
+ color: var(--text);
+ background: var(--background);
+ margin: 0;
+ padding: 0;
+ }
+
+ header {
+ background: var(--primary);
+ color: white;
+ padding: 2rem;
+ text-align: center;
+ }
+
+ main {
+ max-width: 800px;
+ margin: 2rem auto;
+ padding: 0 1rem;
+ }
+
+ .calculator {
+ background: var(--card-bg);
+ padding: 2rem;
+ border-radius: 8px;
+ box-shadow: var(--shadow);
+ }
+
+ .input-group {
+ margin-bottom: 1.5rem;
+ }
+
+ label {
+ display: block;
+ margin-bottom: 0.5rem;
+ font-weight: 600;
+ }
+
+ input[type="number"],
+ input[type="range"] {
+ width: 100%;
+ padding: 0.5rem;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ }
+
+ input[type="range"] {
+ -webkit-appearance: none;
+ height: 8px;
+ background: #ddd;
+ border-radius: 4px;
+ margin-top: 0.5rem;
+ }
+
+ input[type="range"]::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ width: 20px;
+ height: 20px;
+ background: var(--primary);
+ border-radius: 50%;
+ cursor: pointer;
+ }
+
+ button {
+ background: var(--secondary);
+ color: white;
+ border: none;
+ padding: 1rem 2rem;
+ border-radius: 4px;
+ cursor: pointer;
+ width: 100%;
+ font-size: 1rem;
+ transition: background 0.3s;
+ }
+
+ button:hover {
+ background: #357abd;
+ }
+
+ .results {
+ margin-top: 2rem;
+ }
+
+ .result-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: 1rem;
+ }
+
+ .card {
+ background: var(--card-bg);
+ padding: 1.5rem;
+ border-radius: 8px;
+ box-shadow: var(--shadow);
+ text-align: center;
+ }
+
+ footer {
+ text-align: center;
+ padding: 1rem;
+ background: var(--card-bg);
+ margin-top: 2rem;
+ }
+
+ @media (max-width: 600px) {
+ header {
+ padding: 1rem;
+ }
+
+ .calculator {
+ padding: 1rem;
+ }
+
+ .result-cards {
+ grid-template-columns: 1fr;
+ }
+ }