NAV Navbar

Introduction

Code Examples:

$ echo "Hello, Squarelink Developer!"
$ echo "Code examples will show up here throughout this guide."

Squarelink is the long awaited, non-custodial, alternative to MetaMask that enables users to interact with ÐApps from any device or browser with just an email and password.

We'll walk you through integrating Squarelink into your app or ÐApp so your users can easily interact with the blockchain.

For this, you can quickly install our Web3 Provider and use Web3.js as you normally would!

We also offer the OAuth-style "Sign Tx" tool that allows you to easily request transactions from a user without requiring Web3 capabilities in your app. Along with it, we provide a standard OAuth 2.0 "Sign In" integrations along with a REST API for interacting with Squarelink user accounts.

Getting Started

To start integrating either Sign Tx or Sign In, let's first create an account in our Developer Console and register your ÐApp.

New App Image

Quickstart (Web3)

Already have a ÐApp using web3.js? Plug in Squarelink in minutes!

If you have not done so already, please register your ÐApp in the Squarelink Developer Console.

Install the Squarelink bundle from a CDN

<script src="https://squarelink.com/js/squarelink.min.js"></script>

...Or install Squarelink from NPM

$ npm install squarelink

Installation

First, install Squarelink's Web3 Provider from your preferred source. (See on the right)

Basic Usage of Squarelink

import Squarelink from 'squarelink'
import Web3 from 'web3'

const sqlk = new Squarelink('Your-Dapp-ID')

// Use Promise or callback
sqlk.getProvider((provider, err) => {
  var web3 = new Web3(provider)

  // Use standard Web3 methods as you normally would
  web3.eth.currentProvider.enable().then(console.log)
})

Usage

Initialize the Squarelink Object and set it as your Web3 Provider for your application. Sweet, you're already finished!

const sqlk = new Squarelink(clientId [, network, opts])

Parameter Type Description
clientId String This is the clientId associated with your ÐApp.
network String|Object The name of a network supported by Squarelink (see Available Networks), or your own custom network configuration (See below). Defaults to mainnet.
opts Object Additional options to pass to the Squarelink constructor (see below)

Custom network example

...
const sqlk = new Squarelink('<YOUR CLIENT ID>', {
  url: 'https://localhost:8545',
  chainId: 420
})
...

Custom Network Configuration:

Parameter Type Description
url String The JSON_RPC endpoint Squarelink will connect to.
chainId Number (optional) Chain ID for your network

Custom Methods Example

...
const sqlk = new Squarelink('<YOUR CLIENT ID>', 'mainnet', {
  scope: ['user:name','user:email']
})
sqlk.getName()
> Satoshi Nakamoto

sqlk.getEmail()
> satoshi@buttcoin.io
...

Options (opts)

Parameter Type Description
scope Array Request additional scopes to use custom Squarelink functions.
useSync Boolean Set this to true to use getProviderSync (see below).

Available Scopes:

Detecting Squarelink

...
web3.currentProvider.isSquarelink
> true
...

We attach the isSquarelink attribute to our provider for you to identify us if you're incorporating multiple providers. See to the right.

Using getProviderSync()

...
const sqlk = new Squarelink('<CLIENT ID>', 'mainnet', { useSync: true })
const web3 = new Web(sqlk.getProviderSync())
...

The getProvider function fetches a list of our supported networks and their RPC endpoints from our API. This allows us to remotely switch RPC providers to ensure 100% uptime and remove faulty/compromised endpoints.

If you are unable to support callbacks/promises, you can use getProviderSync which uses hard-coded RPC endpoints. NOTE: we cannot guarantee 100% uptime with this method.

Sign Tx Integration

Don't want to install web3? Just want to request transactions quick and simple?

With Sign Tx, you can quickly onboard users to your Web3 ÐApp with a familiar, OAuth-style, Web2 interface and development experience. Simply add your Sign Tx button into your ÐApp and you're good to go! No need to worry about installing Web3!

If you have not done so already, please register your ÐApp in the Squarelink Developer Console.

