T
T
Tokensoft
Search…
Use Cases

User Whitelisting

Trading venues, such as an ATS, face two challenges when supporting digital asset securities.
First, they have their own AML/KYC compliance programs for their users, so investors buying or selling ERC-1404 digital asset securities might need to submit duplicate AML/KYC information to both the issuer and the ATS, creating a redundant and unnecessarily slow compliance process.
Second, they need to ensure that any on-chain compliance restrictions do not cause trade settlement to fail unexpectedly, so they might need to monitor every security token contract.
Tokensoft’s API solves these problems through the following:
  • The API enables approved ATS partners to collaborate with TTA on investor compliance and on-chain whitelisting.
  • Issuers can ensure that all transfers meet their compliance requirements,
  • An ATS can avoid on-chain token contract management allowing investors to access secondary liquidity for ERC-1404 tokens easily.
ATS partners can use these API endpoints to request on-chain whitelisting of an investor so that they are certain secondary transactions will settle as-expected.
The API collects kyc information about the user as detailed in the example
GraphQL
TypeScript
1
mutation {
2
whitelistUser(email:"[email protected]", ethAddress:"0x00192fb10df ... 3cd1bf599e8", kyc: {
3
firstName:"john",
4
lastName:"doe",
5
address: {
6
streetAddress:"123 abc street",
7
city:"San Francisco",
8
state:"CA",
9
zip:"94000",
10
country:"US"
11
}
12
})
13
}
Copied!
1
// using the tokensoft sdk
2
const transactionHash = await sdk.authorizeUser(
3
'[email protected]',
4
'0x00192fb10df ... 3cd1bf599e8',
5
{
6
firstName:"john",
7
lastName:"doe",
8
address: {
9
streetAddress:"123 abc street",
10
city:"San Francisco",
11
state:"CA",
12
zip:"94000",
13
country:"US"
14
}
15
}
16
)
Copied!
The mutation returns the hash of the add-to-whitelist transaction.
If an error occurred, the mutation returns null. (Note: in a future release, an error message and code will be provided)

Token Pricing

Token price feed providers can query the current or historical price of a token supported by Tokensoft.
GraphQL
Bash
1
// Query current price
2
query getLatestPrice {
3
getLatestPrice(symbol: "TSFT")
4
}
5
6
// Query historical prices.
7
query getTimestampPrice {
8
getTimestampPrice(symbol: "usdt", IsoTimestamp:"2020-06-20T03:54:32") {
9
arcaPrice
10
usdcPrice
11
}
12
}
Copied!
1
curl -i -H 'Content-Type: application/json' -X POST -d '{"query": "query {getLatestSupply(product: \"Wrapped ZEC (WZEC)\") {totalSupply, circulatingSupply, dateTime}}"}' https://portal.wrapped.com/graphql
Copied!

Token Supply

The supply of a Token can be queried with the getSupply and getLatestSupply endpoints. The total supply is the total amount of tokens minted. The circulating supply is the total supply excluding tokens held in reserve accounts.
GraphQL
1
query {
2
getLatestSupply(product: "INX") {
3
totalSupply
4
circulatingSupply
5
}
6
}
7
8
query {
9
getSupply(product:"INX", start: "2019-01-01T00:00:00.000Z", end: "2021-10-21T17:51:44.265Z") {
10
totalSupply,
11
circulatingSupply,
12
dateTime
13
}
14
}
15
Copied!

KYC Check Status

This is a Platform Specific API Endpoint to allow querying the status of a user's KYC check.
The calling account must be authorized to view KYC status on the user being requested.
Results are shown in a breakdown and subBreakdowns arrays that details which specific checks passed or failed.
1
query{
2
getKycCheck(id: "CHECK_ID"){
3
id,
4
reports{
5
id
6
createdAt,
7
breakdown{
8
name
9
result
10
properties {
11
key
12
value
13
}
14
subBreakDowns{
15
name
16
result
17
properties{
18
key
19
value
20
}
21
}
22
}
23
}
24
}
25
}
26
27
result:
28
29
{
30
"data": {
31
"getKycCheck": {
32
"id": "ids321",
33
"reports": [
34
{
35
"breakdown": [
36
{
37
"name": "date_of_birth",
38
"properties": [],
39
"result": "unidentified",
40
"subBreakDowns": [
41
{
42
"name": "date_of_birth_matched",
43
"properties": [],
44
"result": null
45
}
46
]
47
},
48
{
49
"name": "address",
50
"properties": [],
51
"result": "clear",
52
"subBreakDowns": [
53
{
54
"name": "address_matched",
55
"properties": [
56
{
57
"key": "sources",
58
"value": "Credit Agencies"
59
}
60
],
61
"result": "clear"
62
}
63
]
64
}
65
],
66
"createdAt": "2019-11-07T18:03:40Z",
67
"id": "ids123"
68
}
69
]
70
}
71
}
72
}
73
Copied!
Last modified 3mo ago