{"id":15021117,"url":"https://github.com/zabo-api/zabo-sdk-react-native","last_synced_at":"2025-10-27T13:30:57.371Z","repository":{"id":48526639,"uuid":"366752898","full_name":"zabo-api/zabo-sdk-react-native","owner":"zabo-api","description":"Zabo is an API for connecting with cryptocurrency exchanges, wallets and protocols like Bitcoin.","archived":false,"fork":false,"pushed_at":"2021-07-21T16:54:18.000Z","size":1415,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-01T05:41:21.591Z","etag":null,"topics":["binance-api","bitcoin-api","coinbase-api","ethereum-api","zabo-api"],"latest_commit_sha":null,"homepage":"https://zabo.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zabo-api.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-12T14:55:28.000Z","updated_at":"2021-12-08T15:22:55.000Z","dependencies_parsed_at":"2022-09-02T01:21:19.369Z","dependency_job_id":null,"html_url":"https://github.com/zabo-api/zabo-sdk-react-native","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zabo-api%2Fzabo-sdk-react-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zabo-api%2Fzabo-sdk-react-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zabo-api%2Fzabo-sdk-react-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zabo-api%2Fzabo-sdk-react-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zabo-api","download_url":"https://codeload.github.com/zabo-api/zabo-sdk-react-native/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238497715,"owners_count":19482302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binance-api","bitcoin-api","coinbase-api","ethereum-api","zabo-api"],"created_at":"2024-09-24T19:56:09.431Z","updated_at":"2025-10-27T13:30:56.841Z","avatar_url":"https://github.com/zabo-api.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"What is Zabo? A unified cryptocurrency API.\n=========================\n[![CircleCI](https://circleci.com/gh/zabo-api/zabo-sdk-react-native/tree/master.svg?style=svg)](https://circleci.com/gh/zabo-api/zabo-sdk-react-native/tree/master)\n[![Discord](https://img.shields.io/discord/533336922970521600)](https://discord.gg/vGHYuUT)\n[![Discourse](https://img.shields.io/discourse/https/forum.zabo.com/status)](https://forum.zabo.com)   \n\n[Zabo](https://zabo.com) is an API for connecting with cryptocurrency exchanges, wallets and protocols like Bitcoin. Instead of manually integrating with [Coinbase API](https://zabo.com/integrations/coinbase), [Binance API](https://zabo.com/integrations/binance), [Bitcoin APIs](https://zabo.com/integrations/bitcoin) or the hundreds of other cryptocurrency APIs - you can simply use Zabo for them all.  \n\nWe believe teams and developers should focus on building great products, not worry about the fragmented landscape of exchange APIs and blockchain protocols.  \n\nFor our updated list of integrations, [check out our Zabo integrations](https://zabo.com/integrations).\n\n# Zabo API React Native SDK\n\nThe Zabo SDK for React Native provides convenient access to the Zabo API for mobile applications.  \n\nPlease keep in mind that [you must register](https://zabo.com/login) and receive a team id to use in your client application, or if you are using the server side functions, [generate an API keypair from your dashboard](https://zabo.com/dashboard).\n\n![Example](example/img/screenshots.png)\n\n## Documentation\nSee the [Zabo API docs](https://zabo.com/docs).\n\n## Requirements\n- React Native \u003e= 0.62\n\n## Installation\n```\nnpm install zabo-sdk-react-native --save\n```\n\n**iOS Platform:**\nInstall pod\n```\ncd ios \u0026\u0026 pod install \u0026\u0026 cd ..\n```\n\n**Android Platform:**\nYou are set!\n\n## Configuration\nZabo SDK React Native was inspired in the library [React Native In App Browser](https://github.com/proyecto26/react-native-inappbrowser). \n\nIt supports [Chrome Custom Tabs](https://developer.chrome.com/docs/android/custom-tabs/overview/#whatarethey) for Android and [SafariServices](https://developer.apple.com/documentation/safariservices)/[AuthenticationServices](https://developer.apple.com/documentation/authenticationservices) for iOS.\n\nSome extra configuration are necessary:\n\n### Configure Android Launch Mode (REQUIRED)\nConfigure Application launch mode as single task:\n\nAndroidManifest.xml\n```XML\n\u003capplication\n  ...\n  android:launchMode=\"singleTask\"\u003e\n  ...\n\u003c/application\u003e\n```\n\n### Configure Deep Linking (RECOMMENDED)\nzabo-sdk-react-native uses websocket to receive the connection success or connection error callbacks in the app. You can configure a custom link scheme to your app in order to have a better user experience.\n\n**1. Enable Deep Linking in your app:** \nFollow the instructions at [React Native Linking](https://reactnative.dev/docs/linking#enabling-deep-links) documentation. **You can create your own url scheme.** We are using `zabo-app`in our examples.\n\n**iOS example:**\nAppDelegate.m\n```objectivec\n#import \u003cReact/RCTLinkingManager.h\u003e\n\n- (BOOL)application:(UIApplication *)application\n   openURL:(NSURL *)url\n   options:(NSDictionary\u003cUIApplicationOpenURLOptionsKey,id\u003e *)options\n{\n  return [RCTLinkingManager application:application openURL:url options:options];\n}\n```\n\nInfo.plist\n```XML\n\u003ckey\u003eCFBundleURLTypes\u003c/key\u003e\n\u003carray\u003e\n  \u003cdict\u003e\n    \u003ckey\u003eCFBundleTypeRole\u003c/key\u003e\n    \u003cstring\u003eEditor\u003c/string\u003e\n    \u003ckey\u003eCFBundleURLName\u003c/key\u003e\n    \u003cstring\u003ecom.myApp\u003c/string\u003e\n    \u003ckey\u003eCFBundleURLSchemes\u003c/key\u003e\n    \u003carray\u003e\n      \u003cstring\u003ezabo-app\u003c/string\u003e\n    \u003c/array\u003e\n  \u003c/dict\u003e\n\u003c/array\u003e\n```\n\n**Android example:**\nAndroidManifest.xml\n```XML\n\u003cactivity\u003e\n  ...\n  \u003cintent-filter\u003e\n    \u003caction android:name=\"android.intent.action.VIEW\" /\u003e\n    \u003ccategory android:name=\"android.intent.category.DEFAULT\" /\u003e\n    \u003ccategory android:name=\"android.intent.category.BROWSABLE\" /\u003e\n    \u003cdata android:scheme=\"zabo-app\" android:host=\"connected\" android:pathPrefix=\"\" /\u003e\n  \u003c/intent-filter\u003e\n\u003cactivity\u003e\n```\n\n\n**2. Configure Redirect URI:** \nOn login success, the Connect Widget will call back the redirect URI `zabo-app://connected` with the account data. In this case, you should configure this redirect URI in your account on Zabo console: Team Settings -\u003e Developer Settings -\u003e HTTP Redirects tab\n![Redirect URI](example/img/set-redirect-uri.png)\n\n## Usage\n### Zabo.init() parameters\n| Param      | Default                  | Description                                                                             | Required |\n|------------|--------------------------|-----------------------------------------------------------------------------------------|----------|\n| clientId   |                          | App Key acquired when registering a team in  [Zabo Dashboard](https://zabo.com/login/). | Yes      |\n| env        |                          | `sandbox` or `live`                                                                     | Yes      |\n| apiVersion | v1                       | `v0` or `v1`                                                                            | No       |\n\n### zabo.connect() parameters (Optional)\n| Param        | Default                  | Description                              | Required |\n|--------------|--------------------------|------------------------------------------|----------|\n| redirect_uri |                          | Url to be redirected after login success | No       |\n| origin       | zabo-sdk-react-native    | Identification of connection origin      | No       |\n\n### Example\n```JS\nimport React, { useEffect, useState } from 'react'\nimport { SafeAreaView, StyleSheet, ScrollView, View, Text, TouchableOpacity } from 'react-native'\nimport Zabo from 'zabo-sdk-react-native'\n\nconst App = () =\u003e {\n  const [output, setOutput] = useState(null)\n\n  useEffect(() =\u003e {\n    setOutput('Loading SDk...')\n\n    const init = async () =\u003e {\n      try {\n        await Zabo.init({\n          clientId: 'YOUR_CLIENT_ID',\n          env: 'sandbox',\n          apiVersion: 'v1'\n        })\n\n        setOutput('SDk is ready')\n      } catch (err) {\n        setOutput(`ERROR:\\n${JSON.stringify(err)}`)\n      }\n    }\n\n    init()\n  }, [])\n\n  const handleConnect = () =\u003e {\n    const zabo = Zabo.instance\n    const params = {\n      redirect_uri: 'zabo-app://connected', // RECOMMENDED\n      origin: 'zabo-app'                    // RECOMMENDED\n    }\n    zabo.connect({ params }).onConnection(account =\u003e {\n      setOutput(`CONNECTED!\\nACCOUNT:\\n${JSON.stringify(account)}`)\n    }).onError(err =\u003e {\n      setOutput(`ERROR:\\n${JSON.stringify(err)}`)\n    })\n  }\n\n  return (\n    \u003c\u003e\n      \u003cSafeAreaView\u003e\n        \u003cScrollView\u003e\n          \u003cView style={styles.sectionContainer}\u003e\n            \u003cTouchableOpacity onPress={handleConnect} style={styles.button}\u003e\n              \u003cText style={styles.buttonText}\u003eCONNECT\u003c/Text\u003e\n            \u003c/TouchableOpacity\u003e\n          \u003c/View\u003e\n          {output \u0026\u0026\n            \u003cView style={styles.sectionContainer}\u003e\n              \u003cText\u003e{output}\u003c/Text\u003e\n            \u003c/View\u003e}\n        \u003c/ScrollView\u003e\n      \u003c/SafeAreaView\u003e\n    \u003c/\u003e\n  )\n}\n\nconst styles = StyleSheet.create({\n  sectionContainer: { marginTop: 32, paddingHorizontal: 24 },\n  button: { backgroundColor: '#3465E0', marginVertical: 16, padding: 16, alignItems: 'center' },\n  buttonText: { fontSize: 16, fontWeight: '600', color: '#fff' }\n})\n\nexport default App\n```\n\n### After connecting\n```js\nzabo.transactions.getList({ ticker: 'ETH' }).then(history =\u003e {\n  console.log(history)\n}).catch(error =\u003e {\n  /* User has not yet connected */\n  console.error(error)\n})\n```\n\n### Using Promises\nEvery method returns a chainable promise which can be used:\n```js\nzabo.getTeam().then(a =\u003e {\n  console.log(a)\n}).catch(e =\u003e {\n  console.log(e.message)\n})\n```\nOr with async/await:\n```js\nlet exchangeRates = await zabo.currencies.exchangeRates()\nconsole.log(exchangeRates)\n```\n\n## Help and Further Information\nPlease [read our docs](https://zabo.com/docs) and reach out to us in any or all of the following forums for questions:\n\n* [Discord](https://discord.gg/vGHYuUT)\n* [Discourse](https://forum.zabo.com)\n* [Gitter](https://gitter.im/zabo-api/community)\n* [Email](mailto:contact@zabo.com)\n\n## Issues\nIf you notice any issues with our docs, this README, or the SDK, feel free to open an issue and/or a PR. We welcome community contributions!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabo-api%2Fzabo-sdk-react-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzabo-api%2Fzabo-sdk-react-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabo-api%2Fzabo-sdk-react-native/lists"}