Sign Tx Button

Sign Tx Button Template

<a href="https://app.squarelink.com/tx?
    client_id=<YOUR CLIENT_ID>
    &to=<RECIPIENT ETHEREUM ADDRESS>
    &value=<AMOUNT TO BE TRANSFERRED IN WEI>">
    <img src="https://squarelink.com/img/sign-tx.svg" width="220"></img>
</a>

The Sign Tx button offers all of the functionality included in the Web3 standard with some added features.

When a user clicks the button, they'll simply be instructed to approve a transaction and then redirected back to your ÐApp.

Add, remove, and edit the following button parameters to get the functionality you need!

Available button parameters:

Parameter Required Description
client_id true This is the client_id associated with your ÐApp.
to true A valid recipient Ethereum address for the transaction.
from (Optional) A specific sender address owned by the user.
value (Optional) Integer amount of ETH to be transferred (measured in Wei).
gas (Optional) Specify the gas limit for the transaction.
gasPrice (Optional) Specify the gas price for the transaction (measured in Gwei).
data (Optional) Any data required for a smart contract call.
nonce (Optional) Use this to override a pending transaction with the same nonce.
network (Optional) A network from the list of Available Networks. This defaults to mainnet.
rpc_url (Optional) (If custom network) The endpoint we'll use to connect with your custom network.
chain_id (Optional) (If custom network) The chain id for your custom network.
redirect_uri (Optional) Where we'll redirect the user after the status of the request changes.
description (Optional) Description shown to the user in the request.
state (Optional) An optional CSRF token to be returned to your redirect_uri.

Redirect Response

After the transaction request status changes (fails or succeeds), we'll send the user back to your redirect_uri with the following parameters:

Parameter Description
tx_id This is the client_id associated with your ÐApp.
state If you provided a state in the request, it will be returned in the response.
error A description of any issues with your request or the user's action.

Available Networks

Network Description

Advanced Settings

For additional security, you can specify some of your button parameters in the Developer Console to prevent malicious usage of your ÐApp's Sign Tx button. Your request parameters will default to the values specified here.

Sign Tx Advanced Settings

Setting Description
Whitelisted Deposit Addresses A comma-separated list of Ethereum addresses to which your users can send transactions.
Whitelisted Redirect URIs A comma-separated list of URLs.
Network If specified, your users will only be able to send transactions on this network.
RPC Endpoint A Web3 standard public RPC endpoint to connect with custom networks. Must be secure (https).
Chain ID The chain ID for your custom network.

Live Examples

HTML for Ropsten example

<a href="https://app.squarelink.com/tx?
    client_id=f11116f2b57b4f481d95
    &network=ropsten
    &value=10000000000000000
    &to=0xf40bED2fFEE76B5517Fc992CC798Ece4c55D8F99
    &description=You're about to send 0.01 ETH to Squarelink on the Ropsten Network">
    <img src="https://squarelink.com/img/sign-tx.svg" width="250"></img>
</a>

Request 0.01 ETH on the Ropsten Network

HTML for OmiseGo example

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





Request 10 OmiseGo (an ERC-20 token) using contract data

Sign In Integration

With the Squarelink OAuth 2.0 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 in the Squarelink Developer Console.

Sign In Button

Sign In Button Template

<a href="https://app.squarelink.com/authorize?
    client_id=<CLIENT_ID>
    &scope=[user:email,wallets:read]
    &redirect_uri=https://yourdapp.com/redirect
    &response_type=token">
    <img src="https://squarelink.com/img/sign-in.svg" width="220"></img>
</a>

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

When a user clicks the button, they'll be instructed to authorize your ÐApp and then they'll be redirected back to your page.

Add, remove, and edit the following button parameters to get the functionality you need!

Sign In button parameters:

Parameter Required Description
client_id true This is the client_id associated with your ÐApp.
scope true A comma-separated list of permissions you'd like to request from a user. (See available scopes below).
redirect_uri true The URL you'd like us to send the user back to after the user has authorized your app.
state false Any valid CSRF token. 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 ÐApp, we'll redirect the user to the redirect URI specified (if whitelisted) with the following parameters:

