NAV Navbar

Introduction

Welcome, Squarelink Developer!

Squarelink is the first access tool for blockchain apps and services that enables users to securely recover lost private keys. We'll walk you through integrating Squarelink into your app or DApp so your users can seamlessly interact with the blockchain.

We offer standard OAuth 2.0 "Sign In" integrations along with a REST API for interacting with Squarelink user accounts. We also provide "Sign Tx" integrations to easily request transactions from a user.

Squarelink and the Squarelink API are currently in beta. We will periodically add features, but we don't anticipate any breaking changes to our API. In the event breaking changes are introduced, Squarelink Developers will be notified via email in advance of the change.

Squarelink is a community tool currently offered for free, without warranty.

If you'd like to request features or contribute to the community, please see Community

For any API-related issues or custom needs, please email support@squarelink.com

Getting Started

Before integrating either Sign In or Sign Tx, you must first create an account in the Squarelink Developer Console and register your application.

Once you register your first application, you'll receive a client_id and client_secret. Your client_id is a public value used to identify your application, but remember to keep your client_secret hidden - never insert it into a public application.

Sign In Integration

With the Squarelink Sign In button, you can authenticate your users and access info about their Squarelink accounts in minutes.

Want to see it in action? Check out this example application.

If you have not done so already, please register your app or DApp in the Squarelink Developer Console.

Set Up Your App

Once you've registered your application, you can head to your application's home page in the Developer Console and click on "Sign In." We'll prompt you to add some application-specific information as follows:

After you've set up your app or DApp for OAuth, you can simply copy and paste the auto-generated button code.

Sign In Button

Your button code should look something like this:

