Skip to main content

Kryptos Connect

Kryptos Connect enables users to securely share their crypto portfolio data with third-party applications through a single, easy-to-integrate widget.

Overview

Kryptos Connect provides a seamless way for users to:

  • Authorize access to their crypto portfolio with explicit consent
  • Share data securely using industry-standard OAuth 2.0
  • Manage integrations by connecting wallets and exchanges
  • Control permissions with granular scope-based access
  • Long-lived access with 15-year access tokens (no refresh tokens needed)
  • Native mobile support for iOS and Android applications

Base URL

https://connect-api.kryptos.io

How it works

See how users connect their accounts through the Kryptos Connect widget:

Open Connect widgetBrowse integrationsConnect accountConnection successful

Getting Started

Prerequisites

  1. Register your application on the Developer Portal to receive:

    • client_id - Your application identifier
    • client_secret - Your secret key (keep secure, never expose in frontend)
  2. Configure your client with:

    • Allowed redirect URIs
    • Allowed origins for CORS
    • Required scopes

Integration Steps

1. CREATE LINK TOKEN (Backend)
Your server calls /link-token with client credentials

2. INITIALIZE WIDGET (Frontend)
Pass link_token to the SDK widget

3. USER AUTHENTICATES
User logs in or creates anonymous account

4. USER GRANTS CONSENT
User approves requested permissions

5. RECEIVE PUBLIC TOKEN
Widget returns public_token via onConnectSuccess callback

6. EXCHANGE TOKEN (Backend)
Your server exchanges public_token for access_token

7. ACCESS DATA
Use access_token to call Data APIs

Authentication Methods

MethodHeader/BodyUsed For
Client CredentialsX-Client-Id + X-Client-Secret headersCreating link tokens
Link TokenX-LINK-TOKEN headerWidget operations
Bearer TokenAuthorization: Bearer {access_token}Data API calls

Available Scopes

Default Client Scopes

When you create a new OAuth client, the following scopes are assigned by default:

openid profile offline_access email portfolios:read transactions:read
integrations:read tax:read accounting:read reports:read workspace:read users:read

Core Scopes

ScopeDescription
openidRequired for OpenID Connect
profileUser profile information
emailUser email address
offline_accessEnable long-lived tokens

API Scopes

ResourceRead ScopeWrite ScopeDescription
Portfoliosportfolios:readportfolios:writePortfolio holdings
Transactionstransactions:readtransactions:writeTransaction history
Balancesbalances:readbalances:writeAccount balances
Integrationsintegrations:readintegrations:writeConnected wallets and exchanges
DeFidefi:readdefi:writeDeFi protocol positions
NFTnft:readnft:writeNFT collections
Taxtax:readtax:writeTax calculations
Accountingaccounting:readaccounting:writeAccounting ledger
Reportsreports:readreports:writeGenerated reports
Workspaceworkspace:readworkspace:writeWorkspace settings

Token Types & Lifetimes

Token TypePrefixLifetimeDescription
Link Tokenlink_30 minutesInitialize Connect widget
Public Tokenpublic_30 minutesExchange for access token (one-time)
Access Tokencat_15 yearsAPI authentication (long-lived)
Grant Tokencgrant_15 yearsAuthorization record (for revocation)

Security Best Practices

  1. Never expose secrets in frontend code - Keep client_secret on your backend only
  2. Store tokens securely - Use encrypted storage for access tokens and grant IDs
  3. Use HTTPS - Always use secure connections in production
  4. Validate state parameters - Prevent CSRF attacks
  5. Monitor for suspicious activity - Log and monitor authentication events
  6. Allow users to revoke access - Provide UI to disconnect integrations using /token/revoke
  7. Store grant IDs - Keep grant IDs for revocation purposes

Sandbox Mode

New clients are created in sandbox mode by default, which has the following limitations:

Supported Chains

Only Ethereum and Solana are available in sandbox mode.

Test Addresses

Use these pre-approved test addresses for sandbox testing:

ChainTest Address
Ethereum0x47c2e31e9ce22437bcf6313d2b9e98245a7bfcfa
Solana2r8Hm938GzCQ2gXTP2deDarkn52ezYf1UUaEzMpkwrk1

Sandbox Errors

Error CodeDescription
SANDBOX_PROVIDER_NOT_ALLOWEDProvider not available in sandbox mode
SANDBOX_ADDRESS_NOT_ALLOWEDAddress not allowed in sandbox mode

Production Access

To upgrade to production mode with full access to all chains and addresses, contact us at [email protected].


Choose your integration path


Support

SDK Packages

Contact & Resources

GitHub Repositories