Redirect Response

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.
error A description of any issues with your request

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

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 OF PROBLEM>.

Available Scopes

Parameter Description
user:name Allows you to read a user's name.
user:email Allows you to see a user's email address.
user:security Allows you to see a user's security settings.
user Equivalent to all user scopes.
wallets:read Allows you to see a user's wallets and transactions.
wallets:edit Allows you to edit some information associated with a user's wallets.
wallets:create Allows you to create new wallets for a user.
wallets:remove Allows you to delete any wallets your app has created.
wallets:admin Equivalent to all wallet scopes.

Obtain an Access Token

Authorization Code Grant Request Example

$ curl -X GET -H "Content-type: application/json" https://oauth.squarelink.com/token?
        grant_type=authorization_code
        &client_id=<CLIENT_ID>
        &client_secret=<CLIENT_SECRET>
        &code=<AUTHORIZATION_CODE>
        &state=<STATE>

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

$ curl -X GET -H "Content-type: application/json" https://oauth.squarelink.com/token?
      grant_type=refresh
      &client_id=<CLIENT_ID>
      &client_secret=<CLIENT_SECRET>
      &refresh_token=<REFRESH_TOKEN>
      &scope=<SCOPE>

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, you cannot request wallets:admin.

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

API Reference

By now, you have registered your app or ÐApp 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


GET /user

GET /user request example

$ curl -X GET -H "Content-type: application/json" https://api.squarelink.com/user?access_token=<ACCESS_TOKEN>

Example Response

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

Read a user's Squarelink Account info such as their email, name, and security settings with this route.

Required Scopes: user, user:name, user:email, or user:security

Request Parameters

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

Response Body

Parameter Type Required Scope Description
success Boolean Any Indicates if the request was successful
id String Any The user's Squarelink User ID.
email String user:email The user's email address.
family_name String user:name The user's last name.
given_name String user:name The user's first name.
email_verified Boolean user:security Indicates if the user has verified their email.
has_2fa Boolean user:security Indicates if the user has enabled 2-factor authentication.
has_recovery Boolean user:security Indicates if the user has enabled account recovery.
created Number Any When the user's account was created (seconds from the Epoch).


GET /wallets

GET /wallets Example Request

$ curl -X GET -H "Content-type: application/json" https://api.squarelink.com/wallets?access_token=<ACCESS_TOKEN>

Example Response

{
  "success": true,
  "wallets": [
    {
      "id": "w54131fbcdea01"
      "owner": "u12345dabcdef"
      "name": "Satoshi's ETH Account",
      "address": "0x223b22347674da1797120327991d315b22dc1030",
      "created_on": 1539049741
    },
    {
      "id": "w10abedcf13145"
      "owner": "u12345dabcdef"
      "name": "ETH Account 2",
      "address": "0xf40bED2fFEE76B5517Fc992CC798Ece4c55D8F99",
      "created_on": 1539048241,
      "creator": "Your-dapp-id"
    },
  ],
}

Get a list of a user's Ethereum accounts and their addresses.

Required Scopes: wallets:admin or wallets:read

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.
wallets Array A list of Wallet Objects.


GET /wallet

GET /wallet Example Request

$ curl -X GET -H "Content-type: application/json" https://api.squarelink.com/wallet?
    access_token=<ACCESS_TOKEN>
    wallet_id=<WALLET_ID>

Example Response

{
  "success": true,
  "wallet": {
    "id": "w54131fbcdea01"
    "owner": "u12345dabcdef"
    "name": "Satoshi's ETH Account",
    "address": "0x223b22347674da1797120327991d315b22dc1030",
    "created_on": 1539049741
  }
}

Get information for a specific wallet owned by a user.

Required Scopes: wallets:admin or wallets:read

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
wallet_id String (Required) The ID for the wallet you want to view.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful.
wallet Object A Wallet Object.


PATCH /wallet

PATCH /wallet Example Request

