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();

Wednesday 13 November 2019

Chaka opens up global investing to Africa’s most populous nation

Fintech startup Chaka aims to open up online investingd to Africa’s most populous nation, Nigeria.

The seed-stage company recently went live with its mobile-based platform that offers Nigerians stock trading in over 40 countries.

Chaka positions itself as a passport to local and global investing. The startup has created an API and interface that allows Nigerians with a bank account (and who meet KYC requirements) to create trading accounts to purchase global blue chip and local Nigerian stocks.

Investors can get started with as little as 1000 Naira or $10 to create a local and global wallet to trade, according to Chaka founder and CEO Tosin Osibodu.

The platform has partnerships with two brokers to facilitate stock purchases: Citi Investment Capital and U.S. based DriveWealth.

“Embedded in our offer is the ability to buy on the local stock market…we make it more seamless than usual, and assets…from this whole universe outside the continent,” said Osibodu.

The Nigerian Stock Exchange has been upgrading its platform to digitize and accommodate more listings. It has a five-year partnership with NASDAQ and Airtel Africa listed on the NSE in July. 

On the Chaka’s addressable market, “Our outlook is that within Nigeria…between one and two million people are strongly in the market for this product,” Osibodu said.

Tosin Osibodu

Chaka looks to offer more than stocks. “Our product road-map includes not just equities, but other investment products people are interested in — mutual funds, fixed income products, and eventually even cryptocurrencies — so that really expands our bounds,” said Osibodu.

Chaka’s fee structure is 100 Naira (or 3%) for local trades and $4.00 for global trades.

To mitigate the FX risk of the often volatile Nigerian Naira, the startup converts locally to dollars and funds client trades in USD. Chaka agrees to intra-day forward rates at 9am each day and locks them in until 2pm for transactional activity on its platform, according to Osibodu

Chaka hasn’t disclosed amounts, but confirms its has received pre-seed funding from Nigerian founder and investor Iyinoluwa Aboyeji, aka E.

The startup is in a unique position in African fintech. The sector receives the bulk of the continent’s VC (according WeeTracker), but most of it is directed toward P2P payments startups — vs. personal investment platforms.

An alum of U-Penn and Dartmouth, Chaka’s founder got the idea to form the venture, in part, due to challenges attempting to access well-known trading platforms, such as E-Trade.

“I tried to open these accounts and whenever I…disclosed I was Nigerian very shortly after those accounts were closed or denied,” said Osibodu. 

For decades, Nigeria has been known as an originating country for online fraud, commonly referred to as 419 scams. This is something for which the country’s legitimate business operators pay an undue reputational cost, according to Osibodu. 

In recent years, Nigeria has also become a magnet for legitimate business in Africa. The country has the continent’s leading movie and entertainment industry and has emerged as a hotspot for startup formation and VC activity.

Chaka backer Iyinoluwa Aboyeji, who confirmed his investment in the company to TechCrunch, believes progressive trends in Nigeria will open up a new investor class.

In addition to Aboyeji, Chaka has also received seed-funds from Microtraction, a Lagos located early-stage investment shop founded by Yele Bademosi and supported by Y-Combinator CEO Michael Seibel.

Chaka allows for API integrations and has a developer team. The company has created an automated customer verification process. “It sounds trivial compared to the American market, but it’s a bit of a first in Nigeria,” said CEO Tosin Osibodu.

On Chaka’s long-game, “The grand mission of the company is to reduce capital market access barriers,” cording to Osibodu.

“With a two to five million customer base — and a $40 to $200 ARPU — on the really conservative end that’s a $100 million revenue opportunity,” he said.

 

 

 

 

 

 

 

 

 

 

 

 



from TechCrunch https://ift.tt/32Ex7h7
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support