# Cert-issuer: error on base58 decode when issuing certificate

**URL:** <https://community.blockcerts.org/t/cert-issuer-error-on-base58-decode-when-issuing-certificate/145>\
**Category:** Support\
**Created:** [June 6, 2017, 2:42am UTC](https://community.blockcerts.org/t/cert-issuer-error-on-base58-decode-when-issuing-certificate/145 "2017-06-06T02:42:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![caveja](https://avatars.discourse-cdn.com/v4/letter/c/13edae/32.png) [@caveja](https://community.blockcerts.org/u/caveja)\
**Post date:** [June 6, 2017, 2:42am UTC](https://community.blockcerts.org/t/cert-issuer-error-on-base58-decode-when-issuing-certificate/145/1 "2017-06-06T02:42:55Z")

</div>

Hi,

I’m getting an error when following the quick steps on the cert-issuer README.  
Specifically on the command cert-issuer -c /etc/cert-issuer/conf.ini

> ```
> bash-4.3# cert-issuer -c /etc/cert-issuer/conf.ini
> WARNING:root:Your app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
> INFO:root:Processing 1 certificates
> INFO - Processing 1 certificates
> INFO:root:Processing 1 certificates under work path=/etc/cert-issuer/work
> INFO - Processing 1 certificates under work path=/etc/cert-issuer/work
> INFO:root:Signing certificates...
> INFO - Signing certificates...
> INFO:root:Set cost constants to recommended_tx_fee=0.000600,min_per_output=0.000028,satoshi_per_byte=250
> INFO - Set cost constants to recommended_tx_fee=0.000600,min_per_output=0.000028,satoshi_per_byte=250
> INFO:root:Total cost will be 106750 satoshis
> INFO - Total cost will be 106750 satoshis
> INFO:root:Preparing certificate batch
> INFO - Preparing certificate batch
> INFO:root:Signing certificates
> INFO - Signing certificates
> INFO:root:Starting finalizable transaction signer
> INFO - Starting finalizable transaction signer
> WARNING:root:app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
> WARNING - app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
> INFO:root:Stopping finalizable transaction signer
> INFO - Stopping finalizable transaction signer
> WARNING:root:app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
> WARNING - app is configured to skip the wifi check when the USB is plugged in. Read the documentation to ensure this is what you want, since this is less secure
> INFO:root:Preparing certificate batch
> INFO - Preparing certificate batch
> INFO:root:Issuing the certificates on the blockchain
> INFO - Issuing the certificates on the blockchain
> Traceback (most recent call last):
> File "/usr/bin/cert-issuer", line 11, in <module>
> load_entry_point('cert-issuer==2.0b5', 'console_scripts', 'cert-issuer')()
> File "/usr/lib/python3.5/site-packages/cert_issuer/ __main__.py", line 17, in cert_issuer_main
> issue_certificates.main(parsed_config)
> File "/usr/lib/python3.5/site-packages/cert_issuer/issue_certificates.py", line 72, in main
> tx_id = issuer.issue_certificates()
> File "/usr/lib/python3.5/site-packages/cert_issuer/issuer.py", line 132, in issue_certificates
> tx_id = self.issue_on_blockchain()
> File "/usr/lib/python3.5/site-packages/cert_issuer/issuer.py", line 69, in issue_on_blockchain
> tx = self.transaction_handler.create_transaction(inputs, op_return_value_bytes)
> File "/usr/lib/python3.5/site-packages/cert_issuer/transaction_handler.py", line 45, in create_transaction
> self.tx_cost_constants.get_minimum_output_coin()))
> File "/usr/lib/python3.5/site-packages/cert_issuer/tx_utils.py", line 105, in create_transaction_output
> bitcoin_address = CBitcoinAddress(address)
> File "/usr/lib/python3.5/site-packages/bitcoin/base58.py", line 105, in __new__
> k = decode(s)
> File "/usr/lib/python3.5/site-packages/bitcoin/base58.py", line 77, in decode
> raise InvalidBase58Error('Character %r is not a valid base58 character' % c)
> bitcoin.base58.InvalidBase58Error: Character '<' is not a valid base58 character
> 
> ```

I opened the file “base58.py” and found the following string:  
b58\_digits = ‘123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz’

My assumption is that the code looks for each hash character in the array and fails to find one of them.  
I noticed there’s no “0” character in the string, but there is a “0” in the hash values from the following commands:

bitcoin-cli generate 101  
bitcoin-cli getbalance  
bitcoin-cli sendtoaddress $issuer 5

Could this be the reason for the above stated error? If so, could you please provide further debug steps?

---

<div class="post-metadata">

**Author:** ![kim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.blockcerts.org/kim/32/307_2.png) [@kim](https://community.blockcerts.org/u/kim)\
**Post date:** [June 7, 2017, 2:56am UTC](https://community.blockcerts.org/t/cert-issuer-error-on-base58-decode-when-issuing-certificate/145/2 "2017-06-07T02:56:00Z")

</div>

Hi!  
It looks like there is a problem with the issuer address. Can you check the value of $issuer? It should also be in your conf.ini file.

Thanks,  
Kim
