SDK
NASDK SDK Guide
Link to Github: https://github.com/nostrassets/nasdk
Introduction
Welcome to the NASDK (Nostr Asset SDK) guide! NASDK is an SDK library developed based on the NOSTR ASSET protocol. It facilitates connecting plugin wallets supporting NOSTR, executing transactions, and managing orders seamlessly.
Features
Connect plugin wallets supporting NOSTR
Execute transactions
Place orders in the market
Support Method List
nasdk
getConfig()
: Retrieve configuration.getNostrPool()
: Get information about the Nostr pool.
nasdk.market
listOrder(options)
: List orders in the market.takeOrder(orderId)
: Take an order in the market.cancelOrder(orderId)
: Cancel an order in the market.repairOrder(orderId, amount, price, buyOrSellTokenName, payTokenName)
: Repair an order in the market.
nasdk.token
approve(options)
: Approve token transfer.transfer(options)
: Transfer tokens.addAddressBook(options)
: Add an address to the address book.deposit(options)
: Deposit tokens.withdraw(options)
: Withdraw tokens.
nasdk.provider
supportedProviderList
: Retrieve a list of supported providers.connect(providerName)
: Connect to a provider.getProvider(providerName)
: Get information about a provider.
nasdk.utils
nip04()
: NIP04 utilities.nip19()
: NIP19 utilities.generatePrivateKey()
: Generate a private key.getPublicKey(privateKey)
: Get a public key from a private key.getEventHash(event)
: Get the hash of an event.
Setup
React
Install
yarn add nasdk
//import bolt11min.js to public/index.html through script src
<script src=`${yourpath}/bolt11.min.js``></script>
Code
import {useCallback} from 'react
import NASDK from 'nasdk'
const nasdk = new NASDK({ env: 'development'}) // env: development | production
const onTransfer = useCallback(async()=>{
const res = await nasdk.token.transfer({ tokenName: 'NOSTR', amount: 1, to: 'npub1zptcf2v9ms5dgd8mgulsckk04l9upr3lnerk6ckh9zyntzu0ness753zx8' })
},[])
return <>
{your code}
</>
Node.js
Installation
yarn add websocket-polyfill bolt11 nasdk
Code
import 'websocket-polyfill'
import 'bolt11'
import NASDK from 'nasdk'
const privateKey='45d914aef9c2f85a47b242ef684245c02e0af93d6f9031fcc3444ede8ac0a295'
const nasdk = new NASDK({ env: 'development', privateKey, poolOptions:{getTimeout:10*1000} })
const res = await nasdk.market.listOrder({ side:'sell',amount:'100',price:'101',buyOrSellTokenName:'TRICK',payTokenName:'SATS'})
// You can see more examples in the tests directory
HTML
<scrpt src=`${youpath}/nasdk.umd.js`>
<script src=`${yourpath}/bolt11.min.js``></script>
<script>
const nasdk = new NASDK({ env: 'development' })
const supportedProviderNames = Object.keys(nasdk.provider.supportedProviderList)
async function onConnect(providerName='alby') {
const res = await nasdk.provider.connect(providerName)
}
</script>
Example
Check out examples in the src/tests
directory.
Running Tests
To run the test suite:
yarn node --experimental-vm-modules $(yarn bin jest) --detectOpenHandles
Start integrating NASDK into your project and unlock the potential of the NOSTR ASSET protocol!
Last updated