Project type: Decentralised Identity

LDID Protocol | RNSRNSMoreSearchCtrl + K* Welcome to RNS!
+ Utility of RNS
+ RNS Privacy Policy
+ Height and Weight Guide
+ RNS Astronaut Program 🧑‍🚀
Powered by GitBook this page* Overview
* Step 1 -- Get NFTs
* Step 2 -- Get NFT Properties
* Step 3 -- Call L1 API
* Step 4 -- Get Photo
RNS LDID protocol consists of the RNS registry hosted at a smart contract (LDID) in a person's wallet, and a validator looking to validate an LDID.
RNS LDID allows authenticates to verify identities and ensure compliance in seconds with RNS API. Our ID verification API reduces churn by streamlining the minutes-long KYC process to a single click.
It’s designed to be simple and secure for integration with exchanges and banks.
1. Lookup LDID internal ID by docid, internal_guid or wallet. See [ with tag `kyc`
2. Call /api/v2/kyc/l1/{internal_guid}/ for L1 verification as an authenticated user
3. Check the output to see if ID is validated
This online verification service, for the purpose of verifying the identity of an individual, employs KYC process that may include, but are not limited to the following:
a. Provider shall verify the identity information provided by the User, such as name, date of birth, date of expiration of identity documents etc.
b. Provider shall verify the authenticity of the User's government-issued identity document.
1. **Known Face Search**
Provider shall compare the User's face to a database of known faces to detect and prevent criminals and terrorists.
Determination of a natural person's presence or non-presence on global sanctions lists, PEP lists, watchlists, blacklists, or adverse media (OFAC, UN, HMT, EU, DFT, etc).
2. **Ongoing AML Monitoring**
Daily re-check of the customer database against AML watchlists (sanctions, PEPs, adverse media, etc).
Daily re-check of the validity of identity documents previously submitted by a given user, based on their expiry date. This includes sending automated requests for replacements if documents expire. Once Document Monitoring is initiated, ongoing monitoring is included for ten years.
Swagger < filter to KYC APIs.
### Step 1 -- Get NFTs
Use web3 apis to get nfts in a wallet. The call below uses chainbase for testnet. ID 0x33 or 51 is the latest in that wallet ***0xDdbaB36b99D852e8F03727D9f62a83658Fa2C2bB***
1 curl -X GET ' \
2 -H 'X-API-KEY: key ' \
3 -H 'Content-Type: application/json'
2 "code": 0,
3 "message": "ok",
4 "data": [
5 {
6 "contract_address": "0xa983e239235a65e13fa47d32e85a7fb9bb215d7f",
7 "erc_type": "ERC721",
8 "image_uri": "",
9 "metadata": null,
10 "mint_time": "0001-01-01T00:00:00Z",
11 "mint_transaction_hash": "",
12 "name": "RNS ID",
13 "owner": "0xDdbaB36b99D852e8F03727D9f62a83658Fa2C2bB",
14 "symbol": "RNSId",
15 "token_id": "0x33",
16 "token_uri": "",
17 "total": 1,
18 "total_string": "1",
19 "traits": null
20 },
21 {
22 "contract_address": "0xa983e239235a65e13fa47d32e85a7fb9bb215d7f",
23 "erc_type": "ERC721",
24 "image_uri": "",
25. "metadata": null,
26 "mint_time": "0001-01-01T00:00:00Z",
27 "mint_transaction_hash": "",
28 "name": "RNS ID",
29 "owner": "0xDdbaB36b99D852e8F03727D9f62a83658Fa2C2bB",
30 "symbol": "RNSId",
31 "token_id": "0x32",
32 "token_uri": "",
33 "total": 1,
34 "total_string": "1",
35 "traits": null
36 },
37 {
38 "contract_address": "0xa983e239235a65e13fa47d32e85a7fb9bb215d7f",
39 "erc_type": "ERC721",
40 "image_uri": "",
41 "metadata": null,
42 "mint_time": "0001-01-01T00:00:00Z",
43 "mint_transaction_hash": "",
44 "name": "RNS ID",
45 "owner": "0xDdbaB36b99D852e8F03727D9f62a83658Fa2C2bB",
46 "symbol": "RNSId",
47 "token_id": "0x31",
48 "token_uri": "",
49 "total": 1,
50 "total_string": "1",
51 "traits": null
52 }
54 "count": 3
### Step 2 -- Get NFT Properties
1 curl | jq
2 "name": "RNS ID CYO6681H",
3 "description": "RNS ID CYO6681H for Ukraine",
4 "image": "",
5 "animation_url": "",
6 "attributes": [
7 {
8 "trait_type": "Internal ID",
9 "value": "92acac98-283e-4eab-93b0-08ca5399586c"
10 },
11 {
12 "trait_type": "Valid",
13 "value": "True"
14 },
15 {
16 "trait_type": "Issued",
17 "value": 1573430400,
18 "display_type": "date"
19 },
20 {
21 "trait_type": "Expires",
22 "value": 1731283200,
23 "display_type": "date"
24 },
25 {
26 "trait_type": "Jurisdiction",
27 "value": "UKRAINE"
28 },
29 {
30 "trait_type": "ID Type",
31 "value": "Passport"
32 },
33 {
34 "trait_type": "Gender",
35 "value": "M"
36 },
37 {
38 "trait_type": "Age Over 21",
39 "value": "True"
40 },
41 {
42 "trait_type": "Age Over 18",
43 "value": "True"
44 },
45 {
46 "trait_type": "Photo Hash",
47 "value": "None"
48 },
49 {
50 "trait_type": "RNS ID Number",
51 "value": "CYO6681H"
52 }
53 ],
54 "internal_id": "92acac98-283e-4eab-93b0-08ca5399586c",
55 "valid": true,
56 "issued": "2019-11-11 00:00:00+00:00",
57 "expires": "2024-11-11 00:00:00+00:00",
58 "jurisdiction": "UKRAINE",
59 "id_type": "Passport",
60 "gender": "M",
61 "age_over_21": true,
62 "age_over_18": true,
63 "photo_hash": "None",
64 "idnumber": "CYO6681H"
### Step 3 -- Call L1 API
1 curl \
2 -H 'Authorization: bearer api:37fbd00bf3875d9c6f904ce291de28a96e74a12be3acaa0a9bbb57273d69b778' \
3 -H 'Content-Type: application/json'
2 "status": {
3 "code": 200,
4 "message": ""
5 },
6 "data": {
7 "has_id": true,
8 "internal_id": "903076ce-3d48-426b-b297-246c031e9477",
9 "valid": true,
10 "expiration_date": "2028-01-11 00:00:00+00:00",
11 "jurisdiction": "Palau",
12 "rns_id": "CGB9933C",
13 "id_type": "ID",
14 "gender": "M",
15 "first_name": "FNAME",
16 "last_name": "LNAME",
17 "issue_date": "2023-01-11 00:00:00+00:00",
18 "birth_date": "1970-01-01",
19 "under_sanctions": false,
20 "url_photo": ""
21 }
### Step 4 -- Get Photo
1 curl \
2 -H 'Authorization: bearer api:37fbd00bf3875d9c6f904ce291de28a96e74a12be3acaa0a9bbb57273d69b778' \
3 -o photo.jpg
429 Server Busy - Try again
PreviousRNS Privacy PolicyNextApplication ProcessLast updated 7 months ago