ranchimall/bob'sfund.html
2023-04-02 04:10:08 +05:30

769 lines
44 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bob's Fund</title>
<link rel="shortcut icon" href="assets/RM logo.png" type="image/png">
<link rel="stylesheet" href="assets/css/main.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400..900&display=swap" rel="stylesheet">
</head>
<body>
<sm-notifications id="notification_drawer"></sm-notifications>
<section id="elevator_popup" class="grid hide-completely">
<header class="elevator__header">
<button class="close-button justify-self-start" onclick="hideSiteMap()">
<svg class="icon icon-only close-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24"
height="24">
<path fill="none" d="M0 0h24v24H0z" />
<path
d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z" />
</svg>
</button>
</header>
<ul id="floor_list" class="grid"></ul>
</section>
<header id="main_header" class="full-bleed">
<button id="elevator_button" class="button" onclick="showSiteMap()">
<svg class="icon button__icon--left" width="24" height="24" viewBox="0 0 24 24" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M12 3L16.3301 10.5H7.66987L12 3Z" />
<path d="M12 21L7.66987 13.5L16.3301 13.5L12 21Z" />
</svg>
<span class="button__label">
Elevator
</span>
</button>
<a href="index.html" class="main-logo flex align-center page-link justify-self-center" data-target="home_page">
<svg id="main_header__logo" class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
d="M20.46,21.32C20,19.78,18.6,18.59,15.3,17a12.67,12.67,0,0,1-2.64-1.56,4.27,4.27,0,0,1-.79-1,2.6,2.6,0,0,1,0-1.41c.24-.68.49-1,2.43-2.85a7.18,7.18,0,0,0,2.09-2.92,4.25,4.25,0,0,0,0-1.77,6.52,6.52,0,0,0-2.85-3.11c-.56-.36-.81-.4-.81-.15a2.33,2.33,0,0,1-.18.45L12.4,3l-.53-.36c-.28-.21-.64-.41-.77-.49s-.46-.11-.46,0a6.21,6.21,0,0,1-.37.83s-.08,0-.17-.08c-1.15-.83-1.64-1-1.64-.73A7.33,7.33,0,0,1,7.7,3.65C6.48,5.68,5.24,6.7,4,6.7c-.56,0-.54,0-.37.64s.2.58.68.43a3.37,3.37,0,0,0,1.09-.54.86.86,0,0,1,.3-.17,1.34,1.34,0,0,1,.13.39.79.79,0,0,0,.17.4A3.5,3.5,0,0,0,7.37,7.3L7.8,7l.09.34c.12.45.19.51.62.39a4.25,4.25,0,0,0,2.17-1.54l.38-.45,0,.39A5.92,5.92,0,0,1,8.89,9.54L7.67,10.71c-2,1.93-1.89,3.51.37,5a27.41,27.41,0,0,0,2.89,1.51c.17.07.62.32,1,.54C14,19,15,20.23,15,21.48a2,2,0,0,0,0,.49h0c0,.05,0,.05.56-.1a1.89,1.89,0,0,0,.53-.21,2.41,2.41,0,0,0-.34-1.15,7.05,7.05,0,0,0-1.68-1.77,21.91,21.91,0,0,0-3.2-1.83A9.53,9.53,0,0,1,8.16,15.2a2.18,2.18,0,0,1-.74-1.55C7.42,12.79,7.86,12,9,11c1.77-1.64,2.45-2.45,2.92-3.55a2.28,2.28,0,0,0,.26-1.26A2,2,0,0,0,12,5.06l-.2-.45L12,4.3l.28-.49.09-.18L12.6,4a3.69,3.69,0,0,1,.61,1.76A3.47,3.47,0,0,1,12.94,7l-.09.25s-.21.37-.41.69A17.78,17.78,0,0,1,9.91,10.6c-1.07,1-1.43,1.62-1.47,2.47a2.05,2.05,0,0,0,.7,1.73,10.47,10.47,0,0,0,3.28,2.08c2.28,1.13,3.26,1.81,4,2.73a2.94,2.94,0,0,1,.74,1.75,1.26,1.26,0,0,0,.09.57.48.48,0,0,0,.26,0l.51-.13.29-.08,0-.28c-.13-1-1-2-2.47-3a25.52,25.52,0,0,0-3.26-1.77,8.59,8.59,0,0,1-2.23-1.43,2.09,2.09,0,0,1-.5-2.62c.26-.53.5-.83,2.35-2.6,1.51-1.45,2.15-2.58,2.15-3.79A3.67,3.67,0,0,0,13,3.48a3,3,0,0,1-.4-.42A1.85,1.85,0,0,1,13,2.33a6.74,6.74,0,0,1,1.83,1.73,2.62,2.62,0,0,1,.47,1.68,3,3,0,0,1-.55,1.84c-.45.78-.79,1.14-2.67,2.93a5.56,5.56,0,0,0-1.3,1.64,1.77,1.77,0,0,0-.21,1,1.76,1.76,0,0,0,.19.92,6.28,6.28,0,0,0,2.9,2.34,21.6,21.6,0,0,1,3.66,2c1.35,1,2,2,2,3a1.06,1.06,0,0,0,.05.47,2.83,2.83,0,0,0,1-.24C20.56,21.68,20.56,21.66,20.46,21.32ZM7.29,6.4h0a2.23,2.23,0,0,1-.9.28L6,6.72l.43-.53a15.22,15.22,0,0,0,1.89-3,3.52,3.52,0,0,1,.38-.67c.07-.08.49.2,1,.64l.39.35L9.66,4A6.7,6.7,0,0,1,7.29,6.4Zm3.58-1.11A5.8,5.8,0,0,1,9.25,6.51h0a3.3,3.3,0,0,1-.74.17l-.35,0,.39-.49a15.64,15.64,0,0,0,1.32-2,4.63,4.63,0,0,1,.28-.49c.06-.08.33.26.57.77l.28.57Zm1-1.4a1.63,1.63,0,0,1-.28.4A6.63,6.63,0,0,1,11,3.72l-.53-.56.12-.29c.2-.49.24-.51.64-.19a5.57,5.57,0,0,1,.85.78A2.78,2.78,0,0,1,11.87,3.89Z" />
</svg>
<h4 class="h4 header__company-name">RanchiMall</h4>
</a>
<theme-toggle></theme-toggle>
</header>
<div id="outlet_switcher" class="grid gap-1-5 hide-completely">
<span id="outlet_switcher__floor_num" class="weight-500 color-0-8"></span>
<section id="outlet_switcher__outlet_container" class="outlet_switcher__floor"></section>
</div>
<main class="page">
<section class="outlet-hero-section margin-bottom-3r">
<div class="grid">
<h2 class="h2 weight-700 margin-bottom-1r">Bob's Fund</h2>
<p>
Bobs Fund is a 20 year long term Bitcoin price linked product. Investors are entitled to 100 percent
of Bitcoin price gains, but they must hold for 20 years. Over a very long time period, investor
returns
on an asset like Bitcoin should outstrip returns on conventional assets like real estate and stocks.
The
management fees on this product is zero. RanchiMall earns by having invested an equal amount as
every investor, thus the interests of fund manager, and fund investors are totally aligned.
</p>
</div>
<button class="outlet-label">
<span class="outlet-label__name">Outlet</span>
<span class="outlet-label__no"></span>
<svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<path fill="none" d="M0 0h24v24H0z" />
<path d="M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z" />
</svg>
</button>
</section>
<div class="rooms__header">
<h4 class="room__label">Rooms</h4>
</div>
<section class="rooms-layout">
<div id="expanding_tile" class="hide-completely"></div>
<a class="room-tile room-tile--main" href="#performance_room">
<div class="tile-content">
<div class="grid flow-column gap-1 justify-start align-center">
<svg class="room-tile__icon" id="b23be00b-0d64-4bed-9d99-6f7aaf421af4" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M44.53,26.6a7.17,7.17,0,1,1,5.07-2.1h0A7.16,7.16,0,0,1,44.53,26.6Zm0-11.47a4.31,4.31,0,1,0,3,1.26A4.31,4.31,0,0,0,44.53,15.13Z" />
<path
d="M62.58,1.38A4.7,4.7,0,0,0,58.35.09L45.09,2.66a14.61,14.61,0,0,0-7.56,4L19.92,24.29l-9,2.23a8.75,8.75,0,0,0-4.1,2.31L.46,35.2a1.43,1.43,0,0,0,1,2.44h.08L10,37.2l1.67,1.68L6.85,41.23a1.43,1.43,0,0,0-.38,2.3l14,14a1.44,1.44,0,0,0,1,.42l.24,0a1.47,1.47,0,0,0,1.05-.78l2.35-4.79,1.61,1.6-.45,8.58a1.43,1.43,0,0,0,.85,1.38,1.51,1.51,0,0,0,.58.12,1.44,1.44,0,0,0,1-.42l6.37-6.36a8.75,8.75,0,0,0,2.31-4.1l2.23-9,17.7-17.7a14.5,14.5,0,0,0,4-7.56L63.87,5.61A4.7,4.7,0,0,0,62.58,1.38ZM21,54.05,9.91,42.92,13.78,41,23,50.18ZM8.85,30.86a5.82,5.82,0,0,1,2.76-1.56L16,28.21,10.23,34l-.37.37-4.74.25ZM34.58,52.43A5.89,5.89,0,0,1,33,55.19l-3.74,3.73.25-4.74,6.13-6.13Zm20.68-28-18,18h0l-9,9-7.85-7.86-5.31-5.3h0l-2.55-2.54,27-27a11.72,11.72,0,0,1,5.38-3L58.3,19A11.64,11.64,0,0,1,55.26,24.41Zm5.8-19.34L59,15.68,48.28,5,58.89,2.9a1.85,1.85,0,0,1,2.17,2.17Z" />
<path
d="M2.63,62.76a1.41,1.41,0,0,1-1-.41,1.44,1.44,0,0,1,0-2l8.12-8.13a1.44,1.44,0,0,1,2,2L3.64,62.35A1.42,1.42,0,0,1,2.63,62.76Z" />
<path
d="M10.75,62.76a1.43,1.43,0,0,1-1-2.44l4.06-4.07a1.43,1.43,0,0,1,2,2l-4.06,4.06A1.43,1.43,0,0,1,10.75,62.76Z" />
<path
d="M2.63,54.64a1.43,1.43,0,0,1-1-2.44l4.07-4.06a1.43,1.43,0,0,1,2,2L3.65,54.22A1.44,1.44,0,0,1,2.63,54.64Z" />
</svg>
<h4 class="room-tile__title">Performance</h4>
</div>
<div id="performance_preview"></div>
</div>
</a>
<a class="room-tile" href="#product_room">
<div class="tile-content">
<div class="grid flow-column gap-1 justify-start align-center">
<svg class="room-tile__icon" id="b76bf456-6b89-4220-8b44-f4f7d833bad6" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M61.28,22.11c0-.05,0-.09,0-.14L58.62,6A1.68,1.68,0,0,0,57,4.6H7A1.68,1.68,0,0,0,5.38,6L2.72,22c0,.05,0,.09,0,.14s0,.09,0,.14V57.72A1.68,1.68,0,0,0,4.38,59.4H59.62a1.68,1.68,0,0,0,1.68-1.68V22.25C61.3,22.2,61.28,22.16,61.28,22.11Zm-3.64-1.54H39.34L38.51,8h17ZM27.92,23.93h8.16v6.64L33,28.41a1.7,1.7,0,0,0-1.9,0l-3.13,2.16ZM35.15,8,36,20.57H28L28.91,8ZM8.46,8H25.55l-.88,12.61H6.36ZM57.94,56H6.06V23.93h18.5v9.84a1.67,1.67,0,0,0,2.63,1.38L32,31.84l4.81,3.31a1.65,1.65,0,0,0,.95.3,1.76,1.76,0,0,0,.78-.19,1.68,1.68,0,0,0,.9-1.49V23.93h18.5Z" />
</svg>
<h4 class="room-tile__title">Product</h4>
</div>
</div>
</a>
<!-- <a class="room-tile" href="#purchase_room">
<div class="tile-content">
<svg class="room-tile__icon" id="bb329e59-3d30-49a7-ac0d-b164d3b3b631" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path d="M42.74,64a14,14,0,1,1,14-14A14,14,0,0,1,42.74,64Zm0-24.73A10.7,10.7,0,1,0,53.44,50,10.71,10.71,0,0,0,42.74,39.27Z"/><path d="M28.7,50H14.08a3.43,3.43,0,0,1-3.42-3.58l1.4-31.51h4.85V17.8a1.71,1.71,0,1,0,3.42,0V14.88H33V17.8a1.71,1.71,0,1,0,3.42,0V14.88h4.84L42.2,36c.18,0,.35,0,.54,0a13.92,13.92,0,0,1,2.9.31l-1.1-24.8H36.42V9.76a9.76,9.76,0,1,0-19.51,0v1.69H8.79L7.24,46.24a6.85,6.85,0,0,0,6.84,7.15H29.14A14.24,14.24,0,0,1,28.7,50ZM20.33,9.76A6.34,6.34,0,1,1,33,9.76v1.69H20.33Z"/><path d="M41.23,54.65a1.69,1.69,0,0,1-1.18-.49l-3-3a1.67,1.67,0,0,1,2.35-2.36l1.84,1.84,4.85-4.85a1.66,1.66,0,0,1,2.35,2.35l-6,6A1.67,1.67,0,0,1,41.23,54.65Z"/></svg>
<h4 class="room-tile__title">Buy</h4>
</div>
</a> -->
</section>
<section class="room-container hide-completely page-layout">
<header class="room-container__header">
<button class="grid flow-column gap-1 align-center" onclick="hideRoom()">
<svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<path fill="none" d="M0 0h24v24H0z" />
<path d="M7.828 11H20v2H7.828l5.364 5.364-1.414 1.414L4 12l7.778-7.778 1.414 1.414z" />
</svg>
<h3 id="room_title" class="hide-completely"></h3>
</button>
</header>
<h1 id="hero_title"></h1>
<section class="room-carousel">
<section id="performance_room" class="grid room">
<div class="legend-container flex align-center justify-center margin-bottom-1r">
<div id="line_sample" class="hide-completely"></div>
<h4 id="graph_legend"></h4>
</div>
<section class="graph-container">
<canvas id="performance_graph"></canvas>
</section>
<p>Bobs fund different fund release timeline</p>
<ul id="bobs_fund_timeline" class="timeline-container"></ul>
</section>
<section id="product_room" class="grid room">
<section class="features-grid">
<div class="feature">
<div class="feature__icon">
<svg class="icon" id="f47905c4-be19-4535-912c-ac0a41d5362d" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M55.59,38a10.43,10.43,0,0,0-3.09-4.19,12.61,12.61,0,0,0-5.4-2.46,11.57,11.57,0,0,0,5.75-4.7,13.39,13.39,0,0,0,1.86-7q0-7.62-5.86-11.46c-3.64-2.39-8.62-3.65-14.91-3.82V0H25.38V4.28H21.7V0H13.14V4.28H7.42v7.84l5.75,1.22V50.7L7.42,51.91v7.81h6.69V64h8.56V59.72h3.68V64h8.56V59.72h.42q10.37,0,15.8-4.15t5.45-12.3A14.09,14.09,0,0,0,55.59,38ZM41.35,21.11A5.14,5.14,0,0,1,39,25.77q-2.34,1.52-7.07,1.51h-5.4V14.48h6q4.45,0,6.65,1.58A5.81,5.81,0,0,1,41.35,21.11ZM41.29,48q-2,1.56-6,1.56H26.54V36.11H36a9.61,9.61,0,0,1,4.19.78,5,5,0,0,1,2.36,2.36,9.14,9.14,0,0,1,.76,4A5.66,5.66,0,0,1,41.29,48Z" />
</svg>
</div>
<h4 class="feature__title">Bitcoin linked</h4>
<p class="feature__brief">Bob's Fund is a 20 year long term Bitcoin price linked product</p>
</div>
<div class="feature feature--wide">
<div class="feature__icon">
<svg class="icon" id="a0972e55-309b-4721-ab64-f0e363b1245c" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M32,11.86a18.06,18.06,0,1,0,18,18.06A18.08,18.08,0,0,0,32,11.86Zm8.45,14.45-9.57,9.57a1.65,1.65,0,0,1-1.17.48,1.67,1.67,0,0,1-1.18-.48l-5-5a1.66,1.66,0,0,1,2.35-2.35l3.81,3.8L38.1,24a1.66,1.66,0,1,1,2.35,2.35Z" />
<path
d="M59.42,26.2a5.89,5.89,0,0,0-3.05-9.4h0a5.89,5.89,0,0,1-4.37-6A5.89,5.89,0,0,0,44,5a5.89,5.89,0,0,1-7.07-2.29h0a5.88,5.88,0,0,0-9.88,0A5.89,5.89,0,0,1,20,5a5.89,5.89,0,0,0-8,5.81h0a5.89,5.89,0,0,1-4.37,6,5.89,5.89,0,0,0-3,9.4h0a5.91,5.91,0,0,1,0,7.43A5.89,5.89,0,0,0,7.63,43,5.88,5.88,0,0,1,12,48.94L6.37,58.68a.34.34,0,0,0,.29.51l5.14.05a.34.34,0,0,1,.29.17l2.61,4.42a.33.33,0,0,0,.58,0l5.28-9.14a5.87,5.87,0,0,1,6.5,2.45h0a5.88,5.88,0,0,0,9.88,0h0a5.87,5.87,0,0,1,6.5-2.45l5.28,9.14a.33.33,0,0,0,.58,0l2.61-4.42a.34.34,0,0,1,.29-.17l5.14-.05a.34.34,0,0,0,.29-.51L52,48.94A5.88,5.88,0,0,1,56.37,43a5.89,5.89,0,0,0,3.05-9.4A5.91,5.91,0,0,1,59.42,26.2ZM32,50A20.06,20.06,0,1,1,52.06,29.92,20.08,20.08,0,0,1,32,50Z" />
</svg>
</div>
<h4 class="feature__title">Better returns than conventional assets</h4>
<p class="feature__brief">Over a very long time period, Bitcoin returns should outstrip
returns on conventional assets like real estate and stocks</p>
</div>
<div class="feature feature--wide">
<div class="feature__icon">
<svg class="icon" id="a9cf0968-17a3-4e2e-8dcf-10d366d12d28" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M17.28,29a16.35,16.35,0,0,1-7.63-1.64,11.32,11.32,0,0,1-4.77-4.54,13.17,13.17,0,0,1-1.63-6.61V12.88A13.3,13.3,0,0,1,4.88,6.25,11.52,11.52,0,0,1,9.6,1.67,15.9,15.9,0,0,1,17.2,0a15.94,15.94,0,0,1,7.63,1.67,11.43,11.43,0,0,1,4.71,4.55,13.5,13.5,0,0,1,1.6,6.66v3.29a13.36,13.36,0,0,1-1.6,6.61,11.33,11.33,0,0,1-4.68,4.54A16,16,0,0,1,17.28,29Zm0-8a3.94,3.94,0,0,0,3.21-1.39,5.13,5.13,0,0,0,1.16-3.4V12.88a5.31,5.31,0,0,0-1.16-3.47A4,4,0,0,0,17.2,8a3.94,3.94,0,0,0-3.27,1.41,5.35,5.35,0,0,0-1.14,3.47v3.29A5.11,5.11,0,0,0,14,19.59,4.09,4.09,0,0,0,17.28,21Zm3,37.61-6.93-3.43L43.76,6.46,50.7,9.88ZM46.89,64a16.15,16.15,0,0,1-7.64-1.67,11.75,11.75,0,0,1-4.81-4.58,13,13,0,0,1-1.67-6.58V47.91a13.19,13.19,0,0,1,1.63-6.58,11.41,11.41,0,0,1,4.77-4.58,16.11,16.11,0,0,1,7.63-1.67,16,16,0,0,1,7.6,1.65,11.39,11.39,0,0,1,4.72,4.55,13.3,13.3,0,0,1,1.63,6.63v3.26a13.5,13.5,0,0,1-1.61,6.63,11.29,11.29,0,0,1-4.68,4.55A15.87,15.87,0,0,1,46.89,64Zm0-8c1.68,0,2.81-.42,3.4-1.26a6.33,6.33,0,0,0,.88-3.61V47.91a5.31,5.31,0,0,0-1.12-3.42,3.88,3.88,0,0,0-3.25-1.41,4,4,0,0,0-3.33,1.41,5.31,5.31,0,0,0-1.12,3.42v3.26a4.93,4.93,0,0,0,1.33,3.42A4.17,4.17,0,0,0,46.89,56Z" />
</svg>
</div>
<h4 class="feature__title">Get 100% of gains</h4>
<p class="feature__brief">Investors are entitled to 100% of Bitcoin price gains</p>
</div>
<div class="feature">
<div class="feature__icon">
<svg class="icon" id="b25d5f7d-dd5a-4cc1-a2c9-37dbecdeaff1" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M32.11,64q-10.12,0-16-6.41t-5.9-19V25.46q0-12.56,5.9-19T32,0Q42,0,47.89,6.45t5.92,19V38.58q0,12.6-5.87,19T32.11,64Zm0-11.41a5.53,5.53,0,0,0,5-3q1.76-3,1.75-10.15V24.52c0-4.67-.6-8-1.79-10a5.87,5.87,0,0,0-10.26,0q-1.76,3-1.75,10.06V39.43q0,7.18,1.75,10.17A5.7,5.7,0,0,0,32.11,52.59Z" />
</svg>
</div>
<h4 class="feature__title">No management fee</h4>
<p class="feature__brief">The management fees on this product is zero</p>
</div>
<div class="feature">
<div class="feature__icon">
<svg class="icon" id="e0287cba-7cef-4217-aee4-c8ac3e32d7a5" data-name="Layer 1"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<path
d="M49.52,20.65a1,1,0,0,1,0-1.16L56.94,9a1,1,0,0,0-.83-1.58H18.32V2.52a2.52,2.52,0,1,0-5,0V59H9.4a2.52,2.52,0,1,0,0,5H22.21a2.52,2.52,0,0,0,0-5H18.32V32.73H56.11a1,1,0,0,0,.83-1.59Z" />
</svg>
</div>
<h4 class="feature__title">Aligned goals</h4>
<p class="feature__brief">RanchiMall earns by having invested an equal amount as every
investor, thus the interests of fund manager, and fund investors are totally aligned</p>
</div>
</section>
<p class="margin-bottom-3r">
Bobs Fund allows customers to take a direct share in Bitcoin and they are automatically guided
into a
long term investment plan. Bitcoin is a long term investors paradise with supply artificially
constrained, and demand only growing. There are no price guarantees in this product. But the
long
duration of the investment ensures that customers will get an outsized rate of return.
RanchiMall as
Fund Manager does not charge management fees.
</p>
<h4 class="h4 margin-bottom-1r">Risk Management</h4>
<p class="margin-bottom-3r">
There is no price risk for RanchiMall in Bobs Fund. But since this is a long term
product, information security risks are high to maintain Bitcoins safely. Bitcoin keys must be
split
using Shamir Secret Key Share algorithm, and should be recombined at the time of redemption. The
number of shares should have enough redundancy so that if some holders are not around, the keys
must still be recovered.
</p>
<h4 class="h4 margin-bottom-1r">Founder Notes</h4>
<p class="margin-bottom-3r">
Bobs Fund was first issued in my MBA classmates WhatsApp group, and restricted only to my
classmates in June 2017. The product had a long term duration of 20 years, and it needed lot of
trust
which my classamtes had in me. We kept this product concept under observation and testing for 4
years, before exploring options to make it public. Another objective was to try out an idea
where
fund management expenses are nil, as fund management fees eats up a lot of customer returns over
long term. Instead we made an equal investment as every contributing member did, and we hope to
earn over the long life time of this product. Over time we realized, we could also use the
Bitcoin as
collateral for DeFi products, and that gives us an additional earning stream.
</p>
</section>
<section id="purchase_room" class="grid room">
<sm-button variant="primary">Buy here</sm-button>
</section>
</section>
<footer class="room-container__footer">
<h4>Related rooms</h4>
<div id="room_switcher"></div>
</footer>
</section>
<section>
<a class="ext-link-tile" href="https://ranchimall.github.io/bobsfund/" target="_blank">
<div class="grid">
<h4 class="tile__title">See Bob's Fund in action</h4>
<p class="tile__brief">Visit the website to see investors and asset performance</p>
</div>
<button class="round">Visit</button>
</a>
</section>
</main>
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.3.2/dist/chart.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.3/gsap.min.js"></script>
<script src="assets/js/components.js"></script>
<script src="https://unpkg.com/uhtml@3.0.1/es.js"></script>
<script src="assets/js/index.js"></script>
<script>
const bobFund = [
{
release: 1497970979000,
invested: 770000,
BTC_base: 2676.50,
USD_base: 65.00,
investors: [
{
investorName: 'Amit gupta',
floId: 'FRvaLurkpLNZiADR6aypDuBXjHAXymvoW3',
invested: 20000,
},
{
investorName: 'Vijay sarda',
floId: 'FEt4wGCf5aXQvNRju1QyzcXBc21nETSX1H',
invested: 20000,
},
{
investorName: 'Vijesh Raikar',
floId: 'FPDdVVeuZv6b8rk8PexTXPMzvKiZ5yRmy2',
invested: 20000,
},
{
investorName: 'Ajit Varshney',
floId: 'FCPVSrEB38GeLC75ELXhF853kCMWwVRHQB',
invested: 20000,
},
{
investorName: 'barun Kumar',
floId: 'FTS3FXu8kWHeFbd1V22w2D6P5BYYzEW8i',
invested: 10000,
},
{
investorName: 'Kunal Dikshit',
floId: 'FLg6BZejmHdmaKrk9tcwY3i3vHbmMnjBT5',
invested: 20000,
},
{
investorName: 'Sundeep Pandey',
floId: 'FPB1mtZmMX9dt7XAzBFx27sSyTSi7JNMrj',
invested: 20000,
},
{
investorName: 'Kusumakar Dwivedi',
floId: 'F87CMLVrGABco1zLyUiQCPq51QroHkABG9',
invested: 20000,
},
{
investorName: 'Surojeet Sengupta',
floId: 'FR6Qh9Szecx3FPNeoo9zWcmAEtuAMbkrFi',
invested: 20000,
},
{
investorName: 'Akash Srivastava',
floId: 'FDDtLLE61MKxheSyEHfAvwoD52nwGB98ep',
invested: 20000,
},
{
investorName: 'V Jayaram',
floId: 'FQf65GctPRu1zRHgFk5ynWTjwQeENymPKB',
invested: 20000,
},
{
investorName: 'Mayank Agrawal',
floId: 'FQf65GctPRu1zRHgFk5ynWTjwQeENymPKB',
invested: 20000,
},
{
investorName: 'Bhaskar Bhowmik',
floId: 'FUN9oiUUB2ueV59DytRyrKv8sBdVH7Jrck',
invested: 10000,
},
{
investorName: 'Rajesh Agrawal',
floId: 'FNrovxYR3ZPXcu3LjYiPgj7waDzYiJ9YsA',
invested: 20000,
},
{
investorName: 'Chetan Kulkarni',
floId: 'FTDmpz96L3iqc4CrhLW1csjmTVJXV3TT9L',
invested: 20000,
},
{
investorName: 'Amar More',
floId: 'FNojhvoi4aaGYK2LZ4ReCGSh5vk7tzZsqt',
invested: 20000,
},
{
investorName: 'Navin Chandiramani',
floId: 'F95teUSvUDsyjVju9r9RC4MEJaz9pYNnVH',
invested: 20000,
},
{
investorName: 'Gopal Krishnamurthy',
floId: 'F8uYrqM6RuXg7BvypYtZgkADG6YjkrYMZt',
invested: 20000,
},
{
investorName: 'Shivi',
floId: 'FBroPjNntF654rQD1niPmzxPEgPEu5L6nZ',
invested: 20000,
},
{
investorName: 'Shankar RS',
floId: 'FKENY1WnX4F3CD5NHcidP43sXknxDcfhTA',
invested: 20000,
},
{
investorName: 'Vikram Gupta',
floId: 'FKGePGRroHkfcy8yJ4MzNG844uaA2na8Qs',
invested: 20000,
},
{
investorName: 'Rohit Tripathy',
floId: 'FGoveDyLJ9MqCvEZXPCHqnkYQzDwLpD8Ue',
invested: 20000,
},
{
investorName: 'P. Unnikrishnan',
floId: 'FN7ih46Qtcv4darXvbBAXAdV1GLkir8uQt',
invested: 20000,
},
{
investorName: 'Arup Vithal',
floId: 'FEx6ZLhL5ehpK3jw62DtvG9Mn4L2dzD6mx',
invested: 20000,
},
{
investorName: 'Rahul Pundir',
floId: 'FN61MLKRmGiv46TPbXM71Gs91oAF2YDsyn',
invested: 20000,
},
{
investorName: 'Ankur Jain',
floId: 'F9fnJrRGHMXsPMHN2eg3oEammcsX7H4J9m',
invested: 20000,
},
{
investorName: 'Pankaj Shete',
floId: 'FDzWseokR2jNP8wC9o4qz8pZ22qwrfXWPQ',
invested: 20000,
},
{
investorName: 'Sameer Nagpal',
floId: 'FS4DLEj6V4FAdsju4CFGhPMqmVoPMAVRgF',
invested: 20000,
},
{
investorName: 'George Abraham',
floId: 'FBfujtTZfu2GPqPwmbxwevSKkLx7hcFj5R',
invested: 20000,
},
{
investorName: 'Samujjwal Ghosh',
floId: 'FBtDjYZXM6vNgfbGSGvg7xL8U1bfN5iNAF',
invested: 20000,
},
{
investorName: 'Aniruddha Karnataki',
floId: 'FK8nvFGfUYaGNpTbhG6MKBDBa888Bnn4on',
invested: 20000,
},
{
investorName: 'Mohammed Raffe Samathu',
floId: 'FMHVLffKLVvGRwedkTeSu9a2DBGupdiEtC',
invested: 20000,
},
{
investorName: 'Ruchir Gupta',
floId: 'FALfZbEtu16ATSEmmY7wwtRbMXUBakPMDy',
invested: 10000,
},
{
investorName: 'Santosh Nair',
floId: 'FFCHQExESgbzfKeDpm7oghEarHd8XETcwg',
invested: 20000,
},
{
investorName: 'Samit Arora',
floId: 'FFJzBT7Xio7XZHoBCvCKZBtimZJtgPcWih',
invested: 20000,
},
{
investorName: 'Sumeet Doshi',
floId: 'F7kJpgo3fhVahu387JT9hUKQZRUsxYhqcc',
invested: 20000,
},
{
investorName: 'Pradeep Rao',
floId: 'FCqr6r6dvKwK1NCqdQomB9kMhvSjWj4BUL',
invested: 10000,
},
{
investorName: 'Gaurav Sadhir',
floId: 'FKm7PvnG377tWCsWAJjHqqDoUKiMBdAfg9',
invested: 14000,
},
{
investorName: 'Sudhanshu Fadnis',
floId: 'FDvNAjNQ1uR1 JsADYNMwFjkiY2vKECnJRV',
invested: 20000,
},
{
investorName: 'Natesh Rao',
floId: 'FTB3Vi6Nj6hoFUwiQMadmkjq2M3FpMoe5T',
invested: 20000,
},
{
investorName: 'Kapil Chaturvedi',
floId: 'FMG2tashYXZeApqMtikYm4Uck8UxMdxpUZ',
invested: 6000,
},
{
investorName: 'Puneet Sondh',
floId: 'FTWGujfMdvGNqgMRveXvg93MCn4dUKEHzV',
invested: 20000,
},
]
},
{
release: 1622041379000,
invested: 1000000,
BTC_base: 37488.00,
USD_base: 72.56,
href: `https://ranchimall.github.io/bobsfund/#cf16bb877f49cb70348bbddeb439f4b46fb5d51b0c09763667762bbea36e8305`
},
]
function getCurrentRates() {
let fetchData = api => new Promise((resolve, reject) => {
fetch(api).then(response => {
if (response.ok)
response.json().then(data => resolve(data))
else
reject(response)
}).catch(error => reject(error))
})
return new Promise((resolve, reject) => {
fetchData(`https://bitpay.com/api/rates`).then(result => {
let BTC_USD, BTC_INR, USD_INR
for (let i of result)
i.code == "USD" ? BTC_USD = i.rate : i.code == "INR" ? BTC_INR = i.rate : null;
USD_INR = BTC_INR / BTC_USD;
resolve({
BTC_USD,
BTC_INR,
USD_INR
})
}).catch(error => reject(error))
})
}
let USD_current, BTC_current
getCurrentRates().then(async (rates) => {
USD_current = rates.USD_INR;
BTC_current = rates.BTC_USD;
renderAllFundInvestors()
}).catch(error => console.error(error))
function calcNetValue(obj) {
let { isHistorical = false, BTC_base, USD_base, amount, fee, histBtc, histUsd } = obj
let gain, interest, net = 0, currentValue = 0;
if (isHistorical) {
gain = (histBtc - BTC_base) / BTC_base;
}
else {
gain = (BTC_current - BTC_base) / BTC_base;
}
interest = gain * (1 - fee)
net = amount / USD_base;
net += net * interest;
if (isHistorical) {
currentValue = net * histUsd
}
else {
currentValue = net * USD_current
}
percentGain = ((currentValue - amount) / amount) * 100
return [currentValue, percentGain.toFixed(0)];
}
function renderAllFundInvestors() {
const randIndex = getRandom(0, bobFund.length - 1)
const timelineItems = bobFund.map((fund, index) => {
const { release, invested, investors, href, USD_base, BTC_base } = fund
let timelineContents
if (fund.hasOwnProperty('investors')) {
const fundRows = investors.map(investor => {
let obj = {
BTC_base,
USD_base,
amount: investor.invested,
fee: 0
}
let [currentValue, gain] = calcNetValue(obj)
currentValue = parseFloat(currentValue.toFixed(2))
timeElapsed = (new Date().getFullYear() - 2017)
return render.bobFundRow({ ...investor, currentValue, gain, timeElapsed })
})
timelineContents = html`<div class="grid series-container series-container--bobsfund"> ${fundRows} </div>`;
} else {
let obj = {
BTC_base,
USD_base,
amount: invested,
fee: 0
}
let [currentValue, gain] = calcNetValue(obj)
currentValue = parseFloat(currentValue.toFixed(2))
timelineContents = html`
<div class="grid card">
<div class="flex space-between">
<div class="grid">
<h5 class="label color-0-8 weight-500">Total fund investment</h5>
<h3 class="value original-value">${formatAmount(invested, 'INR')}</h3>
</div>
<div class="grid justify-right text-align-right">
<h4 class="label color-0-8 weight-500">Current value</h4>
<h3 class="value current-value" style="color: var(--green)">${formatAmount(currentValue, 'INR')}</h3>
</div>
</div>
<a class="button button--filled justify-right" href='${href}' target="_blank">See investors</a>
</div>
`
}
if (index === 0) {
let obj = {
BTC_base,
USD_base,
amount: invested,
fee: 0,
release
}
renderGraph(obj)
let [currentValue, gain] = calcNetValue(obj)
currentValue = parseFloat(currentValue.toFixed(2))
const fundCard = html`
<div class="grid card">
<div class="grid">
<h5 class="label color-0-8 weight-500">Fund start date</h5>
<h3 class="value">${getFormatedTime(release, true)}</h3>
</div>
<div class="flex space-between">
<div class="grid">
<h5 class="label color-0-8 weight-500">Total fund investment</h5>
<h3 class="value original-value">${formatAmount(invested, 'INR')}</h3>
</div>
<div class="grid justify-right text-align-right">
<h4 class="label color-0-8 weight-500">Current value</h4>
<h3 class="value current-value" style="color: var(--green)">${formatAmount(currentValue, 'INR')}</h3>
</div>
</div>
</div>
`
renderElem(getRef('performance_preview'), fundCard)
}
return html`
<li class="timeline-item">
<h4 class="timeline-item__header">${getFormatedTime(release, true)}</h4>
<h4 class="margin-bottom-1r margin-top-1-5">Fund investors</h4>
${timelineContents}
</li>
`;
})
renderElem(getRef('bobs_fund_timeline'), html`${timelineItems}`)
}
async function getPrices() {
return [btcPrices, inrPrices] = await Promise.all([
fetch('https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_MONTHLY&symbol=BTC&market=USD&apikey=DDN5S53DXQ4QH4V4').then(res => res.json()),
fetch('https://www.alphavantage.co/query?function=FX_MONTHLY&from_symbol=USD&to_symbol=INR&apikey=DDN5S53DXQ4QH4V4').then(res => res.json()),
])
}
let dates = []
let historicalData = []
let tableOfData = []
async function getData(obj) {
let [btcPrices, inrPrices] = await getPrices()
btcPrices = btcPrices['Time Series (Digital Currency Monthly)']
inrPrices = inrPrices['Time Series FX (Monthly)']
let allBtcPrices = []
let counter = 0
for (let dataPoint in btcPrices) {
if (counter < 12) {
let BTC_base = btcPrices[dataPoint]['1a. open (USD)']
allBtcPrices.push(BTC_base)
dates.push(dataPoint.split('-').reverse().join('/'))
counter++
}
else {
break
}
}
let index = 0
for (let dataPoint in inrPrices) {
if (allBtcPrices[index]) {
let histBtc = parseFloat(allBtcPrices[index])
let histUsd = parseFloat(inrPrices[dataPoint]['1. open'])
obj.isHistorical = true
let [currentValue, gain] = calcNetValue({ ...obj, histBtc, histUsd })
// console.log(currentValue)
historicalData.push(currentValue)
index++
}
else {
break
}
}
}
let ctx = getRef('performance_graph').getContext('2d');
let gradientFill
let lineColor
let textColor
let myChart
function selectGraphColors() {
gradientFill = ctx.createLinearGradient(200, 0, 200, 400);
let cssTextColor = getComputedStyle(document.body).getPropertyValue('--text-color')
gradientFill.addColorStop(0, `rgba(${cssTextColor}, 0.2)`);
gradientFill.addColorStop(1, "transparent");
if (myChart) {
lineColor = ctx.createLinearGradient(0, 0, myChart.chartArea.width, 0)
} else {
lineColor = ctx.createLinearGradient(0, 0, 500, 0)
}
lineColor.addColorStop(0, "#f49080");
lineColor.addColorStop(1, "#80b6f4");
// lineColor = getComputedStyle(document.body).getPropertyValue('--secondary-text-color');
textColor = `rgba(${cssTextColor}, 0.8)`
}
async function renderGraph(obj) {
await getData(obj)
selectGraphColors()
getRef('line_sample').classList.remove('hide-completely')
getRef('graph_legend').textContent = `${getFormatedTime(obj.release, true)} fund performace`
myChart = new Chart(ctx, {
type: 'line',
data: {
labels: dates.reverse(),
datasets: [{
data: historicalData.reverse(),
borderColor: lineColor,
fill: true,
backgroundColor: gradientFill,
pointBackgroundColor: 'white',
pointRadius: 4,
pointHoverRadius: 6,
pointHoverBorderWidth: 4,
borderWidth: 4,
tension: 0.3,
color: textColor
}]
},
options: {
locale: 'en-IN',
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
}
},
scales: {
y: {
ticks: {
color: textColor
},
// display: false,
beginAtZero: true
},
x: {
ticks: {
color: textColor
},
// display: false,
grid: {
display: false
}
}
}
}
});
}
document.addEventListener("themechange", function (e) {
selectGraphColors()
myChart.data.datasets[0].borderColor = lineColor
myChart.data.datasets[0].backgroundColor = gradientFill
myChart.options.scales.x.ticks.color = textColor;
myChart.options.scales.y.ticks.color = textColor;
myChart.options.plugins.legend.labels.color = textColor;
myChart.update()
});
</script>
</body>
</html>