Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 25 October 2019

StepLadder, the collaborative deposit saving platform for first-time buyers, raises £1.5M

StepLadder, another London-based startup aiming to help so-called “generation rent” get onto the housing ladder, has raised £1.5 million in seed funding.

Backing the round is Spanish banking giant BBVA and fintech VC Anthemis via the London-based venture studio the pair have partnered on. Early investor Seedcamp also followed on, in addition to unnamed angel investors.

StepLadder says it will use the new capital and support provided by BBVA/Anthemis to further develop its “collaborative finance platform”. The startup is also eyeing up international expansion.

Founded in 2015 by Matthew Addison and joined by Lucy Mullins and Mihir Bhushan, StepLadder’s collaborative deposit saving platform is designed to incentive renters to save for a deposit so that they can purchase their first home.

Using a financial model known as a “Rotating Credit and Savings Association” (ROSCA), StepLadder puts its members into “Circles,” whereby each individual member contributes an identical amount on a monthly basis — ranging from £25 to £1,000. A random draw then takes place each month and the winner is provided with that month’s full pot to use towards their deposit.

“For most first-time buyers, it’s really difficult to get on the property ladder,” says Addison. “Home ownership rates amongst 25-34 years olds have collapsed… [with around] 250,000 fewer first time buyers every year, for over a decade, in the U.K. alone. Raising the deposit is the biggest hurdle. At StepLadder we’re using something called a ROSCA, a form of collaborative finance where people work together in groups to help our members raise their property deposits, on average, 45% faster”.

As an example, StepLadder might match you to a £500 a month Circle for 20 months to raise £10,000. This would see it find 19 other members to be in the same Circle. “Each month the £10,000 is randomly allocated and you could be drawn at any point in that 20 months,” explains StepLadder’s Lucy Mullins. “You have to keep making your £500 a month payment for the full 20 months, so at the end everybody has paid in £10,000 and everybody has received £10,000”.

StepLadder Platform 1

To help protect the platform from being abused, Mullins says that while a member is still part of a Circle, the startup will only release the pot to their solicitor for use as a property deposit. “So, if somebody stops paying after they have been drawn then we wouldn’t release their payout until they had made catch-up payments”.

StepLadder also supports members along the house buying journey. The app lets members engage with a community of like-minded people and access group-buying discounts on services such as mortgages, solicitor fess and surveyors. The latter forms part of the company’s revenue stream.

“We introduce our members (at their request) to high quality service providers, such as mortgage brokers, lending banks, surveyors and insurance providers,” says Addison. “In return, these partners pay us fees or commissions. We offer discounts on these transaction services via the combined buying power of our members in their Circles”.

In addition, there is a small monthly fee (between 2-5%) to be part of a Circle, which Mullins says covers the cost of delivering the service.

This includes holding money securely in a client money account, a payment waiver if a member were to become sick or unemployed after buying a property with their StepLadder deposit, credit bureau costs, and the cost of a Circle host to support members on the journey”.

“We do not aim to profit from the monthly administration fees we charge members and would usually be able to save our members much more in discounts than they pay in fees,” says Mullins.

Meanwhile, StepLadder has plans to expand the use cases for Circles and evolve the platform to also cover general savings goals and targeted “big ticket items”.

Explains Addison: “In Brazil, ROSCAs are used by nine million consumers for everything from dishwashers to cars to homes. We have already begun to demonstrate this potential with both our First Step offering (smaller circles from £25 a month) and proposed partnered launches”.



from TechCrunch https://ift.tt/2BIqob0
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support