I’ve been using your tools to create, issue, and verify certificates on the testnet blockchain and was hoping to import these certificates to the Blockcert iOS wallet.

When trying to add myself as an issuer, the app asks for and Issuer URL and a One-time code. What url is the Issuer URL referring to? And how is this this one-time code generated/used to identify the recipient?

Additionally, since the wallet has it’s own address and users can’t sign into existing addresses, does this mean the wallet can only display certificates on the mainnet blockchain, and not testnet?

Note that if you are already successfully verifying Blockcerts, then, you would have had to generate this issuer profile already (since that’s looked up during verification).

But first I should back up and provide more context:

The issuer adding process is used to “introduce” a recipient to an issuer. The full flow looks like this:

It’s assumed that the issuer already has a way of identifying recipients, e.g. their email address. In this case, the issuer would email the recipient letting them know to add the issuer in their Blockcerts wallet. At this time, the issuer can (optionally) provide a nonce that the recipient would use during this introduction. (This is equivalent to a one-time link for resetting a password).

During the introduction phase, the recipient’s wallet is sending the next public Bitcoin address in the wallet’s key chain, so if you are using wallets for this purpose, note that you’d need to host that endpoint. If provided, that endpoint would be specified in the issuer profile field introductionURL (also in the issuer profile schema).

This “collecting addresses” functionality is not part of the supported open-source because the desired implementation choices vary wildly across issuers, but you can experiment with this via a sample docker service. It is not part of the standard installation, but these configuration options are described in the cert-viewer README

So the effort increases if you actually want to be an issuer and allow recipients to introduce themselves to you through the wallet, because you have to actually host a service to collect the recipient addresses. But the expected interface is pretty simple, and defined in the issuer profile schema above.