Web
Here you'll find detailed info about the features of the Web SDK
Fetch NFTs
Fetch requested NFTs
How to import:
import { getRequestedNFTs } from '@style-protocol/sdk'
How it looks like:
const getRequestedNFTs = async ({
cursor = 0,
amount = 100,
chainId = 5,
metaverseFilter = [],
typeFilter = [],
subtypeFilter = [],
})
cursor: integer
- Start index ofgetStakes
protocol`s function (as it uses pagination).amount: integer
- Number of viewed indexes ofgetStakes
protocol`s function (as it uses pagination).chainId: integer
- Chain Id to be able to use it cross-chain.metaverseFilter: string | string[]
- Using for metaverse filter. Any alone strings are converted to[string]
. Currently possible values are:decentranland
,sandbox
,somnium_space
,cryptovoxels, fabwelt
. Use empty array to get items from all metaverses.typeFilter: string | string[]
- Using for asset type filter. Any alone strings are converted to[string]
. Currently possible values are:AVATAR
,WEARABLE
,MISC
. Use empty array to get items of all types.subtypeFilter: string | string[]
- Using for asset subtype filter. Any alone strings are converted to[string]
. Use empty array to get items of all types.
Return value:
If succeded:
[
{
tokenAddress: '0xc36442b4a4522e871399cd717abdd847ab11fe88',
tokenId: 36639,
payment: {
value: { type: 'BigNumber', hex: '0x014d1120d7b1600000' },
stringValue: '24',
},
paymentToken: {
address: '0x48d373E2B7f0930DAEF4C51CA63711bdD9b5C5B0',
name: 'USD Circle',
symbol: 'USDC',
},
type: 'AVATAR',
subtype: 'Other',
tailorId: '632422280100cd8980997351',
jobId: '633dd5ae8e81caae508afad9',
uri: 'https://stylexchange.mypinata.cloud/ipfs/QmVab2rT96LjdqTWEaQihj4CDVvq9bbm7bgTxUZ5b8YeVt',
bidder: '0xb396aedb7e8eea5b29501f5dba173d82458c8e17',
signature:
'0x531fa0f96276037b14f61ebd2bf1702594e5ed9a67e6261e763e2163a63352d34e57d1e9d2ebee6255da18f313a873255842d4b8d391a2da63a5fe043fb5de2e1b',
environment: '0x67701e71F9412Af1BcB2D77897F40139B6Ccc073',
metaverseId: 0,
adminSignature:
'0x5a16fe5d80fa1c9a3a4400babfba2e298465eb04e429e9ea0e2e0d52cf33aea404143ffb77e03487adb56c6d048c6e6390a98da8333adb0dd1070b98fdba4a401c',
asset: {
name: 'Derivative from Uniswap - 0.3% - USDC/SP - MIN<>100050',
description:
'StyleXchange derivative from Uniswap - 0.3% - USDC/SP - MIN<>100050 for DECENTRALAND',
image:
'https://stylexchange.mypinata.cloud/ipfs/QmdE18pYr2RE8toGZVC8PJ87ryfZ2u1pL73wX6y4Ansuz6',
animation_url:
'https://stylexchange.mypinata.cloud/ipfs/bafkreidqpr3ixz5wahwmpuoqwdhlwsraju3tz2wbf3nnopo4uexxnafgpu',
},
cid: 'QmSTGGifjf669XWEFA7RxHkTGDNS23GLXjzyHKPFFuhBV8',
numberOfDerivatives: 5,
},
]
If failed:
[]
Buy NFTs
Approve ERC20 tokens to protocol
Web3.js
How to import:
import { approveERC20 } from '@style-protocol/sdk'
How it looks like:
const approveERC20 = async ({ web3, walletAddress, NFT, spender })
web3: Web3
- Web3 object from web3 library (to use user's wallet).walletAddress: string
- Wallet address to use it to sign transactions.NFT: dict
- Object with NFT data (element of array taken from fetch functions).spender
: approve
- Spender of allowance.
Return value:
If succeded:
true
If failed:
false
Ethers.js
How to import:
import { approveERC20Ethers } from '@style-protocol/sdk'
How it looks like:
const approveERC20Ethers = async ({ signer, NFT, spender })
signer: Signer
- Signer object from ethers library (to use user's wallet).NFT: dict
- Object with NFT data (element of array taken from fetch functions).spender
: approve
- Spender of allowance.
Return value:
If succeded:
true
If failed:
false
Buy requested NFTs
Web3.js
How to import:
import { buyAndMintItem } from '@style-protocol/sdk'
How it looks like:
const buyAndMintItem = async ({ web3, walletAddress, chainId, NFT })
web3: Web3
- Web3 object from web3 library (to use user's wallet).walletAddress: string
- Wallet address to use it to sign transactions.chainId: integer
- Chain Id to be able to use it cross-chain.NFT: dict
- Object with NFT data (element of array taken from fetch requested NFTs function).
Return value:
If succeded:
true
If failed:
false
Ethers.js
How to import:
import { buyAndMintItemEthers } from '@style-protocol/sdk'
How it looks like:
const buyAndMintItemEthers = async ({ signer, chainId, NFT })
signer: Signer
- Signer object from ethers library (to use user's wallet).chainId: integer
- Chain Id to be able to use it cross-chain.NFT: dict
- Object with NFT data (element of array taken from fetch requested NFTs function).
Return value:
If succeded:
true
If failed:
false
Fetch Models
Our protocol uses semi-decentralized storage architecture for models conneted with our NFTs, so that only the owner is able to see his NFT's model.
Get User Proof
Web3.js
How to import:
import { getUserProof } from '@style-protocol/sdk'
How it looks like:
const getUserProof = async ({ web3, walletAddress, cached=true })
web3: Web3
- Web3 object from web3 library (to use user's wallet).walletAddress: string
- Wallet address to use it to sign transactions.cached
: bool
- If the userProof could be saved to the cache or not.
Return value:
If succeded:
{
signature: "0x00",
walletAddress: "0x00",
}
If failed:
Error
Ethers.js
How to import:
import { getUserProofEthers } from '@style-protocol/sdk'
How it looks like:
const getUserProofEthers = async ({ signer, cached=true})
signer: Signer
- Signer object from ethers library (to use user's wallet).cached
: bool
- If the User Proof could be saved to the cache or not.
Return value:
If succeded:
{
signature: "0x00",
walletAddress: "0x00",
}
If failed:
Error
Get an URL of the model
How to import:
import { getParsedURI } from '@style-protocol/sdk'
How it looks like:
const getParsedURI = async ({ uri, userProof })
uri
: string
- model_url from the NFT's metadata.userProof
: Dict
- User Proof got using the section above.
Return value:
If succeded:
https://<host>/<signature>/<walletAddress>/<modelName>
OR
ipfs://<ipfsHash> (old ones)
If failed:
Error
Last updated