<a href="https://app.squarelink.com/authorize?
    client_id={{Your app's client_id}}
    &scope=[{{Comma-separated desired scopes}}]
    &redirect_uri={{One of your whitelisted redirect URIs}}
    &state={{An optional csrf token}}
    &response_type={{'code' or 'token'}}">
    <img src="https://squarelink.com/img/sign-in.svg" width="220"></img>
</a>

Once you've set up your app or DApp for OAuth in the Developer Console, you can integrate the Sign In button in a cinch.

The Sign In button should redirect the user to Squarelink's Authorization Page with the following parameters:

Parameter Required Description
client_id true This is the client_id found on your app's home page in the Developer Console.
scope true This is a comma-separated list of permissions you'd like to request from a user. (See available scopes below).
redirect_uri true This is the URL you'd like us to send the user back to after the user has authorized your app. Make sure it is whitelisted in your app's Sign In settings.
state false This can be any valid CSRF token (randomly generated). We'll return it to you as a URL parameter in the redirect to your application.
response_type true Specifies the OAuth 2.0 grant type. Set to "code" to use the Authorization Code Grant. Set to "token" to use the Implicit Grant. Read Obtain an Access Token for more info.

Once a user has authorized your app or DApp, we'll redirect the user to the redirect URI specified (if whitelisted) with the following parameters:

Parameter Description
state Returned if you passed it in the request.
access_token An access token if you specified the token response_type.
code An authorization code to be used in the second step of the Authorization Code Grant if you specified the code response_type.

A successfully authorized request will redirect back to your redirect URI such as http://localhost:8080/your-redirect-uri?code=xxxxx&state=xxxxx.

If there is an issue with your request, we'll redirect back to your application with the error parameter. For instance, http://localhost:8080/your-redirect-uri?error=description%20of%20the%20problem.

Available Scopes

Parameter Description
user This allows you to view user info such as email, given_name, and family_name.
wallets:read This allows you to read info such as transactions and addresses for all of a user's blockchain accounts.
wallets:read:eth A reduced-scope version of wallets:read limited to Ethereum accounts.
wallets:read:btc A reduced-scope version of wallets:read limited to Bitcoin accounts.
wallets:read:ltc A reduced-scope version of wallets:read limited to Litecoin accounts.

Obtain an Access Token

Authorization Code Grant Request Example

GET https://oauth.squarelink.com/token?
  grant_type=authorization_code
  &client_id=xxxxx
  &client_secret=xxxxx
  &code=xxxxx
  &state=xxxxx

Example Response

{
  "success": true,
  "token_type": "Bearer",
  "expires": 24802104,
  "access_token": "xxx.xxxxxx.xxx",
  "refresh_token": "xxxx"
}

If you are building a Single-Page Application or another frontend-only application, you should use response_type=token in your authorization request. This is to ensure your application's client_secret is never exposed to the public.

In this instance, we will return an access token as a URL parameter called access_token in the redirect back to your application. Now you're set to start using the Squarelink API.

If you've built a standard web application or have a backend that can secure your client_secret, you should use response_type=code in your authorization request.

We will redirect to your application with a URL parameter called code as well as state if you provided it in the response.

You can now exchange code (and state if used) for an access token using Squarelink's OAuth API.

Request Parameters

Parameter Required Description
grant_type true Should be set to authorization_code
client_id true Your application's client_id found in the Developer Console
client_secret true Your application's client_secret found in the Developer Console
code true The authorization code returned to your application in the redirect
state If provided in authorization request The CSRF token originally sent in your authorization redirect

Response Body

Parameter Type Description
success Boolean Indicates if your request was successful
token_type String "Bearer"
expires Number Time from the epoch in seconds, indicates expiry time for access token
access_token String A JSON Web Token you can use to access Squarelink's API
refresh_token String A token you can use to refresh your access token after expiration (See Below)

Refreshing an Access Token

Refresh Grant Request Example

GET https://oauth.squarelink.com/token?
  grant_type=refresh
  &client_id=xxxxx
  &client_secret=xxxxx
  &refresh_token=xxxxx
  &scope=[wallets:read:eth,user]

Example Response

{
  "success": true,
  "token_type": "Bearer",
  "expires": 24802104,
  "access_token": "xxx.xxxxxx.xxx",
  "refresh_token": "xxxx"
}

If you used the Authorization Code Grant method to get authorization from a user, you can refresh the resulting access token to prevent expiry. To do so, you must store the refresh_token received in the original response.

You may specify a new reduced scope as well. This new scope must be limited to scopes authorized in the initial authorization. For instance, if you were initially authorized for only wallets:read:eth, you cannot request wallets:read.

Request Parameters

Parameter Required Description
grant_type true Should be set to refresh
client_id true Your application's client_id found in the Developer Console
client_secret true Your application's client_secret found in the Developer Console
refresh_token true The refresh_token you received when first obtaining an access token
scope (Optional) A new comma-separated list of scopes (must be previously authorized for each)

Response Body

Parameter Type Description
success Boolean Indicates if your request was successful
token_type String "Bearer"
expires Number Time from the epoch in seconds, indicates expiry time for access token
access_token String A JSON Web Token you can use to access Squarelink's API
refresh_token String A token you can use to refresh your access token after expiration

Sign Tx Integration

Rather than building your own custodial wallet or requiring your customers use their own wallet to interact with your DApp, you can simply add Squarelink's "Sign Tx" button directly into your DApp.

Squarelink's "Sign Tx" button allows DApps to request Ethereum, Bitcoin, Litecoin, or other Ethereum-based tokens (i.e. ERC-20s) from Squarelink users.

To get started, you'll need to register one of these tokens or smart contracts with your DApp in the Developer Console.

To see an example, check out this walkthrough for integrating VeChain

Registering Tokens

To register a token, simply navigate to the "Sign Tx" page of your app or DApp in the Developer Console.

We require the following info about the token you'll be using:

After you've created the token, you can navigate to the token settings in the Developer Console and use the following optional settings:

Optional Settings:

Sign Tx Button

Once you've registered your token, you can navigate to your registered token's home page in the Developer Console and click on "Integration Code" to see the HTML button for integrating Sign Tx into your DApp.

On the page for the new token created, you'll see a token_id - you'll need to pass it as a parameter in any transaction requests. It acts similarly to your client_id and allows us to check against any whitelisted addresses you may have.

Depending on the currency and the features you require, there are several optional parameters you can use in your request URL. See Below:

Ethereum

This is an example of an Ethereum request

<a href="https://app.squarelink.com/tx?
    token_id={{Your token ID}}
    &to={{An Ethereum address}}
    &amount={{amount of Ethereum}}
    &gas={{optional gas limit for tx (estimated otherwise)}}
    &description={{optional description for request}}
    &state={{optional value such as an order #}}">
    <img src="https://squarelink.com/img/sign-tx.svg" width="220"></img>
</a>
Parameter Required Description
token_id true This is the token_id found on your registered token's home page in the Developer Console.
to true An Ethereum address to receive the transaction. Must be whitelisted if you set up your token with whitelisted addresses.
amount true Integer amount to be transferred. Smallest divisible amount of ETH. For instance, "1000" = 10e-15 ETH.
gas (Optional) Optional gas limit for transaction. If omitted, we'll estimate it for you.
description (Optional) Description shown to the user in the request.
state (Optional) An optional CSRF token to be returned to your on_success redirect. Will also be returned in a callback if you've set up callbacks.

Bitcoin & Litecoin

This is an example of a Bitcoin request

<a href="https://app.squarelink.com/tx?
    token_id={{Your token ID}}
    &to={{A Bitcoin address}}
    &amount={{amount of Bitcoin}}
    &description={{optional description for request}}
    &state={{optional value such as an order #}}">
    <img src="https://squarelink.com/img/sign-tx.svg" width="220"></img>
</a>
Parameter Required Description
token_id true This is the token_id found on your registered token's home page in the Developer Console
to true A Bitcoin or Litecoin address to receive the transaction. Must be whitelisted if you set up your token with whitelisted addresses.
amount true Integer amount to be transferred. Smallest divisible amount of BTC or LTC. For instance, "1000" = 10e-5 BTC/LTC
description (Optional) Description shown to the user in the request
state (Optional) An optional CSRF token to be returned to your on_success redirect. Will also be returned in a callback if you've set up callbacks.

This is an example of a smart contract or ERC-20 request

<a href="https://app.squarelink.com/tx?
    token_id={{Your token ID}}
    &data={{optional data field for smart contract}}
    &method={{smart contract method name (if no data)}}
    &params=[{{contract input 1}},{{contract input 2}}]
    &gas={{optional gas limit for tx (estimated otherwise)}}
    &description={{optional description for request}}
    &state={{optional value such as an order #}}">
    <img src="https://squarelink.com/img/sign-tx.svg" width="220"></img>
</a>

Smart Contracts & ERC-20 Tokens

For Ethereum Smart Contracts or ERC-20 Tokens, you can request a transfer directly in contract data OR you can specify the method you're calling and the method parameters (in the order they appear in the contract ABI).

Parameter Required Description
token_id true This is the token_id found on your registered token's home page in the Developer Console
method If data not used This the method you are calling in the contract ABI
params If method is used Array of values for the method parameters as they appear in the contract ABI
data If method not used If you want to handle encoding your transaction data, you can pass the data field instead of method and params.
gas (Optional) Optional gas limit for transaction. If omitted, we'll estimate it for you.
description (Optional) Description shown to the user in the request
state (Optional) An optional CSRF token to be returned to your on_success redirect. Will also be returned in a callback if you've set up callbacks.

To request 20 EXAMPLE tokens:

Where EXAMPLE tokens have 18 decimal places.

For the protection of Squarelink users, we require that your contract is verified on Etherscan so we can access the ABI directly, but it's a simple process - verify your contract here. We plan to build support for contract source uploads in the Developer Console so you can verify it directly with Squarelink.

Using Callbacks

Example Callback for ERC-20 (OmiseGo) Token

POST https://your-site.com/callback-url -d
{
  "id": "0x61474003e56d67aba6bf148c5ec361e3a3c1ceea37fe3ace7d87759b399292f9",
  "sub": "u12345abcdef",
  "currency": "ETH",
  "status": "confirmed",
  "from": "0x0a956129b6240784aac01b92a924c14f2e7cf932",
  "to": "0xed19abdc33e91c809376b742d48ed1d935d4faee",
  "value": 0,
  "confirmations": 18,
  "block_number": 124124,
  "block_hash": "fcd88715c95e6082612ab673ae3053d8bbfc51ca0b00aa82974ea4d139010015",
  "action": "sent",
  "decimals": 18,
  "date": 12421524,
  "token_symbol": "OMG",
  "token_decimals": 18,
  "token_name": "OmiseGo",
  "token_value": 200000000000,
  "contract_address": "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07",
  "gas": 84000,
  "gas_price": 200000000000,
  "gas_used": 44840,
  "data": "0xa9059cbb000000000000000000000000ed19abdc33e91c809376b742d48ed1d935d4faef000000000000000000000000000000000000000000000001158e460913d00000",
  "nonce": 1,
  "state": "optionalCSRFToken"
}

Callbacks allow us to send you updates about your users' transactions. This requires that you've set the Webhooks Callback URL in your registered token's settings in the Developer Console.

The data returned in the callback complies with our Transaction Model as defined in the API Reference.

Based on the Confirmation Policy you've set, we'll send a POST request to the specified Callback URL with information about a transaction once it's confirmed.

We will make 5 attempted callbacks, each 10 seconds apart, before we discard a callback request.

Live Examples

HTML for Ethereum example

<a href="https://app.squarelink.com/tx?
    token_id=t00d1c3d094e5bf0eba6ca7846ab88c2a
    &amount=10000000000000000
    &to=0xf40bED2fFEE76B5517Fc992CC798Ece4c55D8F99
    &description=You're about to donate 0.01 Ethereum to Squarelink">
    <img src="https://squarelink.com/img/sign-tx.svg" width="250"></img>
</a>

HTML for OmiseGo example (using method & parameters)

<a href="https://app.squarelink.com/tx?
    token_id=t909cb74a5546fc7961627554ca355b7b
    &method=transfer
    &params=[0xf40bED2fFEE76B5517Fc992CC798Ece4c55D8F99,10000000000000000000]
    &description=You're about to donate 10 OMG to Squarelink.">
    <img src="https://squarelink.com/img/sign-tx.svg" width="250"></img>
</a>





HTML for OmiseGo example (using contract data)

<a href="https://app.squarelink.com/tx?
    token_id=t909cb74a5546fc7961627554ca355b7b
    &data=0xa9059cbb000000000000000000000000f40bed2ffee76b5517fc992cc798ece4c55d8f990000000000000000000000000000000000000000000000008ac7230489e80000
    &description=You're about to donate 10 OMG to Squarelink.">
    <img src="https://squarelink.com/img/sign-tx.svg" width="250"></img>
</a>





HTML for BTC example

<a href="https://app.squarelink.com/tx?
    token_id=t26e6e45d7912d26f46ae9258939e1070
    &amount=1000000
    &to=1E74Fd81NmF8UJmxeafjFUTShvsLjdv9r1
    &description=You're about to donate 0.01 BTC to Squarelink">
    <img src="https://squarelink.com/img/sign-tx.svg" width="250"></img>
</a>




API Reference

By now, you have registered your app or DApp and integrated the Squarelink Sign In button. If you haven't done so already, read how.

For any of the following API Routes, we expect that you have obtained an access token for your user's Squarelink account.

API Endpoint: https://api.squarelink.com

User Info

GET /user

GET /user request example

GET https://api.squarelink.com/user?access_token=xxx.xxxxx.xxx

Example Response

{
  "success": true,
  "id": "uabcdef132345",
  "email": "satoshi@squarelink.com",
  "family_name": "Nakamoto",
  "given_name": "Satoshi",
  "created": 114012480
}

Read a user's Squarelink Account info such as their email, family name, and given name with this route:

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful
id String The user's Squarelink User ID
email String The user's email address
family_name String The user's last name
given_name String The user's first name
created Number When the user's account was created (seconds from the Epoch)

Wallets

GET /wallets request all currencies & ERC-20s

GET https://api.squarelink.com/wallets?
  access_token=xxx.xxxxx.xxx
  &currencies=ETH;BTC;LTC
  &erc20=true

Example Response

{
  "success": true,
  "wallets": [
    {
      "balance": 2130542438999998500,
      "owner": "u12345wabcdef"
      "currency": "ETH",
      "decimals": 18,
      "name": "Ethereum",
      "address": "0x223b22347674da1797120327991d315b22dc1030",
      "created_on": 1539049741
    },
    {
      "owner": "u12345wabcdef",
      "currency": "LTC",
      "decimals": 8,
      "name": "Litecoin",
      "address": "LLTpMYh8iFDrCdWvhQTwUa1vLNEq4hGbTv",
      "created_on": 1539049741,
      "balance": 39020091001
    },
    {
      "balance": 2079775461857,
      "owner": "u12345wabcdef",
      "currency": "BTC",
      "decimals": 8,
      "name": "Bitcoin",
      "address": "1NDyJtNTjmwk5xPNhjgAMu4HDHigtobu1s",
      "created_on": 1539049741,
     }
  ],
  "erc20": [
    {
      "balance": 124800000,
      "decimals": 18,
      "contract_address": "0x595832f8fc6bf59c85c527fec3740a1b7a361269",
      "symbol": "POWR",
      "name": "PowerLedger"
    },
    {
      "balance": 7.900590853137982e+21,
      "decimals": 18,
      "contract_address": "0xd26114cd6ee289accf82350c8d8487fedb8a0c07",
      "symbol": "OMG",
      "name": "OmiseGo"
    }
  ]  
}

GET /wallets

Get a list of a Squarelink user's wallets and public information about those wallets. Optionally, if you're authorized with the wallets:read or wallets:read:eth scopes, you can request a list of active ERC-20 balances for the user as well.

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user
currencies String A semi-colon-separated list of currencies for the wallets you'd like to request. Valid currencies are ETH, BTC, and LTC.
erc20 Boolean Indicate whether you'd like us to return all valid ERC-20 balances. Only available if you're authorized for the wallets:read or wallets:read:eth scopes.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful
wallets Array A list of Wallet Objects
erc20 Array A list of ERC-20 Objects (if you specified erc20 = true)

Wallet Object

Parameter Type Description
owner String The ID of the Squarelink user owning the wallet
currency String The currency of the wallet
balance Float Whole number balance of the wallet, measured in the lowest non-divisible amount of its currency
decimals Integer Number of decimal places the currency uses (i.e. 18 for ETH) for its lowest non-divisible amounts
name String The name of the currency (i.e. "Bitcoin")
address String The public address of the wallet
created_on Integer Date created on Squarelink (number of seconds since the Epoch)

ERC-20 Object

Parameter Type Description
balance Float Whole number amount of ERC-20 tokens held by the user's account (lowest non-divisible amount)
decimals Integer Number of decimal places specified in the currency's contract
contract_address String The contract address of the ERC-20 token
symbol String The token symbol for the ERC-20 token (i.e. POWR for PowerLedger)
name String The ERC-20's name (i.e. PowerLedger)
address String The Squarelink user's Ethereum address holding these tokens

Transactions

GET /txs

GET /txs Example Request (txs for ETH, BTC, LTC, and an ERC-20 token)

GET https://api.squarelink.com/txs?
  access_token=xxx.xxxxx.xxx
  &currencies=ETH;LTC;BTC
  &token_contracts=0xba5f00a28f732f23ba946c594716496ebdc9aef5
  &page=1
  &per_page=4

Response Body

{
  "success": "true",
  "page_count": 23,
  "per_page": 4,
  "page": 1,
  "txs": [
    {
      "currency": "BTC",
      "id": "5ee585d5f7f7be8b056991042e6bf092e2e2a2324e217591124393c1259f0f59",
      "sub": "u12345abcdef",
      "action": "received",
      "block_number": null,
      "confirmations": 0,
      "date": 1539145879,
      "decimals": 8,
      "from": '36yKKUFiKzCoFh5QrHivpJVSYQwYwG6Hms',
      "status": "pending",
      "to": "1NDyJtNTjmwk5xPNhjgAMu4HDHigtobu1s",
      "value": 10000000000
    },
    {
      "currency": "LTC",
      "id": "71f2e39bf9834c9eee7289d435a4f2fd294dc8576934fb91212f536e5ac7bca4",
      "sub": "u12345abcdef",
      "action": "received",
      "block_number": 1498994,
      "confirmations": 7615,
      "date": 1538002833,
      "decimals": 8,
      "from": "LXphMWB3FwvMKXEzjJhGWXMeLzVZfUEcci",
      "status": "confirmed",
      "to": "LLTpMYh8iFDrCdWvhQTwUa1vLNEq4hGbTv",
      "value": 639798772
    },
    {
      "currency": "ETH",
      "id": "0xb3730f2b2af151a0aac5aca15bebb2b0b1fb242ca67c180045ff707e2f386cd0",
      "sub": "u12345abcdef",
      "action": "sent",
      "block_hash":
       "0xa19cce7bf340f866101aa1fb4a2500f168bb11436934128d32b3553fbb9b7abc",
      "block_number": 4854110,
      "confirmations": 1693271,
      "contract_address": null,
      "data": null,
      "date": 1515090524,
      "decimals": 18,
      "from": "0x223b22347674da1797120327991d315b22dc1030",
      "gas": 21000,
      "gas_price": 31000000000,
      "gas_used": 21000,
      "index": 78,
      "nonce": 22,
      "status": "confirmed",
      "to": "0x5700333a342bc21bf400c66ab0685867c4dde332",
      "value": 100000000000000000
    },
    {
      "currency": "ETH",
      "id": "0x8372289b2b811ca6b66797cd28a51af63b5468d57b505643716b0bb82be4387b",
      "sub": "u12345abcdef",
      "action": "received",
      "block_hash": "0x479ee01736fe8db8662fe48ecec923f00d1403daac5e55c6bfeba76d1e5ba18f",
      "block_number": 5860219,
      "confirmations": 687162,
      "contract_address": "0xba5f00a28f732f23ba946c594716496ebdc9aef5",
      "data": "0xa9059cbb000000000000000000000000223b22347674da1797120327991d315b22dc103000000000000000000000000000000000000000000000006d6639464dd6100000",
      "date": 1530057183,
      "decimals": 18,
      "from": "0x00f9252f87531fdb919a686e3e21d006a6304658",
      "gas": 61000,
      "gas_price": 3300000000,
      "gas_used": 53355,
      "index": 52,
      "nonce": 20709,
      "status": "confirmed",
      "to": "0x223b22347674da1797120327991d315b22dc1030",
      "token_decimals": null,
      "token_name": "OmiseGo",
      "token_symbol": "OMG",
      "token_value": 2.0180611e+21,
      "value": 0
    }
  ]
}

You can use this route to list a Squarelink user's transactions by currency, including specific ERC-20 token transactions or all ERC-20 token transactions. Note: All transaction requests are paginated.

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user
currencies String A semi-colon-separated list of currencies for the transactions you'd like to request. Valid currencies are ETH, BTC, and LTC.
token_contracts String A semi-colon-separated list of contract addresses for ERC-20 tokens that you want to request transactions for. Only available if you're authorized for the wallets:read or wallets:read:eth scopes.
all_erc20 Boolean Indicate whether you'd like us to return all ERC-20 transactions for a user. Only available if you're authorized for the wallets:read or wallets:read:eth scopes.
page Number (Default: 1). The page number for the paginated request.
per_page Number (Default: 10) The number of transactions you'd like per page. Max is 20

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful
txs Array An array of Transaction Objects
page_count Number Number of pages available
page Number Current page
per_page Number Results per page

Transaction Object

Our transaction object has a large number of parameters which allows us to ubiquitously collect transactions across multiple blockchains. Please note the fields that are specific to certain blockchains and types of transactions.

Parameter Type Description
currency String ETH, BTC, or LTC (ETH for ERC-20 txs)
id String The transaction hash on the blockchain
sub String The sender or recipient's Squarelink account ID
from String Sending address of the transaction
to String Recipient address of the transaction
value Float Token value sent measured in lowest non-divisible units of the token (ETH for ERC-20 tokens)
action String "sent" or "received"
date Number Datetime the transaction was broadcast. Number of seconds since the epoch.
decimals Number Number of decimals for the base currency (i.e. 18 for ETH, 8 for BTC)
block_number Number The index of the block on the blockchain
confirmations Number Number of times a transaction has been confirmed
status String confirmed, pending, or failed
block_hash String The hash of the block the transaction is found in (unless it is the most recent block) (If ETH transaction)
data String Contract data field (if ETH transaction)
gas Number Gas limit used for the transaction (if ETH transaction)
gas_price Number Gas price in lowest non-divisible amount of Ether (if ETH transaction)
gas_used Number Amount of gas used for the transaction (if ETH transaction)
index Number Index of a transaction in a block (if ETH transaction)
nonce Number Nonce of a transaction for a user's address (if ETH transaction)
contract_address String The contract address of an ERC-20 token (if ERC-20 transaction)
token_decimals Number Decimals specified by the ERC-20 token contract (if ERC-20 transaction)
token_name String Token name specified by the ERC-20 token contract (if ERC-20 transaction)
token_symbol String Token symbol specified by the ERC-20 token contract (if ERC-20 transaction)
token_value Float ERC-20 token value transferred measured in the smallest non-divisible units of the token (if ERC-20 transaction)

Community

Squarelink's Developer tools are community-driven projects for blockchain developers. We are currently in Beta and have not yet open-sourced any core technology. However, we would like to give Squarelink users and developers the opportunity to drive the direction of the project.

In order to request feature modifications or additions, you can either email support@squarelink.com OR you may submit a pull-request on Squarelink's Improvement Proposals repository here. Please read the instructions in the README before submitting a pull request.

Subscribe to our mailing list to receive updates on the project

Bugs

We do not currently have an established bug bounty program. However, if you spot any bugs, please email support@squarelink.com with a description of the issues you're experiencing.

You may also open an Issue on the Squarelink Improvement Proposals repository with a description of the issue you're experiencing.