🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

spark-node-express

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

spark-node-express

basic express server consuming the @buildonspark/spark-sdk and @buildonspark/issuer-sdk

npmnpm
Version
0.0.4
Version published
Weekly downloads
10
233.33%
Maintainers
1
Weekly downloads
 
Created
Source

Spark Hackathon Node Server

Welcome to the Spark Hackathon!

Contained is a simple express server example written in plain javascript that calls most of our exposed sdk functions.

To get started:

yarn
yarn dev

or if you'd like you can copy this directory as a starting template for your own project and use a different package manager like npm:

npm install
npm run dev

To init your wallet, make a call to either

https://localhost:5000/spark-wallet/init

or

https://localhost:5000/issuer-wallet/init

Your mnemonic should then get saved to your local machine and you can explore our sdks from there.

If your server crashes, remember to init your wallet again.

To spin up a new wallet, delete the saved mnemonic files.

You can find more documentation for our sdks at https://docs.spark.info

Methods available to both spark and issuer wallets

As an IssuerSparkWallet extends the functionality of a SparkWallet, IssuerSparkWallets have access to all the methods available in a SparkWallet.

Get Wallet

Returns the raw wallet instance.

GET /spark-wallet/wallet
GET /issuer-wallet/wallet

Initialize Wallet

Initialize a new wallet or recovers an existing one.

POST /spark-wallet/wallet/init
POST /issuer-wallet/wallet/init

Request Body:

{
  "mnemonicOrSeed": Optional[string]
}

If no mnemonic is provided, generates a new one and saves it.

Get Identity Public Key

Returns the wallet's identity public key.

GET /spark-wallet/wallet/identity-public-key
GET /issuer-wallet/wallet/identity-public-key

Get Spark Address

Returns the wallet's Spark address.

GET /spark-wallet/wallet/spark-address
GET /issuer-wallet/wallet/spark-address

Get Wallet Balance

Returns the current wallet balance, including token balances.

GET /spark-wallet/wallet/balance
GET /issuer-wallet/wallet/balance

Get Transfer History

Returns a list of transfers.

GET /spark-wallet/wallet/transfers?limit=20&offset=0
GET /issuer-wallet/wallet/transfers?limit=20&offset=0

Query Parameters:

  • limit (optional): Number of transfers to return (default: 20)
  • offset (optional): Offset for pagination (default: 0)

Get Pending Transfers

Returns a list of pending transfers.

GET /spark-wallet/wallet/pending-transfers
GET /issuer-wallet/wallet/pending-transfers

Claim Pending Transfers

Claim all pending transfers.

POST /spark-wallet/wallet/claim-transfers
POST /issuer-wallet/wallet/claim-transfers

Send Spark Transfer

Send a Spark transfer to another address.

POST /spark-wallet/spark/send-transfer
POST /issuer-wallet/spark/send-transfer

Request Body:

{
  "receiverSparkAddress": string,
  "amountSats": number
}

Create Lightning Invoice

Generate a new Lightning Network invoice.

POST /spark-wallet/lightning/create-invoice
POST /issuer-wallet/lightning/create-invoice

Request Body:

{
  "amountSats": number,
  "memo": Optional[string],
  "expirySeconds": Optional[number]
}

Pay Lightning Invoice

Pay a Lightning Network invoice.

POST /spark-wallet/lightning/pay-invoice
POST /issuer-wallet/lightning/pay-invoice

Request Body:

{
  "invoice": string
}

Get Deposit Address

Generate a Bitcoin deposit address associated with the current wallet.

GET /spark-wallet/bitcoin/deposit-address
GET /issuer-wallet/bitcoin/deposit-address

Claim Deposit

Claim a Bitcoin deposit.

POST /spark-wallet/bitcoin/claim-deposit
POST /issuer-wallet/bitcoin/claim-deposit

Request Body:

{
  "txid": string
}

Withdraw to Bitcoin Address

Withdraw funds to a Bitcoin address.

POST /spark-wallet/bitcoin/withdraw
POST /issuer-wallet/bitcoin/withdraw

Request Body:

{
  "onchainAddress": string,
  "targetAmountSats": number
}

Transfer Tokens

Transfer tokens to another address.

POST /spark-wallet/tokens/transfer
POST /issuer-wallet/tokens/transfer

Request Body:

{
  "tokenPublicKey": string,
  "tokenAmount": number,
  "receiverSparkAddress": string
}

Withdraw Tokens

Withdraw tokens.

POST /spark-wallet/tokens/withdraw
POST /issuer-wallet/tokens/withdraw

Request Body:

{
  "tokenPublicKey": string,
  "receiverPublicKey": string,
  "leafIds": string[]
}

Issuer only methods

These endpoints are exclusively available for issuer wallets (/issuer-wallet/...).

Get Token Balance

Returns the issuer's token balance.

GET /issuer-wallet/token-balance

Get Token Public Key Info

Returns information about the token's public key.

GET /issuer-wallet/token-public-key-info

Mint Tokens

Mint new tokens.

POST /issuer-wallet/spark/mint-tokens

Request Body:

{
  "tokenAmount": string // Amount to mint (will be converted to BigInt)
}

Burn Tokens

Burn existing tokens.

POST /issuer-wallet/spark/burn-tokens

Request Body:

{
  "tokenAmount": "string" // Amount to burn (will be converted to BigInt)
}

Freeze Tokens

Freeze tokens for a specific owner.

POST /issuer-wallet/spark/freeze-tokens

Request Body:

{
  "ownerPublicKey": string
}

Unfreeze Tokens

Unfreeze tokens for a specific owner.

POST /issuer-wallet/spark/unfreeze-tokens

Request Body:

{
  "ownerPublicKey": string
}

On-Chain Operations

Announce Token L1

Announce a new token on Layer 1.

POST /issuer-wallet/on-chain/announce-token

Request Body:

{
  "tokenName": string,
  "tokenTicker": string,
  "decimals": number,
  "maxSupply": number,
  "isFreezable": boolean,
  "feeRateSatsPerVb": number
}

Mint Tokens L1

Mint tokens on Layer 1.

POST /issuer-wallet/on-chain/mint-tokens

Request Body:

{
  "tokenAmount": number
}

Transfer Tokens L1

Transfer tokens on Layer 1.

POST /issuer-wallet/on-chain/transfer-tokens

Request Body:

{
  "tokenAmount": number,
  "receiverPublicKey": string
}

Environment

The API can be configured for either:

  • REGTEST (Development/Testing)
  • MAINNET (Production)

FAQs

Package last updated on 15 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts