Quickly build full-stack NFT apps without slogging through Solidity. From contracts to components, we’ve got you covered.
View SDK 
Fetch metadata for any NFT on the protocol, publish customized allowlists, and keep collection data fresh with our holistic API.
View API 
With pre-built recipes, templated repos, and an interactive API modal, our docs make it easy to dive right into development.
View Documentation 
import { DecentSDK, edition, ipfs } from '@decent.xyz/sdk';
const deployNFT = async () => {
try {
nft = await edition.deploy(
sdk,
NFTData.collectionName,
NFTData.symbol,
NFTData.hasAdjustableCap,
NFTData.isSoulbound,
NFTData.editionSize,
NFTData.tokenPrice,
NFTData.maxTokensPerTxn,
NFTData.presaleMerkleRoot,
NFTData.presaleStart,
NFTData.presaleEnd,
NFTData.saleStart,
NFTData.saleEnd,
NFTData.roaylty,
NFTData.payoutAddress,
NFTData.contractURI,
NFTData.metadataURI,
NFTData.metadataRendererInit,
NFTData.tokenGateAddress,
(pending) => { console.log("Pending nonce: ", pending.nonce) },
(receipt) => { console.log("Receipt block: ", receipt.blockNumber) },
)
} catch (error) {
console.log(error)
}
}
export default function deployButton() {
return <button onClick={() => deployNFT()}>Deploy NFT</button>
}
import axios from "axios";
export const getReleases = async (symbol: string) => {
try {
const url = 'https://hq.decent.xyz/api/1.0/contracts/%2C10%2C137%2C42161'
const { data: nfts } = await axios.get(url, {
params: {
limit: 100,
page: 0,
sort: -1
},
headers: {
accept: 'application/json',
'x-api-key': `${process.env.NEXT_PUBLIC_DECENT_API_KEY}`
}
});
let projectNFTs = [];
for (let i = 0; i < nfts.data.length; i++) {
if (nfts.data[i].data.symbol === symbol) {
projectNFTs.push(nfts.data[i]);
}
}
return projectNFTs;
} catch (e) {
console.error(e)
}
}
Requestconst options = { method: 'GET', headers: { accept: 'application/json' } };
fetch('http:/ /hq. decent. xy2/api/1. 0/contracts /chainId/address', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
Response{
"data": [
{
"address": "string",
"chainId": 0,
"type": "string",
"creator": {
"address": "string",
"ensName": "string",
"isVerified": true
},
"data": {},
"metadata": {},
"mimeType": "string",
"blockNumber": 0,
"timestamp": 0
},
"meta": {
"total_results": 0,
"total_pages": 0,
"page": 0,
"limit": 0
}
]
}