For SDI Issuers

Terms

SDI - Swisstronik Digital Identity.

Issuer - An organization, business, or government entity that conducts user and business checks and issues verifications based on those checks.

Verifier - Generally, an organization that requires verification of certain conditions for the user to engage, transact, or provide services. Currently, for simplicity, we consider this a smart contract on the Swisstronik blockchain network that interacts with the x/compliance module.

Operator - An entity that can verify that the Issuer is legitimate and trustworthy.

Main Operator - The first and only operator authorized to create other operators. Cannot be deleted.

Regular Operators - All operators except the Main Operator.

x/compliance module - A part of SDI integrated into the Swisstronik Blockchain. It is a decentralized storage of verifications made by Issuers and provides this data to Verifiers for user verification.

Verification - An entry in the Swisstronik blockchain, created and verified by the Issuer, which is the result of a specific user verification.

User - An individual or a company that has a blockchain address and needs to use services or products.

Interaction Steps

  1. Deploy Smart Contract - The issuer deploys a smart contract that will interact with the x/compliance module;

  2. Create an Issuer - The Issuer is registered in the x/compliance module. This operation is available to anyone;

  3. Verify Your Issuer - The Operator verifies the registered Issuer by interacting with the x/compliance module, marking the address of the smart contract created by the Issuer as verified, ensuring that the address is associated with the company and that the company is legitimate;

  4. Issue Verifications for Your Users - The authorized Issuer uploads verifications to the Swisstronik Blockchain via its designated smart contract.

You can create the necessary SDI entities using CLI transaction commands.

Additionally, you can always get information regarding the SDI entities by running CLI query commands.

Deploy a Smart Contract

The issuer must deploy a smart contract to interact with the x/compliance module.

An example of such a smart contract is shown below:

Create an Issuer

There are a few CLI commands intended to manage issuers. You can create, modify, or delete an issuer.

Verify your issuer

After you have deployed a smart contract and created an issuer using the CLI, the issuer needs to be verified. To do this, please contact us through the validators, on Discord, or by emailing [email protected]. Authorized operators will verify your issuer. You can check the status of your issuer by using the get-issuer-details CLI command.

Issue Verifications for Your Users

After verification of the issuer by an authorized operator, the issuer can start uploading verifications using its designated smart contract.

CLI Commands Access Table

Here is a list of CLI commands with access permissions for different entities:

Command
Main Operator
Regular Operator
Issuer
All the rest

Any query command

Yes

Yes

Yes

Yes

add-operator

Yes

Yes

No

No

remove-operator

Yes, except removing Main Operator

Yes, except removing itself and Main Operator

No

No

create-issuer

Yes

Yes

Yes

Yes

update-issuer-details

Yes

Yes

Issuer creator only

Issuer creator only

remove-issuer

Yes

Yes

Issuer creator only

Issuer creator only

set-issuer-status

Yes

Yes

No

No

CLI transaction commands

Creating Issuer

To create an issuer, you need to use the create-issuer command:

Where:

  • issuer-address: Issuer address in the Swisstronik Network.

  • name: Name of the issuer.

  • description: Short description of the issuer.

  • url: Issuer's website link.

  • logo-url: Issuer's logo link.

  • legal-entity: Legal entity of the issuer.

  • flags: Additional flags. You need to specify at least --from and --fees flags for the command.

Modifying Issuer's data

To modify the data for the issuer, use the following command:

Parameters:

  • issuer-address: Issuer address in the Swisstronik Network.

  • name: Name of the issuer.

  • description: Short description of the issuer.

  • url: Issuer's website link.

  • logo-url: Issuer's logo link.

  • legal-entity: Legal entity of the issuer.

  • flags: Additional flags. You need to specify at least --from and --fees flags for the command.

Deleting Issuer

To remove an issuer, use the following command:

Where:

  • issuer-address: Issuer address in the Swisstronik Network.

  • flags: Additional flags. You need to specify at least --from and --fees flags for the command.

Please note that only Operators are able to delete Issuers. See the Access Table for reference.

Setting Issuer's verification status

To set issuer's verification status, use the following command:

Where:

  • issuer-address: Issuer address in the Swisstronik Network.

  • verification-status: Boolean indicator of whether the Issuer associated with the address was verified by the Operator. Possible values: true/false.

  • flags: Additional flags. You need to specify at least --from and --fees flags for the command.

Creating Operator

To create an operator, you should use the following command:

  • operator-address: The operator's address in the Swisstronik Network in bech32 or hex format;

  • flags: Additional flags. You need to specify at least the --from and --fees flags for the command.

Please note that to add the operator, the transaction must be signed with the operator's private key, see the Access Table for reference.

Deleting Operator

To delete an operator, you should use the following command:

  • operator-address: The operator's address in the Swisstronik Network.

  • flags: Additional flags. You need to specify at least the --from and --fees flags for the command.

Please note that to delete the operator, just as with creating an operator, the transaction must be signed with the operator's private key. See the Access Table for reference.

CLI query commands

Getting Operator Details

To get information about an operator, use the following command:

Where:

  • operator-address: The operator's address in the Swisstronik Network in Bech32 or hex format.

  • flags: Additional flags.

You will receive output like this:

Possible values for the operator_type:

  • OT_INITIAL: The main operator, cannot be deleted;

  • OT_REGULAR: Regular operator;

  • OT_UNSPECIFIED: The address is not associated with any operator.

Getting Issuer Details

To get information about an issuer, use the following command:

Where:

  • issuer-address: The issuer's address in the Swisstronik Network in Bech32 or hex format.

  • flags: Additional flags.

You will receive output like this:

Getting All Issuers Details

To get information about all the issuers, use the following:

  • flags: Additional optional flags.

You will receive output like this:

Getting Verification Details

To get information about a Verification, use the following command:

Where:

  • verification-id: The issuer's address in the Swisstronik Network in Bech32 or hex format.

  • flags: Additional flags.

You will receive output like this:

  • expiration_timestamp - The validity period for the Verification in UNIX time format. 0 means the validity period is forever.

  • issuance_timestamp - The time when the Verification was created, in UNIX time format.

  • issuer_address - The address of the Issuer that issued the verification.

  • issuer_verification_id - The internal ID of the Verification on the Issuer's side.

  • origin_chain - The blockchain network on which the Verification was issued.

  • original_data - The field that contains all the data related to the Verification.

  • schema - The method describing how to parse the original_data field.

  • verificationID - The Verification ID of the x/compliance module.

Possible values for the type :

  • VT_UNSPECIFIED - Defines an invalid/undefined verification type.

  • VT_KYC - Know Your Customer

  • VT_KYB - Know Your Business

  • VT_KYW - Know Your Wallet

  • VT_HUMANITY - Check humanity

  • VT_AML - Anti Money Laundering (check transactions)

  • VT_ADDRESS - Verification of Address

  • VT_CUSTOM - Custom Verification

  • VT_CREDIT_SCORE - Verification of Credit Score

Getting Verifications Details

To get information about all Verifications, use the command:

Where [flags] are optional.

The command returns the sequence of Verifications in the same format as for the get-verification-details command. You can apply pagination by using the --limit, --offset, --page, and --page-key flags."

Getting Address details

To get information associated with the provided address use the command:

Where [flags] are optional.

Getting Addresses details

To get information about all the Addresses, use the command:

You will receive output like this:

  • is_revoked - Boolean indicating if the address was revoked.

  • is_verified - Boolean indicator of whether the Issuer associated with the address was verified by the Operator.

  • verifications - Array of Verifications associated with the address. Please see the "Getting Verification Details" section for the description of the fields.

Last updated