Supported API key type: Secret
Description
Create or update an entry, specified by a projectId
and an address
. If the entry does not exist, this endpoint will create a new entry for the given address and return a 201. If it does exist, it will be updated and return a 200.
Use this endpoint to manage your allowlist using your own custom logic and criteria. Used in conjunction with the Attestations API, you can create powerful automations. For example, after a user completes an achievement in your game, you can have your backend call this endpoint to create an entry for your user. The user can then go to your minting site which uses the Attestations API to mint an achievement NFT right away.
You can optionally pass in attestationData
that adheres to the attestation schema set for the project to specify granular permissions and rules for each entry. The attestation data will be encoded into the signature or Merkle proof, and enforceable within your smart contract. This is nice because it allows you to keep all of this data off-chain, which saves a substantial amount of gas.
To unset custom attestation data for an entry and have it take on the default values from the attestation schema, pass null
for the attestationData
field. If attestationData
is left out of the request body, it will remain unmodified.
You must set an attestation schema for your project using the create or update attestation schema endpoint prior to attempting to save attestation data for an entry.
Request body example
{
"tentativeStatus": "selected",
"shouldFinalize": true,
"attestationData": {
"quantity": "1",
"price": "30000000000000000"
}
}
Request interface
{
tentativeStatus: "selected" | "waitlisted" | "not_selected" | "disqualified";
shouldFinalize?: boolean;
attestationData?: Record<string, string | boolean> | null;
}
Response interface
{
data: {
address: string;
status: "submitted" | "selected" | "waitlisted" | "not_selected" | "disqualified";
tentativeStatus: "selected" | "waitlisted" | "not_selected" | "disqualified";
attestationData: Record<string, string | boolean> | null;
};
}
{
error: {
message: string;
};
}