For SDI Issuers
Last updated
Last updated
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.
- The issuer deploys a smart contract that will interact with the x/compliance module;
- The Issuer is registered in the x/compliance module. This operation is available to anyone;
- 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;
- The authorized Issuer uploads verifications to the Swisstronik Blockchain via its designated smart contract.
You can create the necessary SDI entities using .
The issuer must deploy a smart contract to interact with the x/compliance module.
An example of such a smart contract is shown below:
After verification of the issuer by an authorized operator, the issuer can start uploading verifications using its designated smart contract.
Here is a list of CLI commands with access permissions for different entities:
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
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.
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.
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.
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.
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.
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.
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.
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:
To get information about all the issuers, use the following:
flags
: Additional optional flags.
You will receive output like this:
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
To get information about all Verifications, use the command:
Where [flags]
are optional.
To get information associated with the provided address use the command:
Where [flags]
are optional.
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.
Additionally, you can always get information regarding the SDI entities by running .
There are a few CLI commands intended to manage issuers. You can , , or an 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 . Authorized operators will verify your issuer. You can check the status of your issuer by using the get-issuer-details
CLI command.
Please note that only Operators are able to delete Issuers. See the for reference.
Please note that to add the operator, the transaction must be signed with the operator's private key, see the for reference.
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 for reference.
The command returns the sequence of Verifications in the same format as for the command. You can apply pagination by using the --limit
, --offset
, --page
, and --page-key
flags."
verifications
- Array of Verifications associated with the address. Please see the "" section for the description of the fields.