{"id":22994309,"url":"https://github.com/jccdex/jcc-android-base-lib","last_synced_at":"2025-08-13T22:31:36.926Z","repository":{"id":66346640,"uuid":"163481191","full_name":"JCCDex/jcc-android-base-lib","owner":"JCCDex","description":"An interface for interacting with the blockchain wallet operation for android","archived":false,"fork":false,"pushed_at":"2019-03-22T10:14:39.000Z","size":1529,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T07:22:02.211Z","etag":null,"topics":["android","blockchain","ethereum","jccdex","jingtum","moac","wallet-operation"],"latest_commit_sha":null,"homepage":null,"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/JCCDex.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-29T06:02:53.000Z","updated_at":"2020-01-20T18:50:01.000Z","dependencies_parsed_at":"2023-02-22T01:45:26.021Z","dependency_job_id":null,"html_url":"https://github.com/JCCDex/jcc-android-base-lib","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/JCCDex/jcc-android-base-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCCDex%2Fjcc-android-base-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCCDex%2Fjcc-android-base-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCCDex%2Fjcc-android-base-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCCDex%2Fjcc-android-base-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JCCDex","download_url":"https://codeload.github.com/JCCDex/jcc-android-base-lib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCCDex%2Fjcc-android-base-lib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270329116,"owners_count":24565771,"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","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["android","blockchain","ethereum","jccdex","jingtum","moac","wallet-operation"],"created_at":"2024-12-15T05:17:44.875Z","updated_at":"2025-08-13T22:31:36.909Z","avatar_url":"https://github.com/JCCDex.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD024 --\u003e\n\n# jcc-android-base-lib\n\nAn interface for interacting with the blockchain wallet operation for android.\n\n[![JitPack](https://jitpack.io/v/JCCDex/jcc-android-base-lib.svg)](https://jitpack.io/#JCCDex/jcc-android-base-lib)\n[![Build Status](https://travis-ci.com/JCCDex/jcc-android-base-lib.svg?branch=master)](https://travis-ci.com/JCCDex/jcc-android-base-lib)\n[![codecov](https://codecov.io/gh/JCCDex/jcc-android-base-lib/branch/master/graph/badge.svg)](https://codecov.io/gh/JCCDex/jcc-android-base-lib)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\n## Usage\n\n## Installation\n\nStep 1. Add it in your root build.gradle at the end of repositories:\n\n```groovy\nrepositories {\n    maven { url 'https://jitpack.io' }\n}\n```\n\nStep 2. Add the dependency\n\n```groovy\ndependencies {\n    implementation 'com.github.JCCDex:jcc-android-base-lib:0.1.8'\n}\n```\n\n## API of JingtumWallet\n\nInterface for interacting with the node sdk of jingtum \u0026 jingtum alliance chains. Now supports [SWTC](https://state.jingtum.com/#!/) \u0026 [BIZAIN](https://bizain.net/) chain.\n\nCreate JingtumWallet with Context in your activity.\n\n```java\nprivate JingtumWallet mJingtumWallet;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n    mJingtumWallet = JingtumWallet.getInstance();\n    mJingtumWallet.init(this);\n}\n```\n\n### createWallet\n\n```java\nString chain = JingtumWallet.SWTC_CHAIN;\n// String chain = JingtumWallet.BIZAIN_CHAIN;\n\nmJingtumWallet.createWallet(chain, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if create wallet successfully\n    }\n});\n```\n\n### importSecret\n\n```java\nString secret = \"\";\n\nString chain = JingtumWallet.SWTC_CHAIN;\n// String chain = JingtumWallet.BIZAIN_CHAIN;\n\nmJingtumWallet.importSecret(secret, chain, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import secret successfully\n    }\n});\n```\n\n### isValidAddress\n\n```java\nString address = \"\";\n\nString chain = JingtumWallet.SWTC_CHAIN;\n// String chain = JingtumWallet.BIZAIN_CHAIN;\n\nmJingtumWallet.isValidAddress(address, chain, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the address is valid\n    }\n});\n```\n\n### isValidSecret\n\n```java\nString secret = \"\";\n\nString chain = JingtumWallet.SWTC_CHAIN;\n// String chain = JingtumWallet.BIZAIN_CHAIN;\n\nmJingtumWallet.isValidSecret(secret, chain, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the secret is valid\n    }\n});\n```\n\n### sign\n\n```java\nJSONObject transaction = null;\n\nString secret = \"\";\n\nString chain = JingtumWallet.SWTC_CHAIN;\n// String chain = JingtumWallet.BIZAIN_CHAIN;\n\nmJingtumWallet.sign(transaction, secret, chain, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String signature = jccJson.getString(\"signature\");\n        // the signature is not null if sign successfully\n    }\n});\n```\n\nFor more structure of transaction data, see [jcc_exchange](https://github.com/JCCDex/jcc_exchange/blob/master/src/tx.js).\n\n## API of EthereumWallet\n\nInterface for interacting with the node sdk of web3. Create EthereumWallet with Context in your activity.\n\n```java\nprivate EthereumWallet mEthereumWallet;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n    mEthereumWallet = EthereumWallet.getInstance();\n    mEthereumWallet.init(this);\n    String ethereumNode = \"\";\n    mEthereumWallet.initWeb3Provider(ethereumNode);\n}\n```\n\n### createWallet\n\n```java\nmEthereumWallet.createWallet(new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        String words = jccJson.getString(\"words\");\n        // the secret、address and words is not null if create wallet successfully\n    }\n});\n```\n\n### isValidAddress\n\n```java\nString address = \"\";\n\nmEthereumWallet.isValidAddress(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the address is valid\n    }\n});\n```\n\n### isValidSecret\n\n```java\nString secret = \"\";\n\nmEthereumWallet.isValidSecret(secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the secret is valid\n    }\n});\n```\n\n### importSecret\n\n```java\nString secret = \"\";\n\nmEthereumWallet.importSecret(secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import secret successfully\n    }\n});\n```\n\n### importWords\n\n```java\nString words = \"\";\n\nmEthereumWallet.importWords(words, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import words successfully\n    }\n});\n```\n\n### toIban\n\n```java\nString address = \"\";\n\nmEthereumWallet.toIban(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String iban = json.getString(\"iban\");\n        // the iban is not null if the address is valid\n    }\n});\n```\n\n### fromIban\n\n```java\nString iban = \"\";\n\nmEthereumWallet.fromIban(iban, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String address = json.getString(\"address\");\n        // the address is not null if the iban is valid\n    }\n});\n```\n\n### sign\n\nOnly support eth except erc20 for now.\n\n```java\nJSONObject transaction = new JSONObject();\n\ntransaction.put(\"from\", \"\");\ntransaction.put(\"value\", \"\");\ntransaction.put(\"to\", \"\");\ntransaction.put(\"gas\", \"\");\ntransaction.put(\"gasPrice\", \"\");\n\nString secret = \"\";\n\nmEthereumWallet.sign(transaction, secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String rawTransaction = json.getString(\"rawTransaction\");\n        // the rawTransaction is not null if sign successfully\n    }\n});\n```\n\n### sendSignedTransaction\n\n```java\nString rawTransaction = \"\";\n\nmEthereumWallet.sendSignedTransaction(rawTransaction, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String hash = json.getString(\"hash\");\n        // the hash is not null if the send successfully.\n    }\n});\n```\n\n### gasPrice\n\n```java\n\nmEthereumWallet.gasPrice(new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String gas = json.getString(\"gasPrice\");\n        // the gas is not null if request gas price successfully.\n    }\n});\n```\n\n### getBalance\n\n```java\nString address = \"\";\n\nmEthereumWallet.getBalance(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String balance = json.getString(\"balance\");\n        // the balance is not null if request balance successfully.\n    }\n});\n```\n\n## API of MoacWallet\n\nInterface for interacting with the node sdk of chain3. Create MoacWallet with Context in your activity.\n\n```java\nprivate MoacWallet mMoacWallet;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n    mMoacWallet = MoacWallet.getInstance();\n    mMoacWallet.init(this);\n    String moacNode = \"\";\n    mMoacWallet.initChain3Provider(moacNode);\n}\n```\n\n### createWallet\n\n```java\nmMoacWallet.createWallet(new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        String words = jccJson.getString(\"words\");\n        // the secret、address and words is not null if create wallet successfully\n    }\n});\n```\n\n### isValidAddress\n\n```java\nString address = \"\";\n\nmMoacWallet.isValidAddress(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the address is valid\n    }\n});\n```\n\n### isValidSecret\n\n```java\nString secret = \"\";\n\nmMoacWallet.isValidSecret(secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        Boolean isValid = jccJson.getBoolean(\"isValid\");\n        // the isValid is true if the secret is valid\n    }\n});\n```\n\n### importSecret\n\n```java\nString secret = \"\";\n\nmMoacWallet.importSecret(secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import secret successfully\n    }\n});\n```\n\n### importWords\n\n```java\nString words = \"\";\n\nmMoacWallet.importWords(words, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import words successfully\n    }\n});\n```\n\n### toIban\n\n```java\nString address = \"\";\n\nmMoacWallet.toIban(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String iban = json.getString(\"iban\");\n        // the iban is not null if the address is valid\n    }\n});\n```\n\n### fromIban\n\n```java\nString iban = \"\";\n\nmMoacWallet.fromIban(iban, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String address = json.getString(\"address\");\n        // the address is not null if the iban is valid\n    }\n});\n```\n\n### sign\n\nOnly support moac except erc20 for now.\n\n```java\nJSONObject transaction = new JSONObject();\n\ntransaction.put(\"from\", \"\");\ntransaction.put(\"value\", \"\");\ntransaction.put(\"to\", \"\");\ntransaction.put(\"gas\", \"\");\ntransaction.put(\"gasPrice\", \"\");\n\nString secret = \"\";\n\nmMoacWallet.sign(transaction, secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String rawTransaction = json.getString(\"rawTransaction\");\n        // the rawTransaction is not null if sign successfully\n    }\n});\n```\n\n### sendSignedTransaction\n\n```java\nString rawTransaction = \"\";\n\nmMoacWallet.sendSignedTransaction(rawTransaction, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String hash = json.getString(\"hash\");\n        // the hash is not null if the send successfully.\n    }\n});\n```\n\n### gasPrice\n\n```java\n\nmMoacWallet.gasPrice(new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String gas = json.getString(\"gasPrice\");\n        // the gas is not null if request gas price successfully.\n    }\n});\n```\n\n### getBalance\n\n```java\nString address = \"\";\n\nmMoacWallet.getBalance(address, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String balance = json.getString(\"balance\");\n        // the balance is not null if request balance successfully.\n    }\n});\n```\n\n## API of EosWallet\n\nInterface for interacting with the node sdk of eos. Create EosWallet with Context in your activity.\n\n```java\nprivate EosWallet mEosWallet;\n\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.activity_main);\n    mEosWallet = EosWallet.getInstance();\n    mEosWallet.init(this);\n    String eosChainId = \"\";\n    String eosHttpEndpoint = \"\";\n    mEosWallet.initEosProvider(eosChainId, eosHttpEndpoint);\n}\n```\n\n### importSecret\n\n```java\nString secret = \"\";\n\nmEosWallet.importSecret(secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String secret = jccJson.getString(\"secret\");\n        String address = jccJson.getString(\"address\");\n        // the secret and address is not null if import secret successfully\n    }\n});\n```\n\n### sendTransaction\n\n```java\nJSONObject transaction = new JSONObject();\n\ntransaction.put(\"contract\", \"\");\ntransaction.put(\"from\", \"\");\ntransaction.put(\"value\", \"\");\ntransaction.put(\"to\", \"\");\ntransaction.put(\"memo\", \"\");\n\nString secret = \"\";\n\nmEosWallet.sendTransaction(transaction, secret, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String hash = json.getString(\"hash\");\n        // the hash is not null if the send successfully.\n    }\n});\n```\n\n### getBalance\n\n```java\nString account = \"\";\n\nmEosWallet.getBalance(account, new JCallback() {\n    @Override\n    public void completion(JCCJson jccJson) {\n        String balance = json.getString(\"balance\");\n        // the balance is not null if request balance successfully.\n    }\n});\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjccdex%2Fjcc-android-base-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjccdex%2Fjcc-android-base-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjccdex%2Fjcc-android-base-lib/lists"}