$ curl -X PATCH -H "Content-type: application/json" https://api.squarelink.com/wallet
  -d '{
    "access_token": "<ACCESS_TOKEN>",
    "wallet_id": "w54131fbcdea01",
    "name": "New Wallet Name"
    "make_default": true
  }'

Example Response

{
  "success": true,
  "wallet": {
    "id": "w54131fbcdea01"
    "owner": "u12345dabcdef"
    "name": "New Wallet Name",
    "address": "0x223b22347674da1797120327991d315b22dc1030",
    "created_on": 1539049741
  }
}

Edit information for a specific wallet owned by a user.

Required Scopes: wallets:admin or wallets:edit

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
wallet_id String (Required) The ID for the wallet you want to view.
name String Name you want to set for the wallet.
make_default Boolean true if you want to set this as the user's default wallet.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful.
wallet Object A Wallet Object.


DELETE /wallet

DELETE /wallet Example Request

$ curl -X DELETE -H "Content-type: application/json" https://api.squarelink.com/wallet?
    access_token=<ACCESS_TOKEN>
    wallet_id=<WALLET_ID>

Example Response

{
  "success": true,
  "message": "Wallet deleted successfully"
}

Delete a wallet owned by a user that was created by your app

Required Scopes: wallets:admin or wallets:remove

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
wallet_id String (Required) The ID for the wallet you want to view.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful.
message String A message about the request.


POST /wallet

POST /wallet Example Request

$ curl -X POST -H "Content-type: application/json" https://api.squarelink.com/wallet
  -d '{
    "access_token": "<ACCESS_TOKEN>",
    "name": "New Wallet"
  }'

Example Response

{
  "success": true,
  "wallet": {
    "id": "w54131fbcdea01"
    "owner": "u12345dabcdef"
    "name": "New Wallet",
    "address": "0xd26114cd6EE289AccF82350c8d8487fedB8A0C07",
    "created_on": 1539049741
  }
}

Edit information for a specific wallet owned by a user.

Required Scopes: wallets:admin or wallets:edit

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
name String Name you want to set for the wallet.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful.
wallet Object A Wallet Object.


GET /txs

GET /txs Example Request

$ curl -X GET -H "Content-type: application/json" https://api.squarelink.com/txs?
    access_token=<ACCESS_TOKEN>
    &network=custom
    &network_config=%7B%22url%22:%22http:%2F%2Flocalhost:8545%22,%22chain_id%22:24214%7D
    &page=1
    &per_page=10

Response Body

{
  "success": "true",
  "page_count": 23,
  "per_page": 10,
  "page": 1,
  "txs": [
    {
      "id": "0x8372289b2b811ca6b66797cd28a51af63b5468d57b505643716b0bb82be4387b",
      "sub": "u12345abcdef",
      "network": "custom",
      "network_config": {
        "url": "https://localhost:8545",
        "chain_id": 24214
      },
      "wallet_id": "w96cae4bf1122",
      "from": "0x00f9252f87531fdb919a686e3e21d006a6304658",
      "to": "0x223b22347674da1797120327991d315b22dc1030",
      "gas": "61000",
      "gasPrice": "3300000000",
      "value": "0",
      "nonce": "29",
      "hex": "0xf86a141482520894948b48c6ef7564254bfb74e90a3856b70e8374e9890d108bff209524000080820a96a0aaf11ea3a5dabcaa095b54921fa46e8ed70481d7fc7252503bd5968fae0e1477a03fd4f1cd1b5e1444e54321168c7464cf98fa95bca1efbff9d0c160d3a03713ff",
      "signature": {
        "v": 2710,
        "r": "0xaaf11ea3a5dabcaa095b54921fa46e8ed70481d7fc7252503bd5968fae0e1477",
        "s": "0x3fd4f1cd1b5e1444e54321168c7464cf98fa95bca1efbff9d0c160d3a03713ff",
      },
      "date": 1538002833
    }
    ...
  ]
}

You can use this route to list a Squarelink user's transactions for a specific network.

