A Golang SDK to simplify access to Unmarshal APIs
This project is currently in BETA
Usage Guide
The first step involved is to go get this project.
go get github.com/eucrypt/unmarshal-go-sdk
Create an SDK type and pass it your auth key. (To generate an Auth key you will need to create a user account
at Unmarshal Console
package main
import (
unmarshal "github.com/eucrypt/unmarshal-go-sdk/pkg"
conf "github.com/eucrypt/unmarshal-go-sdk/pkg/config"
"github.com/eucrypt/unmarshal-go-sdk/pkg/constants"
)
func main() {
sdk := unmarshal.NewWithConfig(conf.Config{
AuthKey: "<auth key>",
Environment: constants.Prod,
})
}
There are other options to use your own http client if you prefer as well. The SDK is all you now need to query the
unmarshal APIs
//For example to get the current Price of Marsh, you can now:
package main
import (
unmarshal "github.com/eucrypt/unmarshal-go-sdk/pkg"
conf "github.com/eucrypt/unmarshal-go-sdk/pkg/config"
"github.com/eucrypt/unmarshal-go-sdk/pkg/constants"
)
func main() {
sdk := unmarshal.NewWithConfig(conf.Config{
AuthKey: "<auth key>",
Environment: constants.Prod,
})
resp, err := sdk.GetTokenPriceBySymbol("marsh")
}
Some functions are chain specific and the chain can be passed in via the constants.Chain package
package main
import (
unmarshal "github.com/eucrypt/unmarshal-go-sdk/pkg"
conf "github.com/eucrypt/unmarshal-go-sdk/pkg/config"
"github.com/eucrypt/unmarshal-go-sdk/pkg/constants"
)
func main() {
sdk := unmarshal.NewWithConfig(conf.Config{
AuthKey: "<auth key>",
Environment: constants.Prod,
})
resp, err := sdk.GetTokenCurrentPrice(constants.BSC, "0x2fa5daf6fe0708fbd63b1a7d1592577284f52256")
}
The SDK has support for the following unmarshal API:
Price Store
- Get Price
v1/pricestore/chain/:chain/:address(GetTokenCurrentPrice)
- Get Price at Instant
v1/pricestore/chain/:chain/:address?timestamp=(GetTokenPriceAtInstant)
- Get Price With Symbol
v1/pricestore/:symbol(GetTokenPriceBySymbol)
- Get Gainers
v1/pricestore/chain/:chain/gainers(GetTopGainers)
- Get Losers
v1/pricestore/chain/:chain/losers(GetTopLosers)
- Get LpTokens
v1/pricestore/chain/:chain/lptokens(GetLPTokens)
- Get Price of List of tokens
v1/tokenstore/token/all(GetMultipleTokenPrice)
Token Details
- Get Token With Contract
v1/tokenstore/token/address/:address(GetTokenDetailsByContract)
- Get Token With Symbol
v1/tokenstore/token/symbol/:symbol(GetTokenDetailsBySymbol)
- Get Paginated List Of Tokens
v1/tokenstore/token/all(GetTokenList)
Assets API
- Get List of Assets
v1/:chain/address/:address/assets(GetTokenAssets)
- Get Profit and loss
v2/:chain/address/:address/userData?contract=(GetProfitAndLoss)
NFT APIs
- Get NFT assets for an address
v1/:chain/address/:address/nft-assets(GetNFTAssetsByAddress)
- Get NFT Transactions by Address
v1/:chain/address/:address/nft-transactions(GetNFTTransactionsByAddress)
- Get NFT Metadata
v1/:chain/address/:address/details?tokenId=(GetNFTDetailsByID)
- Get NFT Holders using the NFT's Token ID
v1/:chain/address/:address/nftholders?tokenId=(GetNFTHolderByID)
Transaction APIs
- Get Transaction data for an address
v1/:chain/address/:address/transactions?contract=&page=&pageSize=(GetTokenTxns)
- Get Transactions data for an address V2/Get Transactions with Price data
v2/:chain/address/:address/transactions?contract=&page=&pageSize=(GetTokenTxnsV2)
- Get Transaction details by Transaction ID
v1/:chain/transactions/:txID(GetTxnDetails)
Protocol APIs
- Get Protocol Positions for an address
v2/protocols/:protocol/address/:address/positions(GetPositions)
- Get Protocol Pairs
v2/protocols/:protocol/pairs(GetPairs)