From dfaf3141a0b4adf0310dc94d76c6637e09d0886a Mon Sep 17 00:00:00 2001 From: Yusur Princeps Date: Sat, 16 Aug 2025 13:42:27 +0200 Subject: [PATCH] fork Rugplay -> CoinStorge --- .gitignore | 4 +- website/package-lock.json | 4 +- website/package.json | 81 ++++++++++--------- website/src/app.html | 12 ++- website/src/lib/auth.ts | 3 +- .../src/lib/components/self/AppSidebar.svelte | 2 +- website/src/lib/components/self/SEO.svelte | 10 +-- .../self/SignInConfirmDialog.svelte | 2 +- .../components/self/UserManualModal.svelte | 6 +- website/src/lib/server/ai.ts | 22 ++--- website/src/routes/+error.svelte | 2 +- website/src/routes/+page.svelte | 4 +- website/src/routes/about/+page.svelte | 8 +- website/src/routes/gambling/+page.svelte | 4 +- website/src/routes/legal/privacy/+page.svelte | 28 +++---- website/src/routes/legal/terms/+page.svelte | 78 ++++++++---------- 16 files changed, 130 insertions(+), 140 deletions(-) diff --git a/.gitignore b/.gitignore index 1c1d1a1..3deec0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .github -review.js \ No newline at end of file +review.js +.env +node_modules diff --git a/website/package-lock.json b/website/package-lock.json index c2675db..4aa83e0 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -1,12 +1,12 @@ { "name": "website", - "version": "0.0.1", + "version": "2.0.0.a0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "website", - "version": "0.0.1", + "version": "2.0.0.a0", "dependencies": { "@aws-sdk/client-s3": "^3.815.0", "@aws-sdk/s3-request-presigner": "^3.815.0", diff --git a/website/package.json b/website/package.json index cccea7a..c1daafb 100644 --- a/website/package.json +++ b/website/package.json @@ -1,7 +1,7 @@ { "name": "website", "private": true, - "version": "0.0.1", + "version": "2.0.0.a0", "type": "module", "scripts": { "dev": "vite dev", @@ -16,53 +16,54 @@ "db:studio": "drizzle-kit studio" }, "devDependencies": { - "@internationalized/date": "^3.8.1", - "@lucide/svelte": "^0.482.0", - "@sveltejs/adapter-auto": "^3.0.0", - "@sveltejs/adapter-node": "^5.2.12", - "@sveltejs/kit": "^2.0.0", - "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@internationalized/date": "^3.8.2", + "@lucide/svelte": "^0.539.0", + "@sveltejs/adapter-auto": "^6.1.0", + "@sveltejs/adapter-node": "^5.2.14", + "@sveltejs/kit": "^2.29.1", + "@sveltejs/vite-plugin-svelte": "^6.1.2", "@types/canvas-confetti": "^1.9.0", - "@types/node": "^22.15.21", - "autoprefixer": "^10.4.20", - "bits-ui": "^2.5.0", + "@types/node": "^24.2.1", + "autoprefixer": "^10.4.21", + "bits-ui": "^2.9.2", "clsx": "^2.1.1", - "drizzle-kit": "^0.22.0", - "prettier": "^3.3.2", - "prettier-plugin-svelte": "^3.2.6", - "prettier-plugin-tailwindcss": "^0.6.11", - "svelte": "^5.0.0", - "svelte-check": "^4.0.0", - "svelte-sonner": "^1.0.2", - "tailwind-merge": "^3.0.2", - "tailwind-variants": "^0.2.1", - "tailwindcss": "^4.1.7", - "tw-animate-css": "^1.3.0", - "typescript": "^5.0.0", - "vite": "^5.4.11", - "vite-plugin-iso-import": "^1.2.0" + "dotenv": "^17.2.1", + "drizzle-kit": "^0.31.4", + "prettier": "^3.6.2", + "prettier-plugin-svelte": "^3.4.0", + "prettier-plugin-tailwindcss": "^0.6.14", + "svelte": "^5.38.1", + "svelte-apexcharts": "^1.0.2", + "svelte-check": "^4.3.1", + "svelte-confetti": "^2.3.2", + "svelte-lightweight-charts": "^2.2.0", + "svelte-sonner": "^1.0.5", + "tailwind-merge": "^3.3.1", + "tailwind-variants": "^2.1.0", + "tailwindcss": "^4.1.11", + "tw-animate-css": "^1.3.6", + "typescript": "^5.9.2", + "vite": "^7.1.2", + "vite-plugin-iso-import": "^1.3.0" }, "dependencies": { - "@aws-sdk/client-s3": "^3.815.0", - "@aws-sdk/s3-request-presigner": "^3.815.0", - "@tailwindcss/postcss": "^4.1.7", + "@aws-sdk/client-s3": "^3.864.0", + "@aws-sdk/s3-request-presigner": "^3.864.0", + "@tailwindcss/postcss": "^4.1.11", "@tailwindcss/typography": "^0.5.16", "@visx/scale": "^3.12.0", - "apexcharts": "^4.7.0", - "better-auth": "^1.2.8", + "apexcharts": "^5.3.3", + "better-auth": "^1.3.6", "canvas-confetti": "^1.9.3", - "drizzle-orm": "^0.33.0", + "drizzle-orm": "^0.44.4", "express": "^5.1.0", - "lightweight-charts": "^5.0.7", - "lucide-svelte": "^0.511.0", - "mode-watcher": "^1.0.7", - "openai": "^4.103.0", - "postgres": "^3.4.4", - "redis": "^5.1.0", - "sharp": "^0.34.2", - "svelte-apexcharts": "^1.0.2", - "svelte-confetti": "^2.3.1", - "svelte-lightweight-charts": "^2.2.0" + "lightweight-charts": "^5.0.8", + "lucide-svelte": "^0.539.0", + "mode-watcher": "^1.1.0", + "openai": "^5.12.2", + "postgres": "^3.4.7", + "redis": "^5.8.1", + "sharp": "^0.34.3" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "*", diff --git a/website/src/app.html b/website/src/app.html index d0273c8..685e40b 100644 --- a/website/src/app.html +++ b/website/src/app.html @@ -10,11 +10,11 @@ - Rugplay + CoinStorge - + - + @@ -23,12 +23,10 @@ - + - + %sveltekit.head% diff --git a/website/src/lib/auth.ts b/website/src/lib/auth.ts index b53adf9..a700fac 100644 --- a/website/src/lib/auth.ts +++ b/website/src/lib/auth.ts @@ -16,11 +16,10 @@ if (!publicEnv.PUBLIC_BETTER_AUTH_URL) throw new Error('PUBLIC_BETTER_AUTH_URL i export const auth = betterAuth({ baseURL: publicEnv.PUBLIC_BETTER_AUTH_URL, secret: privateEnv.PRIVATE_BETTER_AUTH_SECRET, - appName: "Rugplay", + appName: "CoinStorge", trustedOrigins: [ publicEnv.PUBLIC_BETTER_AUTH_URL, - "http://rugplay.com", "http://localhost:5173", ], diff --git a/website/src/lib/components/self/AppSidebar.svelte b/website/src/lib/components/self/AppSidebar.svelte index c54d63e..051c55a 100644 --- a/website/src/lib/components/self/AppSidebar.svelte +++ b/website/src/lib/components/self/AppSidebar.svelte @@ -174,7 +174,7 @@
twoblade
- Rugplay + CoinStorge {#if $USER_DATA?.isAdmin} | Admin {/if} diff --git a/website/src/lib/components/self/SEO.svelte b/website/src/lib/components/self/SEO.svelte index ea94e3b..0f5c1e9 100644 --- a/website/src/lib/components/self/SEO.svelte +++ b/website/src/lib/components/self/SEO.svelte @@ -2,13 +2,13 @@ import { page } from '$app/stores'; let { - title = 'Rugplay', + title = 'CoinStorge', description = 'Experience realistic cryptocurrency trading simulation game with AI-powered markets, rug pull mechanics, and virtual currencies. Learn crypto trading without financial risk in this educational game.', type = 'website', image = '/apple-touch-icon.png', - imageAlt = 'Rugplay Logo', + imageAlt = 'CoinStorge Logo', keywords = '', - author = 'Outpoot', + author = 'Outpoot (with modifications)', canonicalUrl = '', noindex = false, twitterCard = 'summary_large_image' @@ -29,7 +29,7 @@ let canonical = $derived(canonicalUrl || currentUrl); let fullImageUrl = $derived( - image?.startsWith('http') ? image : `${$page?.url?.origin || 'https://rugplay.com'}${image}` + image?.startsWith('http') ? image : `${$page?.url?.origin || 'https://localhost'}${image}` ); let defaultKeywords = @@ -62,7 +62,7 @@ - + diff --git a/website/src/lib/components/self/SignInConfirmDialog.svelte b/website/src/lib/components/self/SignInConfirmDialog.svelte index 56ee8bd..f97eaf5 100644 --- a/website/src/lib/components/self/SignInConfirmDialog.svelte +++ b/website/src/lib/components/self/SignInConfirmDialog.svelte @@ -25,7 +25,7 @@ - Sign in to Rugplay + Sign in to CoinStorge Choose a service to sign in with. Your account will be created automatically if you don't have one. diff --git a/website/src/lib/components/self/UserManualModal.svelte b/website/src/lib/components/self/UserManualModal.svelte index 2031a57..73deaac 100644 --- a/website/src/lib/components/self/UserManualModal.svelte +++ b/website/src/lib/components/self/UserManualModal.svelte @@ -30,9 +30,9 @@ const tips: Tip[] = [ { id: 1, - title: 'Welcome to Rugplay!', + title: 'Welcome to CoinStorge!', description: - 'Rugplay is a cryptocurrency trading simulator where you can practice trading without real financial risk. Start with virtual money, create coins, bet on prediction markets, and most importantly, rugpull!', + 'CoinStorge is a cryptocurrency trading simulator where you can practice trading without real financial risk. Start with virtual money, create coins, bet on prediction markets, and most importantly, rugpull!', icon: BookOpen, image: '/tips/cover.avif' }, @@ -56,7 +56,7 @@ id: 4, title: 'AMM - Automated Market Maker', description: - 'Rugplay uses an AMM system where prices are calculated automatically based on supply and demand. The more you buy, the higher the price goes. The more you sell, the lower it drops. Large trades create "slippage" - the price change during your trade.', + 'CoinStorge, like Rugplay, uses an AMM system where prices are calculated automatically based on supply and demand. The more you buy, the higher the price goes. The more you sell, the lower it drops. Large trades create "slippage" - the price change during your trade.', icon: BarChart3, image: '/tips/amm.avif' }, diff --git a/website/src/lib/server/ai.ts b/website/src/lib/server/ai.ts index 3aea854..f3d4c4d 100644 --- a/website/src/lib/server/ai.ts +++ b/website/src/lib/server/ai.ts @@ -245,11 +245,11 @@ export async function validateQuestion(question: string, description?: string): } const prompt = ` -You are evaluating whether a prediction market question is valid and answerable for Rugplay, a cryptocurrency trading simulation platform. +You are evaluating whether a prediction market question is valid and answerable for CoinStorge, a cryptocurrency trading simulation platform. Question: "${question}" -Current Rugplay Market Context: +Current CoinStorge Market Context: - Platform currency: $ (or *BUSS) - Total listed coins: ${marketOverview?.marketStats.totalCoins || 0} - Total market cap: $${marketOverview?.marketStats.totalMarketCap.toFixed(2) || '0'} @@ -271,8 +271,8 @@ Determine the optimal resolution date based on the question type: - If the question explicitly states the date, use that as the resolution date Also determine: -- Whether this question requires web search (external events, real-world data, non-Rugplay information) -- If the question is related to the Rugplay market, and contains what appears to be a coin name, ensure it's properly formatted (e.g. *BTC, *DOGE). Invalid question example: "will BTC reach $100,000 in 1 hour?" (invalid coin format, should be *BTC). +- Whether this question requires web search (external events, real-world data, non-CoinStorge information) +- If the question is related to the CoinStorge market, and contains what appears to be a coin name, ensure it's properly formatted (e.g. *BTC, *DOGE). Invalid question example: "will BTC reach $100,000 in 1 hour?" (invalid coin format, should be *BTC). - Provide a specific resolution date with time (suggest times between 12:00-20:00 UTC for good global coverage) The current date and time is ${new Date().toISOString()}. Note: All coins use *SYMBOL format (e.g., *BTC, *DOGE). All trading is simulated with *BUSS currency. @@ -336,11 +336,11 @@ export async function resolveQuestion( const rugplayData = customRugplayData || await getRugplayData(question); const prompt = ` -You are resolving a prediction market question with a definitive YES or NO answer for Rugplay. +You are resolving a prediction market question with a definitive YES or NO answer for CoinStorge. Question: "${question}" -Current Rugplay Platform Data: +Current CoinStorge Platform Data: ${rugplayData} Instructions: @@ -348,10 +348,10 @@ Instructions: 2. Give your confidence level (0-100) in this resolution 3. Provide clear reasoning for your decision with specific data references 4. For coin-specific questions that mention non-existent coins, answer NO (the coin doesn't exist, so it can't reach any price) -5. For coin-specific questions about existing coins, reference actual market data from Rugplay +5. For coin-specific questions about existing coins, reference actual market data from CoinStorge 6. For external events, use web search if enabled -Context about Rugplay: +Context about CoinStorge: - Cryptocurrency trading simulation platform with fake money (*BUSS) - All coins use *SYMBOL format (e.g., *BTC, *DOGE, *SHIB) - Features AMM liquidity pools, rug pull mechanics, and real market dynamics @@ -421,7 +421,7 @@ export async function getRugplayData(question?: string): Promise { coinSpecificData = '\n\nCoin Analysis for Question:'; if (nonExistentCoins.length > 0) { - coinSpecificData += `\nNON-EXISTENT COINS: ${nonExistentCoins.map(symbol => `*${symbol}`).join(', ')} - These coins do not exist on the Rugplay platform`; + coinSpecificData += `\nNON-EXISTENT COINS: ${nonExistentCoins.map(symbol => `*${symbol}`).join(', ')} - These coins do not exist on the CoinStorge platform`; } if (existingCoins.length > 0) { @@ -450,7 +450,7 @@ ${coin.recentTrades.slice(0, 3).map(trade => return ` Current Timestamp: ${new Date().toISOString()} -Platform: Rugplay - Cryptocurrency Trading Simulation +Platform: CoinStorge - Cryptocurrency Trading Simulation Market Overview: - Total Listed Coins: ${marketOverview?.marketStats.totalCoins || 0} @@ -473,7 +473,7 @@ Platform Details: - Coins use *SYMBOL format (e.g., *BTC, *DOGE, *SHIB)${coinSpecificData} `; } catch (error) { - console.error('Error generating Rugplay data:', error); + console.error('Error generating CoinStorge data:', error); return `Couldn't retrieve data, please try again later.`; } } diff --git a/website/src/routes/+error.svelte b/website/src/routes/+error.svelte index 537c6b1..2503a70 100644 --- a/website/src/routes/+error.svelte +++ b/website/src/routes/+error.svelte @@ -36,7 +36,7 @@ - {status} | Rugplay + {status} | CoinStorge diff --git a/website/src/routes/+page.svelte b/website/src/routes/+page.svelte index 8ee3466..ec36eaa 100644 --- a/website/src/routes/+page.svelte +++ b/website/src/routes/+page.svelte @@ -75,7 +75,7 @@ @@ -85,7 +85,7 @@

- {$USER_DATA ? getTimeBasedGreeting($USER_DATA?.name) : 'Welcome to Rugplay!'} + {$USER_DATA ? getTimeBasedGreeting($USER_DATA?.name) : 'Welcome to CoinStorge!'}

{#if $USER_DATA} diff --git a/website/src/routes/about/+page.svelte b/website/src/routes/about/+page.svelte index dd5bfdc..78ac4d4 100644 --- a/website/src/routes/about/+page.svelte +++ b/website/src/routes/about/+page.svelte @@ -22,18 +22,18 @@ - About - Rugplay + About - CoinStorge

- Rugplay -

Rugplay

+ CoinStorge +

CoinStorge

A crypto trading simulator where you can practice trading without losing real money. Create diff --git a/website/src/routes/gambling/+page.svelte b/website/src/routes/gambling/+page.svelte index 996aeb4..1ad6f35 100644 --- a/website/src/routes/gambling/+page.svelte +++ b/website/src/routes/gambling/+page.svelte @@ -40,8 +40,8 @@ diff --git a/website/src/routes/legal/privacy/+page.svelte b/website/src/routes/legal/privacy/+page.svelte index 4697285..6b769c2 100644 --- a/website/src/routes/legal/privacy/+page.svelte +++ b/website/src/routes/legal/privacy/+page.svelte @@ -13,8 +13,8 @@ @@ -50,7 +50,7 @@ it, and what happens when you delete your account.

- Platform Note: Rugplay is a simulated trading environment using virtual currency + Platform Note: CoinStorge is a simulated trading environment using virtual currency ("*BUSS" or "$") with no real monetary value.

@@ -74,7 +74,7 @@
-

2.2 Trading and Financial Data (Simulated)

+

2.2 Simulated Trading and Simulated Financial Data

  • Transaction history (buy/sell orders, amounts, prices, timestamps)
  • Portfolio holdings and balances
  • @@ -107,7 +107,7 @@
  • Platform analytics and improvements
  • Resolving disputes and maintaining system integrity
  • - Operating and resolving prediction markets, which may involve automated decision-making + Operating and resolving prediction markets, which may involve AI-assisted decision-making as detailed below.
@@ -241,9 +241,6 @@
  • 14 days later: Complete deletion process executed automatically
  • -
  • - Cancellation: Contact support within 14 days to cancel deletion -
  • @@ -263,7 +260,7 @@

    6. Your Data Protection Rights

    - Depending on your location, you may have certain rights regarding your personal data, + You have rights regarding your personal data, including:

      @@ -298,8 +295,8 @@

    To exercise these rights, please contact us at {CONTACT_EMAIL}privacy@ndspir.it.

    @@ -327,7 +324,8 @@

    8. Data Sharing

    -

    We do not sell or share your personal data with third parties, except:

    +

    We do not sell your personal data.

    +

    We might be forced to share your personal data with third parties:

    • When required by law or legal process
    • To prevent fraud or protect platform security
    • @@ -359,8 +357,8 @@

      For privacy-related questions or to exercise your rights:

      • - Email: {CONTACT_EMAIL}privacy@ndspir.it
      • To cancel account deletion: Contact us immediately at the above email
      • @@ -382,7 +380,7 @@ Contact: {CONTACT_EMAIL}

        -

        Platform: Rugplay - virtual cryptocurrency trading simulation

        +

        Platform: CoinStorge - virtual cryptocurrency trading simulation

    diff --git a/website/src/routes/legal/terms/+page.svelte b/website/src/routes/legal/terms/+page.svelte index 6af532f..593600d 100644 --- a/website/src/routes/legal/terms/+page.svelte +++ b/website/src/routes/legal/terms/+page.svelte @@ -9,14 +9,13 @@ import { goto } from '$app/navigation'; import SEO from '$lib/components/self/SEO.svelte'; - const LAST_UPDATED = 'May 29, 2025'; - const CONTACT_EMAIL = 'contact@outpoot.com'; - const MINIMUM_AGE = 18; + const LAST_UPDATED = 'September 1, 2025'; + const CONTACT_EMAIL = '[REDACTED]'; @@ -36,7 +35,7 @@ Virtual Currency Simulation Only - Rugplay uses only virtual currency (*BUSS or "$") with no real monetary value. All trading, + CoinStorge uses only virtual currency (*BUSS or "$") with no real monetary value. All trading, including rug pulls, is simulated for educational purposes only. @@ -47,13 +46,14 @@

    1. Acceptance of Terms

    - By accessing and using Rugplay ("the Platform", "we", "us", "our"), you accept and agree + By accessing and using CoinStorge ("the Platform", "we", "us", "our"), you accept and agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, you may not use the Platform.

    - These Terms constitute a legally binding agreement between you and Rugplay regarding your - use of our cryptocurrency trading simulation platform. + These Terms constitute a legally binding agreement between you and CoinStorge regarding your + use of our cryptocurrency trading simulation platform. If you are not of the age required to sign + a binding contract, you may not use the Platform.

    @@ -61,7 +61,7 @@

    2. Platform Description

    - Rugplay is a simulated cryptocurrency trading platform designed for educational + CoinStorge is a simulated cryptocurrency trading platform designed for educational and entertainment purposes. The Platform allows users to:

      @@ -77,7 +77,7 @@ No Real Financial Value - All currency on Rugplay (*BUSS, "$", and created coins) is virtual and has no + All currency on CoinStorge (*BUSS, "$", and created coins) is virtual and has no real-world monetary value. No real cryptocurrency or money is involved in any transactions. @@ -91,11 +91,12 @@

      3.1 Age Requirements

      - You must be at least {MINIMUM_AGE} years old to use Rugplay due to the presence of gambling-style - features (coinflip and slots), even though they use only virtual currency. + You must be at least 18 years old to use CoinStorge.

      - While our platform uses virtual currency with no real-world value, we maintain an 18+ + Due to the presence of gambling-style + features (coinflip and slots), even though they use only virtual currency, and while our platform + uses only virtual currency with no real-world value, we maintain an 18+ age requirement to ensure responsible engagement with simulated gambling mechanics.

      @@ -113,7 +114,7 @@

      3.3 Prohibited Users

      -

      You may not use Rugplay if you are:

      +

      You may not use CoinStorge if you are:

      • Located in a jurisdiction where use is prohibited
      • Previously banned from the Platform
      • @@ -132,7 +133,7 @@ Rug Pull Risk Simulation - Rugplay deliberately simulates rug pull scenarios where coin creators or large holders + CoinStorge deliberately simulates rug pull scenarios where coin creators or large holders can crash prices by selling significant holdings. This is a core educational feature. @@ -154,7 +155,7 @@

        4.2 Trading Mechanics

        -

        Trading on Rugplay includes realistic mechanics such as:

        +

        Trading on CoinStorge includes realistic mechanics such as:

        • Slippage: Large trades affect prices based on liquidity pool ratios @@ -202,7 +203,7 @@

          5.1 Acceptable Use

          - You agree to use Rugplay only for lawful purposes and in accordance with these Terms. + You agree to use CoinStorge only for lawful purposes and in accordance with these Terms. You will not:

            @@ -254,13 +255,13 @@ Terms, your investments may be forfeited. This includes:

              -
            • Holdings in coins with inappropriate names, symbols, or descriptions
            • +
            • Holdings in coins with names, symbols, or descriptions which are inappropriate or prohibited by applicable law
            • Bets placed on prediction markets with offensive or prohibited content
            • Investments in content that violates intellectual property rights
            • Any virtual currency associated with content we remove for Terms violations

            - No Compensation: We will not provide alternative compensation or restore + No Compensation: There is no refund of virtual balances lost due to investments in prohibited content. You invest at your own risk.

            @@ -313,7 +314,7 @@

            7.1 Virtual Gambling Games

            -

            Rugplay includes simulated gambling features:

            +

            CoinStorge includes simulated gambling features:

            • Coinflip: Binary outcome betting with virtual currency
            • @@ -412,7 +413,7 @@ Important Legal Disclaimers - Rugplay is provided "as is" without warranties. We are not liable for virtual losses, + CoinStorge is provided "as is" without warranties. We are not liable for virtual losses, rug pulls, or any platform-related damages. @@ -448,7 +449,7 @@

              9.3 Educational Purpose

              -

              Rugplay is designed for educational and entertainment purposes. It is not:

              +

              CoinStorge is designed for educational and entertainment purposes. It is not:

              • Financial advice or investment guidance
              • A substitute for professional financial education
              • @@ -469,7 +470,6 @@

                • Is scheduled 14 days after your request
                • -
                • Can be cancelled during the 14-day period by contacting support
                • Results in permanent loss of all virtual currency and account data
                • May leave some anonymized data as described in our Privacy Policy
                @@ -504,7 +504,8 @@

                11.1 Platform Ownership

                -

                Rugplay and all related intellectual property are owned by us, including:

                +

                CoinStorge is based on Rugplay, licensed under CC BY-NC by OutPoot (FaceDev).

                +

                CoinStorge and all related intellectual property are owned by either us or OutPoot, including:

                • Software, code, algorithms, and technical systems
                • Trademarks, logos, and branding
                • @@ -517,7 +518,7 @@

                  11.2 Past Project Assets and Themes

                  - Rugplay incorporates intellectual property from creator's past projects, including: + CoinStorge incorporates intellectual property from creators' past projects, including:

                  • Characters, artwork, and visual themes from previous projects
                  • @@ -525,7 +526,7 @@
                  • Any derivative works or adaptations of existing intellectual property

                  - All past project assets used in Rugplay are owned by the platform creators or used + All past project assets used in CoinStorge are owned by the platform creators or used with proper authorization.

                  @@ -550,7 +551,7 @@ in our Privacy Policy, which is incorporated into these Terms by reference.

                  - By using Rugplay, you consent to our data practices as described in the Privacy Policy, + By using CoinStorge, you consent to our data practices as described in the Privacy Policy, including the retention of anonymized data after account deletion.

                  @@ -561,8 +562,8 @@

                  13.1 Entire Agreement

                  - These Terms, along with our Privacy Policy, constitute the entire agreement between - you and Rugplay regarding use of the Platform. + These Terms, along with our Privacy Policy — incorporated in these Terms by reference —, constitute the entire agreement between + you and CoinStorge regarding use of the Platform.

                  @@ -578,27 +579,18 @@

                  13.3 Updates to Terms

                  We may update these Terms periodically. Material changes will be communicated via - email and platform notifications. Continued use after changes constitutes acceptance. + email and platform notifications, on a best-effort basis. Continued use after changes constitutes acceptance. + Failure to communicate does not automatically terminate our Agreement.

                -
                -

                13.4 Contact Information

                -

                - For questions about these Terms, contact us at: - {CONTACT_EMAIL} -

                -
                +

                Last Updated: {LAST_UPDATED}

                -

                - Contact: - {CONTACT_EMAIL} -

                -

                Platform: Rugplay

                +

                Platform: CoinStorge