Required Scopes: wallets:admin or wallets:read

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
network String (Required) The desired network from which to list transactions. See Available Networks
network_config Object (Required if network is custom) URL Query-encoded object with following properties:
network_config.url String (Required if network is custom) RPC Endpoint for your custom network.
network_config.chain_id Integer (Optional) Chain ID for your custom network.
wallet_id String (Optional) Specific target wallet owned by the user.
client_id String (Optional) Filter transactions with the client_id of an app you own.
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.


GET /tx

GET /tx Example Request

$ curl -X GET -H "Content-type: application/json" https://api.squarelink.com/tx?
    access_token=<ACCESS_TOKEN>
    &network=kovan
    &page=1
    &per_page=10

Response Body

{
  "success": "true",
  "tx": {
    "id": "0x8372289b2b811ca6b66797cd28a51af63b5468d57b505643716b0bb82be4387b",
    "sub": "u12345abcdef",
    "network": "kovan",
    "wallet_id": "w96cae4bf1122",
    "from": "0x00f9252f87531fdb919a686e3e21d006a6304658",
    "to": "0x223b22347674da1797120327991d315b22dc1030",
    "gas": "61000",
    "gasPrice": "3300000000",
    "value": "0",
    "nonce": "29",
    "hex": "0xf86a141482520894948b48c6ef7564254bfb74e90a3856b70e8374e9890d108bff209524000080820a96a0aaf11ea3a5dabcaa095b54921fa46e8ed70481d7fc7252503bd5968fae0e1477a03fd4f1cd1b5e1444e54321168c7464cf98fa95bca1efbff9d0c160d3a03713ff",
    "signature": {
      "v": 2710,
      "r": "0xaaf11ea3a5dabcaa095b54921fa46e8ed70481d7fc7252503bd5968fae0e1477",
      "s": "0x3fd4f1cd1b5e1444e54321168c7464cf98fa95bca1efbff9d0c160d3a03713ff",
    },
    "date": 1538002833,
    "state": "be3jem87wnsmu6",
    "client_id": "f42146f2b57b4f481d95"
  }
}

You can use this route to view information about a specific transaction sent by a user.

Required Scopes: wallets:admin or wallets:read

Request Parameters

Parameter Type Description
access_token String (Required) The access token you received for a Squarelink user.
id String (Required) Hash of the transaction on the blockchain.
network String (Required) The network on which the transaction was broadcast. See Available Networks
network_config Object (Required if network is custom) URL Query-encoded object with following properties:
network_config.url String (Required if network is custom) RPC Endpoint for your custom network.
network_config.chain_id Integer (Optional) Chain ID for your custom network.

Response Body

Parameter Type Description
success Boolean Indicates if the request was successful.
tx Array A Transaction Object.

Object Models

Wallet Object

Parameter Type Description
id String Squarelink's identifier for the wallet.
owner String The ID of the Squarelink user owning the wallet.
name String The user's name for that wallet.
address String The public address of the wallet.
created_on Integer Date created on Squarelink (number of seconds since the Epoch).
creator String Your DApp ID (only returned if your dapp created the wallet)

Transaction Object

Parameter Type Description
id String The transaction hash on the blockchain.
sub String The sender's Squarelink account ID.
network String Network on which the transaction was sent. See Available Networks.
network_config Object (If network is custom) Object with following properties:
network_config.url String (If network is custom) RPC Endpoint for the custom network.
network_config.chain_id Integer Chain ID for the custom network.
wallet_id Squarelink identifier for sender's wallet.
from String Sender's address for the transaction.
to String Recipient address of the transaction.
value String Value sent in Wei.
data String Data for contract function calls.
gas String Gas used for the transaction.
gasPrice String Gas price in Gwei.
nonce String Nonce of a transaction for a user's address.
raw String Original raw hex data broadcast to the blockchain.
client_id String Client ID of the app associated with the transaction (if owned by you).
state String State associated with the transaction request (if requested by you).
date Number Datetime the transaction was broadcast. Number of seconds since the epoch.

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.