@tomo-inc/cubist-sig-sdk
v1.1.1
Published
A TypeScript SDK for multi-chain cryptocurrency signing operations using CubeSigner's secure key management infrastructure.
Readme
Cubist Signature SDK
A TypeScript SDK for multi-chain cryptocurrency signing operations using CubeSigner's secure key management infrastructure.
Features
- Multi-chain Support: Bitcoin, Ethereum, Solana, Sui, TON, TRON, Cosmos, Dogecoin, and Move-based chains
- Secure Key Management: Powered by CubeSigner's enterprise-grade key infrastructure
- Multiple Address Types: Support for various Bitcoin address formats (P2PKH, P2WPKH, P2TR, P2SH)
- OIDC Authentication: Seamless integration with OpenID Connect providers
- TypeScript First: Full type safety and excellent developer experience
Installation
npm install @tomo-inc/cubist-sig-sdkQuick Start
1. Authentication
import { getOidcClient, getSessionKeys } from '@tomo-inc/cubist-sig-sdk'
// Create OIDC session
const client = await getOidcClient(
oidcToken, // Your OIDC token
'production', // Environment: 'production' | 'staging'
3600 // Session expiration in seconds
)
// Get available keys and addresses
const sessionInfo = await getSessionKeys(client.sessionData())
console.log(sessionInfo.keys) // Available blockchain addresses
// Get a specific key for signing
const key = await client.org().getKey('Key#<key_id>')2. Ethereum Signing
import { signEvmTransaction, signEvmMessage } from '@tomo-inc/cubist-sig-sdk'
// Sign transaction
const signedTx = await signEvmTransaction(
key, // CubeSigner Key object
{
to: '0x742d35cc6634c0532925a3b8d4e6cd8e9f6de19e',
value: '1000000000000000000', // 1 ETH in wei
gas: '21000'
},
1, // Chain ID (1 for Ethereum mainnet)
approveSession // Approval session for MFA
)
// Sign message
const signature = await signEvmMessage(
key, // CubeSigner Key object
'Hello, World!', // Message to sign
approveSession // Approval session for MFA
)3. Bitcoin Signing
import { signPsbt, signBtcMessage } from '@tomo-inc/cubist-sig-sdk'
// Sign PSBT (Partially Signed Bitcoin Transaction)
const signedPsbt = await signPsbt(
key, // CubeSigner Key object
psbtBase64, // PSBT in base64 format
approveSession // Approval session for MFA
)
// Sign Bitcoin message
const signature = await signBtcMessage(
key, // CubeSigner Key object
'Hello Bitcoin!', // Message to sign
userInfo, // User session info
false, // isP2sh flag
approveSession // Approval session for MFA
)4. Other Chains
// Solana
import { signSolanaTransaction } from '@tomo-inc/cubist-sig-sdk'
const signedTx = await signSolanaTransaction(key, rawTransaction, approveSession)
// Sui
import { signSuiTransaction } from '@tomo-inc/cubist-sig-sdk'
const signedTx = await signSuiTransaction(key, transaction, rpcUrl, approveSession)
// TON
import { signTonTransaction } from '@tomo-inc/cubist-sig-sdk'
const signedTx = await signTonTransaction(key, signingMessageBoc, stateInitBoc, isTestnet, approveSession)
// Cosmos
import { signCosmosTransaction } from '@tomo-inc/cubist-sig-sdk'
const signedTx = await signCosmosTransaction(key, signDoc, approveSession)Supported Chains
| Chain | Address Types | Features | |-------|---------------|----------| | Bitcoin | P2PKH, P2WPKH, P2TR, P2SH | Transaction & message signing | | Ethereum | EVM compatible | Transaction, message & typed data signing | | Solana | Native | Transaction signing | | Sui | Native | Transaction signing | | TON | Native | Transaction signing | | TRON | Native | Transaction signing | | Cosmos | Native + Babylon | Transaction signing | | Dogecoin | Native | Transaction signing | | Move | Aptos compatible | Transaction signing |
Contributing
This SDK is built on top of CubeSigner and provides a simplified interface for multi-chain operations.
License
ISC
