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

Monday, 22 March 2021

Afriex raises $1.2M seed to scale its payments and remittances platform across Africa

Sending money from the U.S. to Nigeria can be a painstaking process. For remittance platforms like Western Union, it will cost a transfer fee and take between one to five business days for money sent from a U.S. debit card to enter a Nigerian bank account

Crypto remittance platforms are rising to the challenge of fixing these cross-border payment issues by reducing time and fees. Just yesterday, we talked about Flux, a Nigerian fintech solving this problem in the present YC W2021 batch. Today, another YC-backed startup, Afriex — but from the Summer 2020 batch — is raising a $1.2 million seed round. 

The company founded by Tope Alabi and John Obirije in 2019 provides instant, zero-fee transfers to Africans at home and in the diaspora. It allows users to deposit cash on the app, send money to a bank account or another user, and withdraw money to a connected bank or debit card

Like other crypto remittance platforms, Afriex has built its business on stablecoins — cryptocurrency backed by the dollar. In essence, the company buys cryptocurrency in one country and sells it in another to offer better exchange rates. This is in contrast to better-known platforms like Western Union and Wise that use traditional banking systems.

Last year while the startup graduated from YC, it claimed to be processing about $500,000 per month in transaction fees and is used in over 30 countries. At the time, Afriex was only present in Nigeria and the U.S. But having started operations in Ghana, Kenya, and Uganda, Afriex claims to be processing millions of dollars each month. On its website, though, Afriex states that customers can only send money to and from Nigeria, Ghana, Kenya, Canada, and the U.S.

With the new investment, the Lagos and San Francisco-based startup is looking to scale up by growing the team and expanding to other markets.

Pan-African VC firm Launch Africa led the seed round. Other investors include Y Combinator, SoftBank Opportunity Fund, Future Africa, Brightstone VC, Processus Capital, Uncommon Ventures, A$AP Capital, Precursor Ventures, and Ivernet Holdings. Angel investors like Russell Smith, Mandela Schumacher-Hodge Dixon, Furqan Rydhan, and Andrea Vaccari also took part.

The SoftBank Opportunity Fund, a subsidiary of the SoftBank Group, targets founders of color in the U.S. running early-stage startups. Since launching in June 2020, it has invested in 22 startups and Afriex seems to be the only one catering to a set of users in the US and another continent.

This is due to Alabi’s upbringing as an immigrant child who has had a mix of both worlds. It was difficult to send money to Nigeria and his experience as a blockchain developer at Consensys made him realize he could solve a problem.

“We would go back home every two years and even then, I would always take note of what was missing and what could be improved. I would find myself having to pay for foreign expenses with money that was sitting in a US bank account,” said Alabi. “Traditional remittance companies were so slow and expensive that I knew I could do it better with crypto. Remittance is the best and most important use case for crypto. Our goal is to build the world’s largest remittance company, starting with emerging markets.”



from TechCrunch https://ift.tt/315vWcm
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support