Skip to main content

references

Honeycomb Protocol API Reference

Welcome to the Honeycomb Protocol GraphQL API Reference! This documentation provides all the details about the available GraphQL types, queries, mutations, and their parameters.

API Endpoints
https://edge.test.honeycombprotocol.com/

API Endpoints

Production: https://edge.test.honeycombprotocol.com/

Queries

Resources

resources

Description

Fetch resources based on provided filters. Returns an array of Resource objects.

Response

Returns [Resource!]!

Arguments
Name Description
addresses - [Bytes!] Array of resource PDA addresses. Optional
projects - [Pubkey!] Project PDA address. Optional
mints - [Pubkey!] Array of resource mint addresses. Optional

Example

Query
query Resources(
  $addresses: [Bytes!],
  $projects: [Pubkey!],
  $mints: [Pubkey!]
) {
  resources(
    addresses: $addresses,
    projects: $projects,
    mints: $mints
  ) {
    address
    bump
    project
    mint
    storage {
      kind
      params {
        ...ResourceStorageParamsFragment
      }
    }
    kind {
      kind
      params {
        ... on ResourceKindParamsHplFungible {
          ...ResourceKindParamsHplFungibleFragment
        }
        ... on ResourceKindParamsWrappedFungible {
          ...ResourceKindParamsWrappedFungibleFragment
        }
        ... on ResourceKindParamsHplNonFungible {
          ...ResourceKindParamsHplNonFungibleFragment
        }
        ... on ResourceKindParamsWrappedMplCore {
          ...ResourceKindParamsWrappedMplCoreFragment
        }
      }
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "projects": [Pubkey],
  "mints": [Pubkey]
}
Response
{
  "data": {
    "resources": [
      {
        "address": Bytes,
        "bump": 987,
        "project": Pubkey,
        "mint": Pubkey,
        "storage": ResourceStorage,
        "kind": ResourceKind
      }
    ]
  }
}

faucets

Description

Fetch faucets based on provided filters. Returns an array of Faucet objects.

Response

Returns [Faucet!]!

Arguments
Name Description
addresses - [Bytes!] Array of faucet PDA addresses. Optional
projects - [Pubkey!] Array of project PDA addresses. Optional
resources - [Pubkey!] Array of resource PDA addresses. Optional

Example

Query
query Faucets(
  $addresses: [Bytes!],
  $projects: [Pubkey!],
  $resources: [Pubkey!]
) {
  faucets(
    addresses: $addresses,
    projects: $projects,
    resources: $resources
  ) {
    address
    project
    resource
    amount
    repeatInterval
    lastClaimed
  }
}
Variables
{
  "addresses": [Bytes],
  "projects": [Pubkey],
  "resources": [Pubkey]
}
Response
{
  "data": {
    "faucets": [
      {
        "address": Bytes,
        "project": Pubkey,
        "resource": Pubkey,
        "amount": {},
        "repeatInterval": {},
        "lastClaimed": {}
      }
    ]
  }
}

createCreateNewResourceTransaction

Description

Create a transaction for creating a new resource. Returns a CreateInitResourceTransactionResponse object.

Arguments
Name Description
project - String! Project PDA address. Required
authority - String! Project authority wallet address. Required
params - InitResourceInput! Params for initializing the resource. Required
delegateAuthority - String Delegate authority for the resource. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateNewResourceTransaction(
  $project: String!,
  $authority: String!,
  $params: InitResourceInput!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateNewResourceTransaction(
    project: $project,
    authority: $authority,
    params: $params,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    resource
  }
}
Variables
{
  "project": "xyz789",
  "authority": "abc123",
  "params": InitResourceInput,
  "delegateAuthority": "xyz789",
  "payer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateNewResourceTransaction": {
      "tx": Transaction,
      "resource": Bytes
    }
  }
}

createCreateNewResourceTreeTransaction

Description

Create a transaction for creating a new resource tree. Resource trees are used to store resource ownership and usage information for resources. Returns a Transaction object.

Response

Returns a TreeSetupResponse!

Arguments
Name Description
project - String! Project PDA address. Required
resource - String! Resource PDA address. Required
authority - String! Project authority wallet address. Required
treeConfig - TreeSetupConfig! Configuration settings for the tree. Requires either the basic or advanced config. Required
delegateAuthority - String Delegate authority for the resource. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateNewResourceTreeTransaction(
  $project: String!,
  $resource: String!,
  $authority: String!,
  $treeConfig: TreeSetupConfig!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateNewResourceTreeTransaction(
    project: $project,
    resource: $resource,
    authority: $authority,
    treeConfig: $treeConfig,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    treeAddress
    proofBytes
    space
    cost
    maxTreeCapacity
  }
}
Variables
{
  "project": "abc123",
  "resource": "abc123",
  "authority": "abc123",
  "treeConfig": TreeSetupConfig,
  "delegateAuthority": "xyz789",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateNewResourceTreeTransaction": {
      "tx": Transaction,
      "treeAddress": Bytes,
      "proofBytes": 987,
      "space": 987,
      "cost": 123.45,
      "maxTreeCapacity": 123
    }
  }
}

createMintResourceTransaction

Description

Create a transaction for minting a resource. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
resource - String! Resource PDA address. This is the resource that will be minted. Required
owner - String! Owner's wallet address to mint the resource to. Required
authority - String! Project authority wallet address. Required
amount - BigInt! Amount of resource to mint. Required
delegateAuthority - String Delegate authority for the resource. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateMintResourceTransaction(
  $resource: String!,
  $owner: String!,
  $authority: String!,
  $amount: BigInt!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createMintResourceTransaction(
    resource: $resource,
    owner: $owner,
    authority: $authority,
    amount: $amount,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "resource": "abc123",
  "owner": "abc123",
  "authority": "abc123",
  "amount": {},
  "delegateAuthority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createMintResourceTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 123
    }
  }
}

createBurnResourceTransaction

Description

Create a transaction for burning a resource. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
resource - String! Resource PDA address. Required
amount - BigInt! Amount of resource to burn. Required
authority - String! Resource owner's wallet address. This will usually be a user who has the resource and wants to burn it. Required
owner - String
payer - String Payer for the transaction. Optional
delegateAuthority - String Delegate authority for the resource. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateBurnResourceTransaction(
  $resource: String!,
  $amount: BigInt!,
  $authority: String!,
  $owner: String,
  $payer: String,
  $delegateAuthority: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createBurnResourceTransaction(
    resource: $resource,
    amount: $amount,
    authority: $authority,
    owner: $owner,
    payer: $payer,
    delegateAuthority: $delegateAuthority,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "resource": "xyz789",
  "amount": {},
  "authority": "abc123",
  "owner": "abc123",
  "payer": "abc123",
  "delegateAuthority": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createBurnResourceTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createCreateUnwrapHoldingTransaction

Description

Create a transaction for unwrapping a resource. By default resources exist in a compressed state, unwrapping a resource mints that resource so it can be used in an app or even traded on a marketplace. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
resource - String! Resource PDA address. This resource will be unwrapped. Required
amount - BigInt! Amount of resource to unwrap. Required
authority - String! Resource owner's wallet address. This will usually be a user who has the wrapped resource and wants to unwrap it. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateUnwrapHoldingTransaction(
  $resource: String!,
  $amount: BigInt!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateUnwrapHoldingTransaction(
    resource: $resource,
    amount: $amount,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "resource": "xyz789",
  "amount": {},
  "authority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateUnwrapHoldingTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createCreateWrapHoldingTransaction

Description

Create a transaction for wrapping a resource. Wrapping a resource compresses it. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
resource - String! Resource PDA address. Required
amount - BigInt! Params for wrapping the resource. Required
authority - String! Resource owner's wallet address. This will usually be a user who has the unwrapped resource and wants to wrap it. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateWrapHoldingTransaction(
  $resource: String!,
  $amount: BigInt!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateWrapHoldingTransaction(
    resource: $resource,
    amount: $amount,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "resource": "abc123",
  "amount": {},
  "authority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateWrapHoldingTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createTransferResourceTransaction

Description

Create a transaction for transferring a resource. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
resource - String! Resource PDA address. The owner must have this resource to transfer. Required
owner - String! Resource owner's wallet address. This user must already have the resource. Required
recipient - String! Recipient address to transfer the resource to. Required
amount - BigInt! Amount of resource to transfer. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateTransferResourceTransaction(
  $resource: String!,
  $owner: String!,
  $recipient: String!,
  $amount: BigInt!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createTransferResourceTransaction(
    resource: $resource,
    owner: $owner,
    recipient: $recipient,
    amount: $amount,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "resource": "xyz789",
  "owner": "abc123",
  "recipient": "abc123",
  "amount": {},
  "payer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createTransferResourceTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

Crafting

recipes

Description

Fetch recipes based on provided filters. Returns an array of Recipe objects.

Response

Returns [Recipe!]!

Arguments
Name Description
addresses - [Bytes!] Array of recipe PDA addresses. Optional
projects - [Pubkey!] Project PDA addresses. Optional

Example

Query
query Recipes(
  $addresses: [Bytes!],
  $projects: [Pubkey!]
) {
  recipes(
    addresses: $addresses,
    projects: $projects
  ) {
    address
    bump
    project
    key
    xp
    ingredients {
      resourceAddress
      amount
    }
    meal {
      resourceAddress
      amount
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "projects": [Pubkey]
}
Response
{
  "data": {
    "recipes": [
      {
        "address": Bytes,
        "bump": 987,
        "project": Pubkey,
        "key": Pubkey,
        "xp": {},
        "ingredients": [Ingredient],
        "meal": Meal
      }
    ]
  }
}

createInitializeRecipeTransaction

Description

Create a transaction for a new recipe. Returns a CreateInitializeRecipeTransactionResponse object.

Arguments
Name Description
project - String! Project PDA address. Required
xp - BigInt! Experience points required for the recipe. Only profiles with at least this much experience can craft the recipe. Required
ingredients - [IngredientsInput!]! Array of ingredients for the recipe. Required
meal - MealInput! Information about the resource produced by the recipe. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the recipe. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateInitializeRecipeTransaction(
  $project: String!,
  $xp: BigInt!,
  $ingredients: [IngredientsInput!]!,
  $meal: MealInput!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createInitializeRecipeTransaction(
    project: $project,
    xp: $xp,
    ingredients: $ingredients,
    meal: $meal,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions {
      transactions
      blockhash
      lastValidBlockHeight
    }
    recipe
  }
}
Variables
{
  "project": "abc123",
  "xp": {},
  "ingredients": [IngredientsInput],
  "meal": MealInput,
  "authority": "abc123",
  "delegateAuthority": "xyz789",
  "payer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createInitializeRecipeTransaction": {
      "transactions": Transactions,
      "recipe": Bytes
    }
  }
}

createAddIngredientsTransaction

Description

Create transactions for adding ingredients to an existing recipe. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
recipe - String! Recipe PDA address to add ingredients to. Required
ingredients - [IngredientsInput!]! Array of ingredients to add to the recipe. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the recipe. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateAddIngredientsTransaction(
  $recipe: String!,
  $ingredients: [IngredientsInput!]!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createAddIngredientsTransaction(
    recipe: $recipe,
    ingredients: $ingredients,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "recipe": "abc123",
  "ingredients": [IngredientsInput],
  "authority": "abc123",
  "delegateAuthority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createAddIngredientsTransaction": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createRemoveIngredientsTransaction

Description

Create transactions for removing ingredients from an existing recipe. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
recipe - String! Recipe PDA address to remove ingredients from. Required
ingredients - [String!]! Array of resource PDA addresses to remove as the recipe ingredients. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the recipe. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateRemoveIngredientsTransaction(
  $recipe: String!,
  $ingredients: [String!]!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createRemoveIngredientsTransaction(
    recipe: $recipe,
    ingredients: $ingredients,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "recipe": "xyz789",
  "ingredients": ["xyz789"],
  "authority": "abc123",
  "delegateAuthority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createRemoveIngredientsTransaction": {
      "transactions": [Bytes],
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createInitCookingProcessTransactions

Description

Step 1 in crafting/cooking. Create a transaction for beginning the cooking process. Returns a CreateBeginCookingTransactionResponse object.

Response

Returns a Transactions!

Arguments
Name Description
recipe - String! Recipe PDA address. Required
authority - String! Authority for cooking. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateInitCookingProcessTransactions(
  $recipe: String!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createInitCookingProcessTransactions(
    recipe: $recipe,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "recipe": "xyz789",
  "authority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createInitCookingProcessTransactions": {
      "transactions": [Bytes],
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

Mission

mission

Description

Fetch missions based on provided filters. Returns an array of Mission objects.

Response

Returns [Mission!]!

Arguments
Name Description
addresses - [Bytes!] Array of mission PDA addresses. Optional
missionPools - [Pubkey!] Array of mission pool PDA addresses. Optional

Example

Query
query Mission(
  $addresses: [Bytes!],
  $missionPools: [Pubkey!]
) {
  mission(
    addresses: $addresses,
    missionPools: $missionPools
  ) {
    address
    program_id
    discriminator
    bump
    project
    missionPool
    name
    minXp
    cost {
      amount
      resource_address
    }
    requirement {
      ... on TimeRequirement {
        ...TimeRequirementFragment
      }
    }
    rewards {
      min
      max
      rewardType {
        ... on XpRewardType {
          ...XpRewardTypeFragment
        }
        ... on ResourceRewardType {
          ...ResourceRewardTypeFragment
        }
      }
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "missionPools": [Pubkey]
}
Response
{
  "data": {
    "mission": [
      {
        "address": Bytes,
        "program_id": Bytes,
        "discriminator": Bytes,
        "bump": 123,
        "project": Pubkey,
        "missionPool": Pubkey,
        "name": "abc123",
        "minXp": {},
        "cost": MissionCost,
        "requirement": TimeRequirement,
        "rewards": [Reward]
      }
    ]
  }
}

missionPool

Description

Fetch mission pools based on provided filters. Returns an array of MissionPool objects. @group('Mission')

Response

Returns [MissionPool!]!

Arguments
Name Description
addresses - [Bytes!] Array of mission pool PDA addresses. Optional
project - Pubkey Project PDA address. Optional

Example

Query
query MissionPool(
  $addresses: [Bytes!],
  $project: Pubkey
) {
  missionPool(
    addresses: $addresses,
    project: $project
  ) {
    address
    program_id
    discriminator
    bump
    project
    name
    factionsMerkleRoot
    randomizerRound
    characterModels
    guildKits
  }
}
Variables
{
  "addresses": [Bytes],
  "project": Pubkey
}
Response
{
  "data": {
    "missionPool": [
      {
        "address": Bytes,
        "program_id": Bytes,
        "discriminator": Bytes,
        "bump": 987,
        "project": Pubkey,
        "name": "abc123",
        "factionsMerkleRoot": Bytes,
        "randomizerRound": 987,
        "characterModels": [Pubkey],
        "guildKits": [123]
      }
    ]
  }
}

createCreateMissionPoolTransaction

Description

Create a transaction for a new mission pool. Returns a CreateCreateMissionPoolTransactionResponse object.

Arguments
Name Description
data - NewMissionPoolData! Metadata for creating the mission pool. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateMissionPoolTransaction(
  $data: NewMissionPoolData!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateMissionPoolTransaction(
    data: $data,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    missionPoolAddress
  }
}
Variables
{
  "data": NewMissionPoolData,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateMissionPoolTransaction": {
      "tx": Transaction,
      "missionPoolAddress": Bytes
    }
  }
}

createUpdateMissionPoolTransaction

Description

Create a transaction for updating a mission pool. Returns a CreateUpdateMissionPoolTransactionResponse object.

Arguments
Name Description
data - UpdateMissionPoolData! Metadata for updating the mission pool. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateMissionPoolTransaction(
  $data: UpdateMissionPoolData!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateMissionPoolTransaction(
    data: $data,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
  }
}
Variables
{
  "data": UpdateMissionPoolData,
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createUpdateMissionPoolTransaction": {
      "tx": Transaction
    }
  }
}

createCreateMissionTransaction

Description

Create a transaction for a new mission. Returns a CreateCreateMissionTransactionResponse object.

Arguments
Name Description
data - NewMissionData! Metadata for creating the mission. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateMissionTransaction(
  $data: NewMissionData!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateMissionTransaction(
    data: $data,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    missionAddress
  }
}
Variables
{
  "data": NewMissionData,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateMissionTransaction": {
      "tx": Transaction,
      "missionAddress": Bytes
    }
  }
}

createUpdateMissionTransaction

Description

Create a transaction for updating an existing mission.

Response

Returns a Transaction!

Arguments
Name Description
missionAddress - String! Mission address. Required
authority - String! Authority for Mission. Required
params - UpdateMissionInput! Update params for the mission. Required
payer - String Payer for the transaction. Optional
delegateAuthority - String Delegate authority for the mission. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateMissionTransaction(
  $missionAddress: String!,
  $authority: String!,
  $params: UpdateMissionInput!,
  $payer: String,
  $delegateAuthority: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateMissionTransaction(
    missionAddress: $missionAddress,
    authority: $authority,
    params: $params,
    payer: $payer,
    delegateAuthority: $delegateAuthority,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "missionAddress": "xyz789",
  "authority": "xyz789",
  "params": UpdateMissionInput,
  "payer": "abc123",
  "delegateAuthority": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createUpdateMissionTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createSendCharactersOnMissionTransaction

Description

Create transactions for sending characters on a mission. The characters' character model must be allowed to participate in the mission (see updateMission). Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
data - ParticipateOnMissionData! Metadata for sending characters on a mission. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateSendCharactersOnMissionTransaction(
  $data: ParticipateOnMissionData!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createSendCharactersOnMissionTransaction(
    data: $data,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "data": ParticipateOnMissionData,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createSendCharactersOnMissionTransaction": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 123
    }
  }
}

Staking

stakingPools

Description

Fetch staking pools based on provided filters. Returns an array of StakingPool objects.

Response

Returns [StakingPool!]!

Arguments
Name Description
addresses - [Bytes!] Array of staking pool PDA addresses. Optional
projects - [Pubkey!] Array of project PDA addresses. Optional
names - [String!] Array of staking pool names. Optional

Example

Query
query StakingPools(
  $addresses: [Bytes!],
  $projects: [Pubkey!],
  $names: [String!]
) {
  stakingPools(
    addresses: $addresses,
    projects: $projects,
    names: $names
  ) {
    address
    bump
    project
    key
    resource
    lockType {
      kind
    }
    name
    rewardsPerDuration
    rewardsDuration
    maxRewardsDuration
    minStakeDuration
    cooldownDuration
    resetStakeDuration
    allowedMints
    totalStaked
    startTime
    endTime
    characterModels
  }
}
Variables
{
  "addresses": [Bytes],
  "projects": [Pubkey],
  "names": ["abc123"]
}
Response
{
  "data": {
    "stakingPools": [
      {
        "address": Bytes,
        "bump": 123,
        "project": Pubkey,
        "key": Pubkey,
        "resource": Pubkey,
        "lockType": LockType,
        "name": "abc123",
        "rewardsPerDuration": {},
        "rewardsDuration": {},
        "maxRewardsDuration": {},
        "minStakeDuration": {},
        "cooldownDuration": {},
        "resetStakeDuration": false,
        "allowedMints": true,
        "totalStaked": {},
        "startTime": {},
        "endTime": {},
        "characterModels": [Pubkey]
      }
    ]
  }
}

multipliers

Description

Fetch staking multipliers based on provided filters. Returns an array of Multipliers objects.

Response

Returns [Multipliers!]!

Arguments
Name Description
addresses - [Bytes!] Array of multiplier PDA addresses. Optional
stakingPools - [Pubkey!] Array of staking pool PDA addresses. Optional

Example

Query
query Multipliers(
  $addresses: [Bytes!],
  $stakingPools: [Pubkey!]
) {
  multipliers(
    addresses: $addresses,
    stakingPools: $stakingPools
  ) {
    address
    bump
    stakingPool
    decimals
    durationMultipliers {
      value
      multiplierType {
        ...MultiplierTypeFragment
      }
    }
    countMultipliers {
      value
      multiplierType {
        ...MultiplierTypeFragment
      }
    }
    creatorMultipliers {
      value
      multiplierType {
        ...MultiplierTypeFragment
      }
    }
    collectionMultipliers {
      value
      multiplierType {
        ...MultiplierTypeFragment
      }
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "stakingPools": [Pubkey]
}
Response
{
  "data": {
    "multipliers": [
      {
        "address": Bytes,
        "bump": 987,
        "stakingPool": Pubkey,
        "decimals": 987,
        "durationMultipliers": [Multiplier],
        "countMultipliers": [Multiplier],
        "creatorMultipliers": [Multiplier],
        "collectionMultipliers": [Multiplier]
      }
    ]
  }
}

stakers

Description

Fetch stakers based on provided filters. Returns an array of Staker objects. Returns an array of Staker objects.

Response

Returns [Staker!]!

Arguments
Name Description
addresses - [Bytes!] Array of staker PDA addresses. Optional
stakingPools - [Pubkey!] Array of staking pool PDA addresses. Optional
wallets - [Pubkey!] List of user wallet addresses. Optional

Example

Query
query Stakers(
  $addresses: [Bytes!],
  $stakingPools: [Pubkey!],
  $wallets: [Pubkey!]
) {
  stakers(
    addresses: $addresses,
    stakingPools: $stakingPools,
    wallets: $wallets
  ) {
    address
    bump
    stakingPool
    wallet
    totalStaked
  }
}
Variables
{
  "addresses": [Bytes],
  "stakingPools": [Pubkey],
  "wallets": [Pubkey]
}
Response
{
  "data": {
    "stakers": [
      {
        "address": Bytes,
        "bump": 123,
        "stakingPool": Pubkey,
        "wallet": Pubkey,
        "totalStaked": {}
      }
    ]
  }
}

createCreateStakingPoolTransaction

Description

Create a transaction for a new staking pool. Returns a CreateCreateStakingPoolTransactionResponse object.

Arguments
Name Description
project - String! Project address. Required
resource - String! Resource address. This resource will be used for staking pool rewards. Required
metadata - CreateStakingPoolMetadataInput! Metadata information of the staking pool. Required
authority - String! Project authority wallet address. Required
multiplier - InitStakingMultiplierMetadataInput Metadata information for initializing staking multipliers. Optional
delegateAuthority - String Delegate authority for the staking pool. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateStakingPoolTransaction(
  $project: String!,
  $resource: String!,
  $metadata: CreateStakingPoolMetadataInput!,
  $authority: String!,
  $multiplier: InitStakingMultiplierMetadataInput,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateStakingPoolTransaction(
    project: $project,
    resource: $resource,
    metadata: $metadata,
    authority: $authority,
    multiplier: $multiplier,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions {
      transactions
      blockhash
      lastValidBlockHeight
    }
    stakingPoolAddress
    multipliersAddress
  }
}
Variables
{
  "project": "xyz789",
  "resource": "xyz789",
  "metadata": CreateStakingPoolMetadataInput,
  "authority": "abc123",
  "multiplier": InitStakingMultiplierMetadataInput,
  "delegateAuthority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateStakingPoolTransaction": {
      "transactions": Transactions,
      "stakingPoolAddress": Bytes,
      "multipliersAddress": Bytes
    }
  }
}

createUpdateStakingPoolTransaction

Description

Create a transaction for updating an existing staking pool. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Project PDA address. Required
stakingPool - String! Staking pool PDA address. This is the staking pool that will be updated Required
metadata - UpdateStakingPoolMetadataInput Metadata information to update for the staking pool. Optional
authority - String! Project authority wallet address. Required
characterModel - String Character model to add to the staking pool. Optional
resource - String Resource address. In case the Resource needs to be updated/replaced. Optional
delegateAuthority - String Delegate authority for the staking pool. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateStakingPoolTransaction(
  $project: String!,
  $stakingPool: String!,
  $metadata: UpdateStakingPoolMetadataInput,
  $authority: String!,
  $characterModel: String,
  $resource: String,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateStakingPoolTransaction(
    project: $project,
    stakingPool: $stakingPool,
    metadata: $metadata,
    authority: $authority,
    characterModel: $characterModel,
    resource: $resource,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "abc123",
  "stakingPool": "xyz789",
  "metadata": UpdateStakingPoolMetadataInput,
  "authority": "xyz789",
  "characterModel": "abc123",
  "resource": "xyz789",
  "delegateAuthority": "xyz789",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createUpdateStakingPoolTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createInitMultipliersTransaction

Description

Create a transaction for new staking multipliers. Returns a CreateInitMultipliersTransactionResponse object.

Arguments
Name Description
project - String! Project PDA address. Required
stakingPool - String! Staking pool PDA address. Required
decimals - Int! Number of decimal places for the multipliers. Example: 2 for 0.01; the smallest unit in this case would be 0.01, and passing 1 would mean 1% extra rewards. Required
multipliers - [AddMultiplierMetadataInput]! Array of multipliers to add, including metadata information. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the staking pool. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateInitMultipliersTransaction(
  $project: String!,
  $stakingPool: String!,
  $decimals: Int!,
  $multipliers: [AddMultiplierMetadataInput]!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createInitMultipliersTransaction(
    project: $project,
    stakingPool: $stakingPool,
    decimals: $decimals,
    multipliers: $multipliers,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    multipliersAddress
  }
}
Variables
{
  "project": "abc123",
  "stakingPool": "abc123",
  "decimals": 123,
  "multipliers": [AddMultiplierMetadataInput],
  "authority": "abc123",
  "delegateAuthority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createInitMultipliersTransaction": {
      "tx": Transaction,
      "multipliersAddress": Bytes
    }
  }
}

createAddMultiplierTransaction

Description

Create a transaction for adding a multiplier. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Project PDA address. Required
multiplier - String! Multiplier PDA address. Required
metadata - AddMultiplierMetadataInput! Metadata information that will be added to the existing multiplier. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the staking pool. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateAddMultiplierTransaction(
  $project: String!,
  $multiplier: String!,
  $metadata: AddMultiplierMetadataInput!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createAddMultiplierTransaction(
    project: $project,
    multiplier: $multiplier,
    metadata: $metadata,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "xyz789",
  "multiplier": "xyz789",
  "metadata": AddMultiplierMetadataInput,
  "authority": "xyz789",
  "delegateAuthority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createAddMultiplierTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createStakeCharactersTransactions

Description

Create transactions for staking characters on an existing staking pool. The characters' character model must be allowed to stake on the staking pool (see updateStakingPool). Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
characterAddresses - [String!]! Array of character addresses. Required
project - String! Project address. Required
characterModel - String! Character model associated with the characters. Required
stakingPool - String! Staking pool PDA address. The characters' character model should be allowed to stake on this staking pool. Required
feePayer - String Fee payer for the transactions. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateStakeCharactersTransactions(
  $characterAddresses: [String!]!,
  $project: String!,
  $characterModel: String!,
  $stakingPool: String!,
  $feePayer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createStakeCharactersTransactions(
    characterAddresses: $characterAddresses,
    project: $project,
    characterModel: $characterModel,
    stakingPool: $stakingPool,
    feePayer: $feePayer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "characterAddresses": ["xyz789"],
  "project": "abc123",
  "characterModel": "xyz789",
  "stakingPool": "abc123",
  "feePayer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createStakeCharactersTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createClaimStakingRewardsTransactions

Description

Create transactions for claiming staking rewards. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
characterAddresses - [String!]! Array of character addresses to claim rewards for. Required
characterModel - String! Character model associated with the characters. Required
feePayer - String Fee payer for the transactions. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateClaimStakingRewardsTransactions(
  $characterAddresses: [String!]!,
  $characterModel: String!,
  $feePayer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createClaimStakingRewardsTransactions(
    characterAddresses: $characterAddresses,
    characterModel: $characterModel,
    feePayer: $feePayer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "characterAddresses": ["abc123"],
  "characterModel": "xyz789",
  "feePayer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createClaimStakingRewardsTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createUnstakeCharactersTransactions

Description

Create transactions for unstaking characters. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
characterAddresses - [String!]! Array of character addresses to unstake. Required
characterModel - String! Character model associated with the characters. Required
feePayer - String Fee payer for the transactions. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUnstakeCharactersTransactions(
  $characterAddresses: [String!]!,
  $characterModel: String!,
  $feePayer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUnstakeCharactersTransactions(
    characterAddresses: $characterAddresses,
    characterModel: $characterModel,
    feePayer: $feePayer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "characterAddresses": ["xyz789"],
  "characterModel": "abc123",
  "feePayer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createUnstakeCharactersTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

Character

characterTrait

Description

Fetch character traits based on provided filters. Returns an array of CharacterTrait objects.

Response

Returns [CharacterTrait!]!

Arguments
Name Description
addresses - [Bytes!] Array of character trait addresses. Optional
trees - [Bytes!] Array of merkle tree addresses to filter character traits. Optional
includeProof - Boolean Whether to include proof in the response. Defaults to false. Optional

Example

Query
query CharacterTrait(
  $addresses: [Bytes!],
  $trees: [Bytes!],
  $includeProof: Boolean
) {
  characterTrait(
    addresses: $addresses,
    trees: $trees,
    includeProof: $includeProof
  ) {
    address
    tree_id
    leaf_idx
    label
    name
    uri
    proof {
      root
      proof
      node_index
      leaf
      maxDepth
      leaf_index
      tree_id
      canopy_depth
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "trees": [Bytes],
  "includeProof": true
}
Response
{
  "data": {
    "characterTrait": [
      {
        "address": Bytes,
        "tree_id": Bytes,
        "leaf_idx": {},
        "label": "xyz789",
        "name": "abc123",
        "uri": "abc123",
        "proof": Proof
      }
    ]
  }
}

characterModel

Description

Fetch character models based on provided filters. Returns an array of CharacterModel objects.

Response

Returns [CharacterModel!]!

Arguments
Name Description
addresses - [Bytes!] Array of character model addresses. Optional
project - Pubkey Project address to filter character models. Optional

Example

Query
query CharacterModel(
  $addresses: [Bytes!],
  $project: Pubkey
) {
  characterModel(
    addresses: $addresses,
    project: $project
  ) {
    address
    program_id
    discriminator
    bump
    key
    project
    config {
      ... on CharacterConfigWrapped {
        ...CharacterConfigWrappedFragment
      }
      ... on CharacterConfigAssembled {
        ...CharacterConfigAssembledFragment
      }
    }
    attributes
    merkle_trees {
      active
      schema
      merkle_trees
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "project": Pubkey
}
Response
{
  "data": {
    "characterModel": [
      {
        "address": Bytes,
        "program_id": Bytes,
        "discriminator": Bytes,
        "bump": 123,
        "key": Pubkey,
        "project": Pubkey,
        "config": CharacterConfigWrapped,
        "attributes": VecMapGeneric,
        "merkle_trees": ControlledMerkleTrees
      }
    ]
  }
}

character

Description

Fetch characters based on provided filters. Returns an array of Character objects.

Response

Returns [Character!]!

Arguments
Name Description
addresses - [Bytes!] Array of character addresses. Optional
filters - CharactersFilter Additional filter criteria for fetching characters. Optional
trees - [Bytes!] Array of tree addresses to filter characters. Any characters stored in these trees will be fetched. Optional
wallets - [Pubkey!] Array of owner wallet addresses to filter characters. Any characters these wallet adddresses own will be fetched. Optional
mints - [Pubkey!] Array of NFT/cNFT mint addresses to filter characters. Note that this is different from the character addresses. Mints in this context refer to the NFT/cNFT addresses before they were used to create a character. Optional
attributeHashes - [Pubkey!] Array of attribute hashes to filter characters by. Optional
includeProof - Boolean Whether to include proof in the response. Defaults to false. Optional

Example

Query
query Character(
  $addresses: [Bytes!],
  $filters: CharactersFilter,
  $trees: [Bytes!],
  $wallets: [Pubkey!],
  $mints: [Pubkey!],
  $attributeHashes: [Pubkey!],
  $includeProof: Boolean
) {
  character(
    addresses: $addresses,
    filters: $filters,
    trees: $trees,
    wallets: $wallets,
    mints: $mints,
    attributeHashes: $attributeHashes,
    includeProof: $includeProof
  ) {
    address
    tree_id
    leaf_idx
    owner
    source {
      kind
      params {
        ... on Wrapped {
          ...WrappedFragment
        }
        ... on Assembled {
          ...AssembledFragment
        }
      }
    }
    usedBy {
      kind
      params {
        ... on UsedByStaking {
          ...UsedByStakingFragment
        }
        ... on UsedByMission {
          ...UsedByMissionFragment
        }
        ... on UsedByGuild {
          ...UsedByGuildFragment
        }
        ... on UsedByEjected {
          ...UsedByEjectedFragment
        }
        ... on UsedByCustom {
          ...UsedByCustomFragment
        }
      }
    }
    proof {
      root
      proof
      node_index
      leaf
      maxDepth
      leaf_index
      tree_id
      canopy_depth
    }
    asset
  }
}
Variables
{
  "addresses": [Bytes],
  "filters": CharactersFilter,
  "trees": [Bytes],
  "wallets": [Pubkey],
  "mints": [Pubkey],
  "attributeHashes": [Pubkey],
  "includeProof": true
}
Response
{
  "data": {
    "character": [
      {
        "address": Bytes,
        "tree_id": Bytes,
        "leaf_idx": {},
        "owner": Pubkey,
        "source": CharacterSource,
        "usedBy": CharacterUsedBy,
        "proof": Proof,
        "asset": {}
      }
    ]
  }
}

characterHistory

Description

Fetch character history based on provided filters. Returns an array of CharacterHistory objects.

Response

Returns [CharacterHistory!]!

Arguments
Name Description
addresses - [Bytes!]! Array of character addresses to fetch history for. Required
event - [String!] Array of event names to filter character history by. Optional

Example

Query
query CharacterHistory(
  $addresses: [Bytes!]!,
  $event: [String!]
) {
  characterHistory(
    addresses: $addresses,
    event: $event
  ) {
    address
    event
    event_data
    time
  }
}
Variables
{
  "addresses": [Bytes],
  "event": ["abc123"]
}
Response
{
  "data": {
    "characterHistory": [
      {
        "address": Bytes,
        "event": "abc123",
        "event_data": {},
        "time": "abc123"
      }
    ]
  }
}

createAddCharacterTraitsTransactions

Description

Create transactions for adding character traits. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
assemblerConfig - String! Assembler config address. Required
traits - [CharacterTraitInput!]! Array of character traits to add to the assembler config. Required
authority - String! Project authority's public key. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateAddCharacterTraitsTransactions(
  $assemblerConfig: String!,
  $traits: [CharacterTraitInput!]!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createAddCharacterTraitsTransactions(
    assemblerConfig: $assemblerConfig,
    traits: $traits,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "assemblerConfig": "xyz789",
  "traits": [CharacterTraitInput],
  "authority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createAddCharacterTraitsTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createRemoveCharacterTraitsTransactions

Description

Create transactions for removing character traits. Returns an array of Transactions objects.

Response

Returns a Transactions!

Arguments
Name Description
assemblerConfig - String! Assembler config address. Required
traitsAddresses - [String!]! Array of character traits Addresses to remove from the assembler config. Required
authority - String! Project authority's public key. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateRemoveCharacterTraitsTransactions(
  $assemblerConfig: String!,
  $traitsAddresses: [String!]!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createRemoveCharacterTraitsTransactions(
    assemblerConfig: $assemblerConfig,
    traitsAddresses: $traitsAddresses,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "assemblerConfig": "xyz789",
  "traitsAddresses": ["xyz789"],
  "authority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createRemoveCharacterTraitsTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 123
    }
  }
}

createCreateCharacterModelTransaction

Description

Create a transaction for a new character model. Returns a CreateCharacterModelTransactionResponse object.

Arguments
Name Description
config - CharacterConfigInput! Configuration options for the characters that will be created using this model. Required
attributes - VecMapGeneric Attributes for the character model. Optional
project - String! Project PDA address. Required
authority - String! Project authority's public key. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateCharacterModelTransaction(
  $config: CharacterConfigInput!,
  $attributes: VecMapGeneric,
  $project: String!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateCharacterModelTransaction(
    config: $config,
    attributes: $attributes,
    project: $project,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    characterModel
  }
}
Variables
{
  "config": CharacterConfigInput,
  "attributes": VecMapGeneric,
  "project": "abc123",
  "authority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateCharacterModelTransaction": {
      "tx": Transaction,
      "characterModel": Bytes
    }
  }
}

createCreateCharactersTreeTransaction

Description

Create a transaction for a new characters tree. Character trees are used to store character ownership and usage information for characters that belong to a certain character model. Returns a Transaction object.

Response

Returns a TreeSetupResponse!

Arguments
Name Description
treeConfig - TreeSetupConfig! Configuration settings for the tree. Requires either the basic or advanced config. Required
project - String! Project PDA address. Required
characterModel - String! Character model address. All characters that get created based on this model will be saved in this tree. Required
authority - String! Project authority public key. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateCharactersTreeTransaction(
  $treeConfig: TreeSetupConfig!,
  $project: String!,
  $characterModel: String!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateCharactersTreeTransaction(
    treeConfig: $treeConfig,
    project: $project,
    characterModel: $characterModel,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    treeAddress
    proofBytes
    space
    cost
    maxTreeCapacity
  }
}
Variables
{
  "treeConfig": TreeSetupConfig,
  "project": "abc123",
  "characterModel": "abc123",
  "authority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateCharactersTreeTransaction": {
      "tx": Transaction,
      "treeAddress": Bytes,
      "proofBytes": 987,
      "space": 987,
      "cost": 123.45,
      "maxTreeCapacity": 987
    }
  }
}

createAssembleCharacterTransaction

Description

Create a transaction for assembling a character. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
attributes - VecMapGeneric! Array of attributes to associate with the character. These attributes and their values must already exist in the assembler. Required
project - String! Project PDA address. Required
assemblerConfig - String! Character assembler address. Required
characterModel - String! Character model address. This model will be used to create the character. Required
charactersTree - String! Address of the characters tree in which this character will be stored. This tree should already exist and be associated with the provided character model. Required
wallet - String! Wallet address for which this character will be created. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateAssembleCharacterTransaction(
  $attributes: VecMapGeneric!,
  $project: String!,
  $assemblerConfig: String!,
  $characterModel: String!,
  $charactersTree: String!,
  $wallet: String!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createAssembleCharacterTransaction(
    attributes: $attributes,
    project: $project,
    assemblerConfig: $assemblerConfig,
    characterModel: $characterModel,
    charactersTree: $charactersTree,
    wallet: $wallet,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "attributes": VecMapGeneric,
  "project": "xyz789",
  "assemblerConfig": "xyz789",
  "characterModel": "xyz789",
  "charactersTree": "abc123",
  "wallet": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createAssembleCharacterTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createUpdateCharacterTraitsTransaction

Description

Create a transaction for updating a character's traits. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
characterAddress - String! Character address. This character will be updated. Required
attributes - VecMapGeneric! Array of attributes to update for the character. These attributes must already exist in the assembler config. Required
project - String! Project PDA address. Required
assemblerConfig - String! Assembler config address. Required
characterModel - String! Character model address. This model will be used to create the character. Required
charactersTree - String! Characters tree address. This tree should already exist and be associated with the provided character model. Required
wallet - String! Wallet address of the character owner. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateCharacterTraitsTransaction(
  $characterAddress: String!,
  $attributes: VecMapGeneric!,
  $project: String!,
  $assemblerConfig: String!,
  $characterModel: String!,
  $charactersTree: String!,
  $wallet: String!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateCharacterTraitsTransaction(
    characterAddress: $characterAddress,
    attributes: $attributes,
    project: $project,
    assemblerConfig: $assemblerConfig,
    characterModel: $characterModel,
    charactersTree: $charactersTree,
    wallet: $wallet,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "characterAddress": "xyz789",
  "attributes": VecMapGeneric,
  "project": "abc123",
  "assemblerConfig": "xyz789",
  "characterModel": "abc123",
  "charactersTree": "xyz789",
  "wallet": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createUpdateCharacterTraitsTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createPopulateAssembleablCharacterTransaction

Description

Create a transaction for populating an assembleable character. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
attributes - VecMapGeneric! Array of attributes to associate with the character. Required
project - String! Project PDA address. Required
characterModel - String! Character model address. This model will be used to create the character. Required
charactersTree - String! Characters tree address. This tree should already exist and be associated with the provided character model. Required
mint - String! NFT/cNFT mint address. This NFT should fit the criteria defined in the character model. Required
owner - String! Wallet address for which this character will be created. Required
updateAuthority - String! Character's update authority. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreatePopulateAssembleablCharacterTransaction(
  $attributes: VecMapGeneric!,
  $project: String!,
  $characterModel: String!,
  $charactersTree: String!,
  $mint: String!,
  $owner: String!,
  $updateAuthority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createPopulateAssembleablCharacterTransaction(
    attributes: $attributes,
    project: $project,
    characterModel: $characterModel,
    charactersTree: $charactersTree,
    mint: $mint,
    owner: $owner,
    updateAuthority: $updateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "attributes": VecMapGeneric,
  "project": "abc123",
  "characterModel": "xyz789",
  "charactersTree": "xyz789",
  "mint": "xyz789",
  "owner": "abc123",
  "updateAuthority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createPopulateAssembleablCharacterTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createWrapAssetsToCharacterTransactions

Description

Create transactions for wrapping assets to a character. Wrapping freezes the assets and creates a new character. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
mintList - [String!]! Array of NFT/cNFT addresses to create characters from. These NFTs should fit the criteria defined in the character model. Required
project - String! Project PDA address. Required
characterModel - String! Character model address. This model will be used to create the character. Required
wallet - String!
libreplexDeployment - String Libreplex deployment identifier. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateWrapAssetsToCharacterTransactions(
  $mintList: [String!]!,
  $project: String!,
  $characterModel: String!,
  $wallet: String!,
  $libreplexDeployment: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createWrapAssetsToCharacterTransactions(
    mintList: $mintList,
    project: $project,
    characterModel: $characterModel,
    wallet: $wallet,
    libreplexDeployment: $libreplexDeployment,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "mintList": ["xyz789"],
  "project": "abc123",
  "characterModel": "abc123",
  "wallet": "xyz789",
  "libreplexDeployment": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createWrapAssetsToCharacterTransactions": {
      "transactions": [Bytes],
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createUnwrapAssetsFromCharacterTransactions

Description

Create transactions for unwrapping assets from a character. Unwrapping unfreezes the assets and removes the character from Honeycomb. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
characterAddresses - [String!]! Array of character addresses. These characters will be unwrapped. Required
project - String! Project PDA address. Required
characterModel - String! Character model address. This is the model that was used when wrapping the character. Required
wallet - String! Character owner's wallet address. Required
libreplexDeployment - String Libreplex deployment identifier. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUnwrapAssetsFromCharacterTransactions(
  $characterAddresses: [String!]!,
  $project: String!,
  $characterModel: String!,
  $wallet: String!,
  $libreplexDeployment: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUnwrapAssetsFromCharacterTransactions(
    characterAddresses: $characterAddresses,
    project: $project,
    characterModel: $characterModel,
    wallet: $wallet,
    libreplexDeployment: $libreplexDeployment,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "characterAddresses": ["xyz789"],
  "project": "abc123",
  "characterModel": "xyz789",
  "wallet": "abc123",
  "libreplexDeployment": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createUnwrapAssetsFromCharacterTransactions": {
      "transactions": [Bytes],
      "blockhash": "xyz789",
      "lastValidBlockHeight": 123
    }
  }
}

createRecallCharactersTransaction

Description

Create transactions for recalling characters from a mission. If the characters are eligible for rewards, they'll be claimed as well. Returns a Transactions object.

Response

Returns a Transactions!

Arguments
Name Description
data - RecallFromMissionData! Metadata for recalling characters from a mission. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateRecallCharactersTransaction(
  $data: RecallFromMissionData!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createRecallCharactersTransaction(
    data: $data,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "data": RecallFromMissionData,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createRecallCharactersTransaction": {
      "transactions": [Bytes],
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

Utils

sendTransactionBundles

Description

Execute transactions Bundles on the Solana blockchain. Used after creating a transaction with the other APIs and signing it.

Arguments
Name Description
txs - [Bytes!]! Array of serialized transactions to send. Required
blockhash - String! Blockhash associated with the transactions. Required
lastValidBlockHeight - Int! Block height associated with the transactions. Required
options - SendTransactionBundlesOptions Options for sending the transaction bundles. Optional

Example

Query
query SendTransactionBundles(
  $txs: [Bytes!]!,
  $blockhash: String!,
  $lastValidBlockHeight: Int!,
  $options: SendTransactionBundlesOptions
) {
  sendTransactionBundles(
    txs: $txs,
    blockhash: $blockhash,
    lastValidBlockHeight: $lastValidBlockHeight,
    options: $options
  ) {
    bundleId
    responses {
      signature
      error
      status
    }
  }
}
Variables
{
  "txs": [Bytes],
  "blockhash": "abc123",
  "lastValidBlockHeight": 123,
  "options": SendTransactionBundlesOptions
}
Response
{
  "data": {
    "sendTransactionBundles": [
      {
        "bundleId": 987,
        "responses": [TransactionResponse]
      }
    ]
  }
}

signWithShadowSignerAndSendTransactionBundles

Description

Execute transactions Bundles on the Solana blockchain. Used after creating a transaction with the other APIs. The transactions don't need to be signed because a shadow signer (if available) will be used to sign them. Using shadow signers requires prior authentication, see authRequest.

Arguments
Name Description
txs - [Bytes!]! Array of serialized transactions to send. Required
blockhash - String! Blockhash associated with the transactions. Required
lastValidBlockHeight - Int! Block height associated with the transactions. Required
authToken - String! Wallet authentication token. Acquired after authenticating with authRequest. Required
options - SendTransactionBundlesOptions Options for sending the transaction bundles. Optional

Example

Query
query SignWithShadowSignerAndSendTransactionBundles(
  $txs: [Bytes!]!,
  $blockhash: String!,
  $lastValidBlockHeight: Int!,
  $authToken: String!,
  $options: SendTransactionBundlesOptions
) {
  signWithShadowSignerAndSendTransactionBundles(
    txs: $txs,
    blockhash: $blockhash,
    lastValidBlockHeight: $lastValidBlockHeight,
    authToken: $authToken,
    options: $options
  ) {
    bundleId
    responses {
      signature
      error
      status
    }
  }
}
Variables
{
  "txs": [Bytes],
  "blockhash": "abc123",
  "lastValidBlockHeight": 987,
  "authToken": "xyz789",
  "options": SendTransactionBundlesOptions
}
Response
{
  "data": {
    "signWithShadowSignerAndSendTransactionBundles": [
      {
        "bundleId": 987,
        "responses": [TransactionResponse]
      }
    ]
  }
}

sendBulkTransactions

Use sendTransactionBundles.
Description

Send bulk transactions (deprecated). Instead of using this, use sendTransactionBundles.

Response

Returns [TransactionResponse!]!

Arguments
Name Description
txs - [Bytes!]! Array of serialized transactions to send. Required
blockhash - String! Blockhash associated with the transactions. Required
lastValidBlockHeight - Int! Block height associated with the transactions. Required
options - SendTransactionBundlesOptions Options for sending the transactions. Optional

Example

Query
query SendBulkTransactions(
  $txs: [Bytes!]!,
  $blockhash: String!,
  $lastValidBlockHeight: Int!,
  $options: SendTransactionBundlesOptions
) {
  sendBulkTransactions(
    txs: $txs,
    blockhash: $blockhash,
    lastValidBlockHeight: $lastValidBlockHeight,
    options: $options
  ) {
    signature
    error
    status
  }
}
Variables
{
  "txs": [Bytes],
  "blockhash": "xyz789",
  "lastValidBlockHeight": 123,
  "options": SendTransactionBundlesOptions
}
Response
{
  "data": {
    "sendBulkTransactions": [
      {
        "signature": "abc123",
        "error": {},
        "status": "xyz789"
      }
    ]
  }
}

signWithShadowSignerAndSendBulkTransactions

Use signWithShadowSignerAndSendTransactionBundles.
Description

Sign with shadow signer and send bulk transactions (deprecated). Instead of using this, use signWithShadowSignerAndSendTransactionBundles.

Response

Returns [TransactionResponse!]!

Arguments
Name Description
txs - [Bytes!]! Array of serialized transactions to send. Required
blockhash - String! Blockhash associated with the transactions. Required
lastValidBlockHeight - Int! Block height associated with the transactions. Required
options - SendTransactionBundlesOptions

Example

Query
query SignWithShadowSignerAndSendBulkTransactions(
  $txs: [Bytes!]!,
  $blockhash: String!,
  $lastValidBlockHeight: Int!,
  $options: SendTransactionBundlesOptions
) {
  signWithShadowSignerAndSendBulkTransactions(
    txs: $txs,
    blockhash: $blockhash,
    lastValidBlockHeight: $lastValidBlockHeight,
    options: $options
  ) {
    signature
    error
    status
  }
}
Variables
{
  "txs": [Bytes],
  "blockhash": "xyz789",
  "lastValidBlockHeight": 987,
  "options": SendTransactionBundlesOptions
}
Response
{
  "data": {
    "signWithShadowSignerAndSendBulkTransactions": [
      {
        "signature": "abc123",
        "error": {},
        "status": "abc123"
      }
    ]
  }
}

global

Description

Fetch the Hive Control global account. This is a very low-level API and used internally by the Honeycomb Protocol team.

Response

Returns a Global!

Arguments
Name Description
env - String Environment to fetch global configuration for. Optional

Example

Query
query Global($env: String) {
  global(env: $env) {
    address
    bump
    config
    userTrees {
      active
      schema
      merkle_trees
    }
    totalUsers
  }
}
Variables
{"env": "abc123"}
Response
{
  "data": {
    "global": {
      "address": Bytes,
      "bump": 987,
      "config": VecMap,
      "userTrees": ControlledMerkleTrees,
      "totalUsers": 987
    }
  }
}

createInitializeFaucetTransaction

Description

Create a transaction for a new faucet. Returns a CreateInitializeFaucetTransactionResponse object.

Arguments
Name Description
resource - String! Resource PDA address. The faucet will be created for this resource. Required
amount - Int! Amount of resource to distribute through the faucet. Required
repeatInterval - Int! The interval at which the faucet will distribute resources. Required
authority - String! Project authority wallet address. Required
delegateAuthority - String Delegate authority for the faucet. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateInitializeFaucetTransaction(
  $resource: String!,
  $amount: Int!,
  $repeatInterval: Int!,
  $authority: String!,
  $delegateAuthority: String,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createInitializeFaucetTransaction(
    resource: $resource,
    amount: $amount,
    repeatInterval: $repeatInterval,
    authority: $authority,
    delegateAuthority: $delegateAuthority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    faucet
  }
}
Variables
{
  "resource": "abc123",
  "amount": 123,
  "repeatInterval": 987,
  "authority": "xyz789",
  "delegateAuthority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createInitializeFaucetTransaction": {
      "tx": Transaction,
      "faucet": Bytes
    }
  }
}

createClaimFaucetTransaction

Description

Create a transaction for claiming a resource from an existing faucet. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
faucet - String! Faucet PDA address. Required
owner - String! Recipient address to claim the resource to. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateClaimFaucetTransaction(
  $faucet: String!,
  $owner: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createClaimFaucetTransaction(
    faucet: $faucet,
    owner: $owner,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "faucet": "abc123",
  "owner": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createClaimFaucetTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

Profiles

authRequest

Description

Initiate an authentication request for a wallet. Returns a message to be signed by the user to authenticate. Use authConfirm to confirm the authentication request.

Response

Returns an AuthResponse!

Arguments
Name Description
wallet - String! User's wallet address to authenticate with. Required
useTx - Boolean Whether to use a transaction for authentication (useful for Ledger wallets). Optional
useRpc - String RPC endpoint to use for the authentication. Optional

Example

Query
query AuthRequest(
  $wallet: String!,
  $useTx: Boolean,
  $useRpc: String
) {
  authRequest(
    wallet: $wallet,
    useTx: $useTx,
    useRpc: $useRpc
  ) {
    message
    tx
  }
}
Variables
{
  "wallet": "abc123",
  "useTx": true,
  "useRpc": "xyz789"
}
Response
{
  "data": {
    "authRequest": {
      "message": "xyz789",
      "tx": Bytes
    }
  }
}

authConfirm

Description

Confirm an authentication request (initiated using authRequest) with a signature. Verifies the signature and returns an access token for the authenticated session as well as the user data.

Response

Returns an AuthConfirmed!

Arguments
Name Description
wallet - String! Wallet address used for the initial authentication request. Required
signature - String! Signed message from the wallet. Required

Example

Query
query AuthConfirm(
  $wallet: String!,
  $signature: String!
) {
  authConfirm(
    wallet: $wallet,
    signature: $signature
  ) {
    accessToken
    user {
      id
      address
      tree_id
      leaf_idx
      proof {
        ...ProofFragment
      }
      info {
        ...UserInfoFragment
      }
      socialInfo {
        ...SocialInfoFragment
      }
      wallets {
        ...WalletsFragment
      }
    }
  }
}
Variables
{
  "wallet": "abc123",
  "signature": "abc123"
}
Response
{
  "data": {
    "authConfirm": {
      "accessToken": "xyz789",
      "user": User
    }
  }
}

user

Description

Fetch a user's compressed account information based on provided filters. Returns an array of User objects.

Response

Returns [User!]!

Arguments
Name Description
addresses - [Bytes!] Array of user addresses to fetch. Optional
ids - [Int!] Array of user IDs to fetch. Optional
wallets - [Pubkey!] Array of user wallet addresses to fetch. Optional
usernames - [String!] Array of usernames to filter by. Optional
includeProof - Boolean Whether to include proof in the response. Defaults to false. Optional

Example

Query
query User(
  $addresses: [Bytes!],
  $ids: [Int!],
  $wallets: [Pubkey!],
  $usernames: [String!],
  $includeProof: Boolean
) {
  user(
    addresses: $addresses,
    ids: $ids,
    wallets: $wallets,
    usernames: $usernames,
    includeProof: $includeProof
  ) {
    id
    address
    tree_id
    leaf_idx
    proof {
      root
      proof
      node_index
      leaf
      maxDepth
      leaf_index
      tree_id
      canopy_depth
    }
    info {
      username
      name
      bio
      pfp
    }
    socialInfo {
      twitter
      discord
      steam
      civic {
        ...CivicInfoFragment
      }
    }
    wallets {
      shadow
      wallets
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "ids": [123],
  "wallets": [Pubkey],
  "usernames": ["abc123"],
  "includeProof": true
}
Response
{
  "data": {
    "user": [
      {
        "id": 123,
        "address": Bytes,
        "tree_id": Bytes,
        "leaf_idx": {},
        "proof": Proof,
        "info": UserInfo,
        "socialInfo": SocialInfo,
        "wallets": Wallets
      }
    ]
  }
}

profile

Description

Fetch a profile's compressed account information based on provided filters. Returns an array of Profile objects.

Response

Returns [Profile!]!

Arguments
Name Description
addresses - [Bytes!] Array of profile addresses to fetch. Optional
projects - [Pubkey!] Array of project addresses to filter profiles by. Optional
userIds - [Int!] Array of user IDs to filter profiles by. Optional
identities - [String!] Array of identity strings to filter profiles by. Optional
includeProof - Boolean Whether to include proof in the response. Defaults to false. Optional

Example

Query
query Profile(
  $addresses: [Bytes!],
  $projects: [Pubkey!],
  $userIds: [Int!],
  $identities: [String!],
  $includeProof: Boolean
) {
  profile(
    addresses: $addresses,
    projects: $projects,
    userIds: $userIds,
    identities: $identities,
    includeProof: $includeProof
  ) {
    address
    tree_id
    leaf_idx
    proof {
      root
      proof
      node_index
      leaf
      maxDepth
      leaf_index
      tree_id
      canopy_depth
    }
    project
    userId
    identity
    info {
      name
      bio
      pfp
    }
    platformData {
      custom
      xp
      achievements
    }
    customData
  }
}
Variables
{
  "addresses": [Bytes],
  "projects": [Pubkey],
  "userIds": [987],
  "identities": ["xyz789"],
  "includeProof": true
}
Response
{
  "data": {
    "profile": [
      {
        "address": Bytes,
        "tree_id": Bytes,
        "leaf_idx": {},
        "proof": Proof,
        "project": Pubkey,
        "userId": 123,
        "identity": "xyz789",
        "info": ProfileInfo,
        "platformData": PlatformData,
        "customData": VecMap
      }
    ]
  }
}

createNewUserTransaction

Description

Create a transaction for a new user. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
info - UserInfoInput Additional information about the user. Optional
wallet - String! Wallet address of the user. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateNewUserTransaction(
  $info: UserInfoInput,
  $wallet: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createNewUserTransaction(
    info: $info,
    wallet: $wallet,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "info": UserInfoInput,
  "wallet": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createNewUserTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createNewUserBulkTransaction

Description

Create a bulk transaction for multiple new users. Returns an array of Transaction objects.

Response

Returns a Transactions!

Arguments
Name Description
info - [UserInfoInput!]! Array of objects container the users' information. Required
wallet - [String!]! Array of users' wallet addresses. Required
payer - String! Payer for the transaction. Required
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateNewUserBulkTransaction(
  $info: [UserInfoInput!]!,
  $wallet: [String!]!,
  $payer: String!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createNewUserBulkTransaction(
    info: $info,
    wallet: $wallet,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transactions
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "info": [UserInfoInput],
  "wallet": ["xyz789"],
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createNewUserBulkTransaction": {
      "transactions": [Bytes],
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createUpdateUserTransaction

Description

Create a transaction for updating an existing user's information. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
info - PartialUserInfoInput Partial information to update the user. Optional
wallets - UpdateWalletInput Wallets to add or remove from the user. Optional
populateCivic - Boolean Populates Civic information for all of the user's wallets. Defaults to false.
payer - String! Wallet address of the user. The user's account will be looked up using this wallet address and updated. Required
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateUserTransaction(
  $info: PartialUserInfoInput,
  $wallets: UpdateWalletInput,
  $populateCivic: Boolean,
  $payer: String!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateUserTransaction(
    info: $info,
    wallets: $wallets,
    populateCivic: $populateCivic,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "info": PartialUserInfoInput,
  "wallets": UpdateWalletInput,
  "populateCivic": false,
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createUpdateUserTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createCreateProfilesTreeTransaction

Description

Create a transaction for a new profiles tree. Returns a Transaction object.

Response

Returns a TreeSetupResponse!

Arguments
Name Description
treeConfig - TreeSetupConfig! Configuration settings for the tree. Requires either the basic or advanced config. Required
project - String! Address of the project that the profiles tree is being created for. Required
payer - String! Project authority's public key. This authority will pay for the transaction and will also need to sign the returning transaction. Required
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateProfilesTreeTransaction(
  $treeConfig: TreeSetupConfig!,
  $project: String!,
  $payer: String!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateProfilesTreeTransaction(
    treeConfig: $treeConfig,
    project: $project,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    treeAddress
    proofBytes
    space
    cost
    maxTreeCapacity
  }
}
Variables
{
  "treeConfig": TreeSetupConfig,
  "project": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateProfilesTreeTransaction": {
      "tx": Transaction,
      "treeAddress": Bytes,
      "proofBytes": 987,
      "space": 987,
      "cost": 987.65,
      "maxTreeCapacity": 123
    }
  }
}

createNewProfileTransaction

Description

Create a transaction for a new profile. A user must already exist for the wallet address. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Address of the project. A Honeycomb Protocol user has to create a separate profile for each project. Required
payer - String! Payer for the transaction. Required
identity - String Identity string for the profile. Optional
info - ProfileInfoInput Additional information about the profile. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateNewProfileTransaction(
  $project: String!,
  $payer: String!,
  $identity: String,
  $info: ProfileInfoInput,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createNewProfileTransaction(
    project: $project,
    payer: $payer,
    identity: $identity,
    info: $info,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "abc123",
  "payer": "abc123",
  "identity": "xyz789",
  "info": ProfileInfoInput,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createNewProfileTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createUpdateProfileTransaction

Description

Create a transaction for updating an existing profile. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
profile - String! The address of the profile that'll get updated with this transaction. Required
payer - String! Payer for the transaction. This usually needs to be the profile's owner (the user). Required
info - ProfileInfoInput Information to update in the profile. Optional
customData - CustomDataInput Custom data to add to or remove from the profile. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateProfileTransaction(
  $profile: String!,
  $payer: String!,
  $info: ProfileInfoInput,
  $customData: CustomDataInput,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateProfileTransaction(
    profile: $profile,
    payer: $payer,
    info: $info,
    customData: $customData,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "profile": "abc123",
  "payer": "abc123",
  "info": ProfileInfoInput,
  "customData": CustomDataInput,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createUpdateProfileTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createNewUserWithProfileTransaction

Description

Create a transaction for a new user with an associated profile. Will create both a user and a profile for wallets that have neither. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
userInfo - UserInfoInput Additional information about the user. Optional
project - String! Project's address. The new user will also get an associated profile created for this project. Required
profileIdentity - String Identity string for the profile. Required
profileInfo - ProfileInfoInput Additional information about the user's profile. Optional
wallet - String! User's wallet address. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateNewUserWithProfileTransaction(
  $userInfo: UserInfoInput,
  $project: String!,
  $profileIdentity: String,
  $profileInfo: ProfileInfoInput,
  $wallet: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createNewUserWithProfileTransaction(
    userInfo: $userInfo,
    project: $project,
    profileIdentity: $profileIdentity,
    profileInfo: $profileInfo,
    wallet: $wallet,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "userInfo": UserInfoInput,
  "project": "abc123",
  "profileIdentity": "abc123",
  "profileInfo": ProfileInfoInput,
  "wallet": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createNewUserWithProfileTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 123
    }
  }
}

Badges

createClaimBadgeCriteriaTransaction

Description

Create a transaction for claiming badge criteria. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
args - ClaimBadgeCriteriaInput! Args for claiming the badge criteria. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateClaimBadgeCriteriaTransaction(
  $args: ClaimBadgeCriteriaInput!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createClaimBadgeCriteriaTransaction(
    args: $args,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "args": ClaimBadgeCriteriaInput,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createClaimBadgeCriteriaTransaction": {
      "transaction": Bytes,
      "blockhash": "xyz789",
      "lastValidBlockHeight": 987
    }
  }
}

createUpdateBadgeCriteriaTransaction

Description

Create a transaction for updating an existing badge criteria. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
args - UpdateBadgeCriteriaInput! Args for updating the badge criteria. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateUpdateBadgeCriteriaTransaction(
  $args: UpdateBadgeCriteriaInput!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createUpdateBadgeCriteriaTransaction(
    args: $args,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "args": UpdateBadgeCriteriaInput,
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createUpdateBadgeCriteriaTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

Project

account

Description

Fetch accounts information based on filters. This is a low-level API. Developers will usually not need to use this as we've exposed higher-level APIs for most use-cases, example: user, profile, mission, missionPool, etc.

Response

Returns [Account!]!

Arguments
Name Description
programId - Bytes! Address of the program that owns the PDA. Required
discriminator - Bytes PDA's discriminator (each type of PDA has a separate discriminator). Optional
parsedData - JSON Filters accounts based on their parsed data. The account's parsed data depends on how the PDA is structured. Optional

Example

Query
query Account(
  $programId: Bytes!,
  $discriminator: Bytes,
  $parsedData: JSON
) {
  account(
    programId: $programId,
    discriminator: $discriminator,
    parsedData: $parsedData
  ) {
    address
    program_id
    discriminator
    parsed_data
  }
}
Variables
{
  "programId": Bytes,
  "discriminator": Bytes,
  "parsedData": {}
}
Response
{
  "data": {
    "account": [
      {
        "address": Bytes,
        "program_id": Bytes,
        "discriminator": Bytes,
        "parsed_data": {}
      }
    ]
  }
}

compressedAccount

Description

Fetch compressed accounts based on provided Account addresses, identity, and TreeLeaf.

Response

Returns [CompressedAccount!]!

Arguments
Name Description
addresses - [Bytes!]! Array of compressed account addresses. Required
identity - DisrcriminatorFilter Program ID and account name to filter the accounts. Optional
leaves - [TreeLeaf!] Address of the merkle tree and leaf index of the compressed account. Optional
parsedData - JSON Filters compressed accounts based on their parsed data. The account's parsed data depends on how the compressed account is structured. Optional

Example

Query
query CompressedAccount(
  $addresses: [Bytes!]!,
  $identity: DisrcriminatorFilter,
  $leaves: [TreeLeaf!],
  $parsedData: JSON
) {
  compressedAccount(
    addresses: $addresses,
    identity: $identity,
    leaves: $leaves,
    parsedData: $parsedData
  ) {
    tree_id
    leaf_idx
    schema_validated
    raw_data
    parsed_data
  }
}
Variables
{
  "addresses": [Bytes],
  "identity": DisrcriminatorFilter,
  "leaves": [TreeLeaf],
  "parsedData": {}
}
Response
{
  "data": {
    "compressedAccount": [
      {
        "tree_id": Bytes,
        "leaf_idx": {},
        "schema_validated": true,
        "raw_data": Bytes,
        "parsed_data": {}
      }
    ]
  }
}

proof

Description

Fetch compressed account proofs for provided tree leaves. Takes an array of TreeLeaf objects and returns an array of Proof objects.

Response

Returns [Proof!]!

Arguments
Name Description
leaves - [TreeLeaf!]! List of tree leaves to fetch proof for. Array of merkle tree addresses and leaf indexes. Required

Example

Query
query Proof($leaves: [TreeLeaf!]!) {
  proof(leaves: $leaves) {
    root
    proof
    node_index
    leaf
    maxDepth
    leaf_index
    tree_id
    canopy_depth
  }
}
Variables
{"leaves": [TreeLeaf]}
Response
{
  "data": {
    "proof": [
      {
        "root": Bytes,
        "proof": [Bytes],
        "node_index": {},
        "leaf": Bytes,
        "maxDepth": 123,
        "leaf_index": {},
        "tree_id": Bytes,
        "canopy_depth": 987
      }
    ]
  }
}

project

Description

Fetch the project PDA information based on provided filters. Returns an array of Project objects.

Response

Returns [Project!]!

Arguments
Name Description
addresses - [Bytes!] Array of project addresses to fetch. Optional
names - [String!] Array of project names to fetch. Optional
authorities - [Pubkey!] Array of project authorities to filter projects by. Optional

Example

Query
query Project(
  $addresses: [Bytes!],
  $names: [String!],
  $authorities: [Pubkey!]
) {
  project(
    addresses: $addresses,
    names: $names,
    authorities: $authorities
  ) {
    address
    bump
    authority
    key
    driver
    name
    services {
      kind
      params {
        ... on ServiceParamsAssembler {
          ...ServiceParamsAssemblerFragment
        }
        ... on ServiceParamsAssetManager {
          ...ServiceParamsAssetManagerFragment
        }
        ... on ServiceParamsStaking {
          ...ServiceParamsStakingFragment
        }
        ... on ServiceParamsMissions {
          ...ServiceParamsMissionsFragment
        }
        ... on ServiceParamsRaffles {
          ...ServiceParamsRafflesFragment
        }
        ... on ServiceParamsGuildKit {
          ...ServiceParamsGuildKitFragment
        }
      }
    }
    associatedPrograms {
      address
      trustedActions {
        ...SerializableActionsFragment
      }
    }
    profileDataConfig {
      achievements
      customDataFields
    }
    profileTrees {
      active
      schema
      merkle_trees
    }
    badgeCriteria {
      startTime
      endTime
      index
      condition
    }
    subsidyFees
  }
}
Variables
{
  "addresses": [Bytes],
  "names": ["abc123"],
  "authorities": [Pubkey]
}
Response
{
  "data": {
    "project": [
      {
        "address": Bytes,
        "bump": 987,
        "authority": Pubkey,
        "key": Pubkey,
        "driver": Pubkey,
        "name": "xyz789",
        "services": [Service],
        "associatedPrograms": [AssociatedProgram],
        "profileDataConfig": ProfileDataConfig,
        "profileTrees": ControlledMerkleTrees,
        "badgeCriteria": [BadgeCriteria],
        "subsidyFees": false
      }
    ]
  }
}

delegateAuthority

Description

Fetch the delegate authority PDA information using relevant filters. Returns an array of DelegateAuthority objects that include delegated permissions.

Response

Returns [DelegateAuthority!]!

Arguments
Name Description
addresses - [Bytes!] Array of delegate authority PDA addresses to fetch. Optional
delegates - [Pubkey!] Array of delegate users' public keys to filter by. Optional
projects - [Pubkey!] Array of project public keys to filter by. Optional

Example

Query
query DelegateAuthority(
  $addresses: [Bytes!],
  $delegates: [Pubkey!],
  $projects: [Pubkey!]
) {
  delegateAuthority(
    addresses: $addresses,
    delegates: $delegates,
    projects: $projects
  ) {
    address
    bump
    project
    authority
    delegations {
      kind
      index
      permission
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "delegates": [Pubkey],
  "projects": [Pubkey]
}
Response
{
  "data": {
    "delegateAuthority": [
      {
        "address": Bytes,
        "bump": 987,
        "project": Pubkey,
        "authority": Pubkey,
        "delegations": [ServiceDelegation]
      }
    ]
  }
}

createCreateProjectTransaction

Description

Create a transaction for a new project. Returns a CreateCreateProjectTransactionResponse object.

Arguments
Name Description
authority - String! Wallet address of the project authority. The holder of this wallet will have complete control over the project. Required
name - String! Name of the project. Required
driver - String Driver associated with the project. Optional
associatedPrograms - [AssociatedProgramInput!] Array of associated programs for the project. Optional
profileDataConfig - ProfileDataConfigInput Configuration for profile data of all the users associated with the project. Optional
subsidizeFees - Boolean Subsidize fees for the project. Optional
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateProjectTransaction(
  $authority: String!,
  $name: String!,
  $driver: String,
  $associatedPrograms: [AssociatedProgramInput!],
  $profileDataConfig: ProfileDataConfigInput,
  $subsidizeFees: Boolean,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateProjectTransaction(
    authority: $authority,
    name: $name,
    driver: $driver,
    associatedPrograms: $associatedPrograms,
    profileDataConfig: $profileDataConfig,
    subsidizeFees: $subsidizeFees,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    project
  }
}
Variables
{
  "authority": "xyz789",
  "name": "abc123",
  "driver": "abc123",
  "associatedPrograms": [AssociatedProgramInput],
  "profileDataConfig": ProfileDataConfigInput,
  "subsidizeFees": true,
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createCreateProjectTransaction": {
      "tx": Transaction,
      "project": "xyz789"
    }
  }
}

createChangeProjectDriverTransaction

Description

Create a transaction for changing the driver of an existing project. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Address of the project to update. Required
driver - String! Public key of the new driver. Required
authority - String! Project authority's public key. This authority will also need to sign the returning transaction. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateChangeProjectDriverTransaction(
  $project: String!,
  $driver: String!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createChangeProjectDriverTransaction(
    project: $project,
    driver: $driver,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "xyz789",
  "driver": "xyz789",
  "authority": "abc123",
  "payer": "abc123",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createChangeProjectDriverTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 987
    }
  }
}

createCreateDelegateAuthorityTransaction

Description

Create a transaction for a new delegate authority to be added to an existing project. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Address of the project for which the delegate will be created. Required
delegate - String! Delegate user's wallet address. Required
serviceDelegations - ServiceDelegationInput! Permissions to give the delegate. Required
authority - String! Project authority's public key. This authority will also need to sign the returning transaction. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateDelegateAuthorityTransaction(
  $project: String!,
  $delegate: String!,
  $serviceDelegations: ServiceDelegationInput!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateDelegateAuthorityTransaction(
    project: $project,
    delegate: $delegate,
    serviceDelegations: $serviceDelegations,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "abc123",
  "delegate": "abc123",
  "serviceDelegations": ServiceDelegationInput,
  "authority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateDelegateAuthorityTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

createModifyDelegationTransaction

Description

Create a transaction for modifying an existing delegation associated with a project. Returns a Transaction object.

Response

Returns a Transaction!

Arguments
Name Description
project - String! Address of the project. Required
delegate - String! Delegate user's wallet address. This user should already have a delegate authority in the project. Required
modifyDelegation - ModifyDelegationInput! Modifications to the permissions of the delegate. Required
authority - String! Project authority's public key. This authority will also need to sign the returning transaction. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] List of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateModifyDelegationTransaction(
  $project: String!,
  $delegate: String!,
  $modifyDelegation: ModifyDelegationInput!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createModifyDelegationTransaction(
    project: $project,
    delegate: $delegate,
    modifyDelegation: $modifyDelegation,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "project": "abc123",
  "delegate": "xyz789",
  "modifyDelegation": ModifyDelegationInput,
  "authority": "xyz789",
  "payer": "xyz789",
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 987
}
Response
{
  "data": {
    "createModifyDelegationTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

assemblerConfig

Description

Fetch character assembler configurations based on provided filters. Returns an array of AssemblerConfig objects.

Response

Returns [AssemblerConfig!]!

Arguments
Name Description
addresses - [Bytes!] Array of assembler configuration addresses. Optional
tickers - [String!] Array of assembler configuration tickers. Optional
characterModel - [Bytes!] Array of character models to filter assembler configurations. Optional
project - [Pubkey!] Array of project addresses to filter assembler configurations. Optional

Example

Query
query AssemblerConfig(
  $addresses: [Bytes!],
  $tickers: [String!],
  $characterModel: [Bytes!],
  $project: [Pubkey!]
) {
  assemblerConfig(
    addresses: $addresses,
    tickers: $tickers,
    characterModel: $characterModel,
    project: $project
  ) {
    address
    program_id
    discriminator
    ticker
    project
    order
    merkle_trees {
      active
      schema
      merkle_trees
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "tickers": ["xyz789"],
  "characterModel": [Bytes],
  "project": [Pubkey]
}
Response
{
  "data": {
    "assemblerConfig": [
      {
        "address": Bytes,
        "program_id": Bytes,
        "discriminator": Bytes,
        "ticker": "xyz789",
        "project": Pubkey,
        "order": ["xyz789"],
        "merkle_trees": ControlledMerkleTrees
      }
    ]
  }
}

createCreateAssemblerConfigTransaction

Description

Create a transaction for a new assembler configuration. Returns a CreateAssemblerConfigTransactionResponse object.

Arguments
Name Description
treeConfig - TreeSetupConfig! Configuration settings for the tree. Requires either the basic or advanced config. Required
ticker - String! Ticker ID associated with the assembler configuration. Requires any custom client-side generated ID in string format. Required
order - [String!]! Array of traits a character based on this assembler config can have. Required
project - String! Project PDA address. Required
authority - String! Project authority public key. Required
payer - String Payer for the transaction. Optional
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateCreateAssemblerConfigTransaction(
  $treeConfig: TreeSetupConfig!,
  $ticker: String!,
  $order: [String!]!,
  $project: String!,
  $authority: String!,
  $payer: String,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createCreateAssemblerConfigTransaction(
    treeConfig: $treeConfig,
    ticker: $ticker,
    order: $order,
    project: $project,
    authority: $authority,
    payer: $payer,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    tx {
      transaction
      blockhash
      lastValidBlockHeight
    }
    assemblerConfig
    treeAddress
    proofBytes
    space
    cost
    maxTreeCapacity
  }
}
Variables
{
  "treeConfig": TreeSetupConfig,
  "ticker": "xyz789",
  "order": ["xyz789"],
  "project": "abc123",
  "authority": "abc123",
  "payer": "xyz789",
  "lutAddresses": ["xyz789"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createCreateAssemblerConfigTransaction": {
      "tx": Transaction,
      "assemblerConfig": Bytes,
      "treeAddress": Bytes,
      "proofBytes": 987,
      "space": 987,
      "cost": 987.65,
      "maxTreeCapacity": 987
    }
  }
}

holdings

Description

Fetch holdings based on provided filters. Returns an array of Holding objects.

Response

Returns [Holding!]!

Arguments
Name Description
addresses - [Bytes!] Array of compressed holding addresses. Optional
holder - Pubkey Holder's wallet address. Optional
trees - [Bytes!] Array of merkle tree addresses. Holdings stored in these merkle trees will be fetched. Optional
includeProof - Boolean Whether to include proof in the response. Defaults to false. Optional

Example

Query
query Holdings(
  $addresses: [Bytes!],
  $holder: Pubkey,
  $trees: [Bytes!],
  $includeProof: Boolean
) {
  holdings(
    addresses: $addresses,
    holder: $holder,
    trees: $trees,
    includeProof: $includeProof
  ) {
    address
    tree_id
    leaf_idx
    holder
    balance
    characteristics
    proof {
      root
      proof
      node_index
      leaf
      maxDepth
      leaf_index
      tree_id
      canopy_depth
    }
  }
}
Variables
{
  "addresses": [Bytes],
  "holder": Pubkey,
  "trees": [Bytes],
  "includeProof": false
}
Response
{
  "data": {
    "holdings": [
      {
        "address": Bytes,
        "tree_id": Bytes,
        "leaf_idx": {},
        "holder": Pubkey,
        "balance": {},
        "characteristics": VecMap,
        "proof": Proof
      }
    ]
  }
}

createInitializeBadgeCriteriaTransaction

Response

Returns a Transaction!

Arguments
Name Description
args - CreateBadgeCriteriaInput! Args for creating the badge criteria. Required
lutAddresses - [String!] Array of lookup table addresses. Only needed in case the transaction is too large. Optional
computeUnitPrice - Int Compute unit price for the transaction. A higher compute unit price will result in a faster transaction when the network is busy. Optional

Example

Query
query CreateInitializeBadgeCriteriaTransaction(
  $args: CreateBadgeCriteriaInput!,
  $lutAddresses: [String!],
  $computeUnitPrice: Int
) {
  createInitializeBadgeCriteriaTransaction(
    args: $args,
    lutAddresses: $lutAddresses,
    computeUnitPrice: $computeUnitPrice
  ) {
    transaction
    blockhash
    lastValidBlockHeight
  }
}
Variables
{
  "args": CreateBadgeCriteriaInput,
  "lutAddresses": ["abc123"],
  "computeUnitPrice": 123
}
Response
{
  "data": {
    "createInitializeBadgeCriteriaTransaction": {
      "transaction": Bytes,
      "blockhash": "abc123",
      "lastValidBlockHeight": 123
    }
  }
}

Types

Scalars

BigInt

Example
{}

Bytes

Example
Bytes

Pubkey

Example
Pubkey

JSON

Example
{}

VecMap

Example
VecMap

Utils

Transaction

Fields
Field Name Description
transaction - Bytes! The serialized transaction data.
blockhash - String! Blockhash associated with the transaction.
lastValidBlockHeight - Int! The last valid block height for the transaction.
Example
{
  "transaction": Bytes,
  "blockhash": "abc123",
  "lastValidBlockHeight": 123
}

Transactions

Fields
Field Name Description
transactions - [Bytes!]! Serialized transactions data.
blockhash - String! Blockhash associated with the transactions.
lastValidBlockHeight - Int! The last valid block height for the transactions.
Example
{
  "transactions": [Bytes],
  "blockhash": "abc123",
  "lastValidBlockHeight": 123
}

SendTransactionBundlesOptions

Fields
Input Field Description
commitment - String Commitment level for the transaction.
skipPreflight - Boolean Option to skip preflight checks.
bundles - TransactionBundlesOptions Options for bundling transactions.
Example
{
  "commitment": "xyz789",
  "skipPreflight": true,
  "bundles": TransactionBundlesOptions
}

TransactionBundlesOptions

Fields
Input Field Description
bundleSize - Int Size of each transaction bundle.
firstBundleSize - Int Size of the first transaction bundle.
lastBundleSize - Int Size of the last transaction bundle.
Example
{"bundleSize": 123, "firstBundleSize": 987, "lastBundleSize": 123}

TransactionResponse

Fields
Field Name Description
signature - String Signature of the sent transaction.
error - JSON Any error encountered during the transaction.
status - String! Status of the transaction.
Example
{
  "signature": "abc123",
  "error": {},
  "status": "abc123"
}

TransactionBundleResponse

Fields
Field Name Description
bundleId - Int! Identifier of the transaction bundle.
responses - [TransactionResponse!]! List of responses for the transactions in the bundle.
Example
{"bundleId": 987, "responses": [TransactionResponse]}

CreateInitializeFaucetTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for initializing a faucet.
faucet - Bytes! Serialized faucet data.
Example
{"tx": Transaction, "faucet": Bytes}

Misc

ControlledMerkleTrees

Fields
Field Name Description
active - Int! Number of active Merkle trees.
schema - JSON! Schema associated with the Merkle trees.
merkle_trees - [Pubkey!]! List of Merkle tree public keys.
Example
{"active": 123, "schema": {}, "merkle_trees": [Pubkey]}

Resources

CurrencyManagerPermissionInput

Values
Enum Value Description

ManageCurrencies

Permission to manage currencies.

MintCurrencies

Permission to mint currencies.

ManageCurrencyStatus

Permission to manage currency status.
Example
"ManageCurrencies"

ResourceRewardType

Fields
Field Name Description
kind - String! Kind of resource reward.
params - ResourceRewardTypeParams! Parameters for the currency reward.
Example
{
  "kind": "xyz789",
  "params": ResourceRewardTypeParams
}

ResourceRewardTypeParams

Fields
Field Name Description
address - Pubkey! Address of the currency associated with the reward.
Example
{"address": Pubkey}

CreateInitResourceTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for initializing a resource.
resource - Bytes! Serialized resource data.
Example
{
  "tx": Transaction,
  "resource": Bytes
}

Resource

Fields
Field Name Description
address - Bytes! The address of the resource.
bump - Int! Bump value associated with the resource.
project - Pubkey! Project associated with the resource.
mint - Pubkey! Mint associated with the resource.
storage - ResourceStorage! storage associated with the resource.
kind - ResourceKind! Kind of the resource.
Example
{
  "address": Bytes,
  "bump": 123,
  "project": Pubkey,
  "mint": Pubkey,
  "storage": ResourceStorage,
  "kind": ResourceKind
}

ResourceStorageEnum

Values
Enum Value Description

AccountState

LedgerState

Example
"AccountState"

ResourceStorageParams

Fields
Field Name Description
merkle_trees - ControlledMerkleTrees! Controlled Merkle Trees associated with the resource.
Example
{"merkle_trees": ControlledMerkleTrees}

ResourceKind

Fields
Field Name Description
kind - String! Kind of resource.
params - ResourceKindParams! Parameters associated with the resource kind.
Example
{
  "kind": "xyz789",
  "params": ResourceKindParamsHplFungible
}

ResourceKindParams

ResourceKindParamsHplFungible

Fields
Field Name Description
decimals - Int! Number of decimal places used by the resource.
Example
{"decimals": 123}

ResourceKindParamsWrappedFungible

Fields
Field Name Description
decimals - Int! Number of decimal places used by the resource.
Example
{"decimals": 987}

ResourceKindParamsHplNonFungible

Fields
Field Name Description
characteristics - [String]!
Example
{"characteristics": ["abc123"]}

Faucet

Fields
Field Name Description
address - Bytes! The address of the faucet.
project - Pubkey! Project associated with the faucet.
resource - Pubkey! Resource provided by the faucet.
amount - BigInt! Amount of resource dispensed by the faucet.
repeatInterval - BigInt! Interval for repeating the faucet.
lastClaimed - BigInt! Last claimed time of the faucet.
Example
{
  "address": Bytes,
  "project": Pubkey,
  "resource": Pubkey,
  "amount": {},
  "repeatInterval": {},
  "lastClaimed": {}
}

InitResourceInput

Fields
Input Field Description
name - String! Name of the resource.
symbol - String! Symbol associated with the resource.
uri - String! URI associated with the resource.
decimals - Int! Decimals associated with the resource.
storage - ResourceStorageEnum! Storage associated with the resource.
Example
{
  "name": "xyz789",
  "symbol": "xyz789",
  "uri": "abc123",
  "decimals": 123,
  "storage": "AccountState"
}

Crafting

CreateInitializeRecipeTransactionResponse

Fields
Field Name Description
transactions - Transactions! Multiple transactions for initializing a recipe.
recipe - Bytes! Serialized recipe data.
Example
{
  "transactions": Transactions,
  "recipe": Bytes
}

Recipe

Fields
Field Name Description
address - Bytes! The address of the recipe.
bump - Int! Bump value associated with the recipe.
project - Pubkey! Project associated with the recipe.
key - Pubkey! Key associated with the recipe.
xp - BigInt! Experience points provided by the recipe.
ingredients - [Ingredient!]! List of ingredients required for the recipe.
meal - Meal! Meal produced by the recipe.
Example
{
  "address": Bytes,
  "bump": 987,
  "project": Pubkey,
  "key": Pubkey,
  "xp": {},
  "ingredients": [Ingredient],
  "meal": Meal
}

Ingredient

Fields
Field Name Description
resourceAddress - Pubkey! Resource address of the ingredient.
amount - BigInt! Amount of the ingredient.
Example
{"resourceAddress": Pubkey, "amount": {}}

Meal

Fields
Field Name Description
resourceAddress - Pubkey! Resource address of the meal.
amount - BigInt! Amount of the meal.
Example
{"resourceAddress": Pubkey, "amount": {}}

IngredientsInput

Fields
Input Field Description
resourceAddress - String! Resource address of the ingredient.
amount - BigInt! Amount of the ingredient.
Example
{"resourceAddress": "abc123", "amount": {}}

MealInput

Fields
Input Field Description
resourceAddress - String! Resource address of the meal.
amount - BigInt! Amount of the meal.
Example
{"resourceAddress": "xyz789", "amount": {}}

Profiles

User

Fields
Field Name Description
id - Int! Unique identifier of the user.
address - Bytes! The address of the user.
tree_id - Bytes! ID of the Merkle tree associated with the user.
leaf_idx - BigInt! Index of the leaf in the Merkle tree.
proof - Proof Proof of the user's existence in the Merkle tree (optional).
info - UserInfo! Information associated with the user.
socialInfo - SocialInfo! Social information associated with the user.
wallets - Wallets! Wallets associated with the user.
Example
{
  "id": 987,
  "address": Bytes,
  "tree_id": Bytes,
  "leaf_idx": {},
  "proof": Proof,
  "info": UserInfo,
  "socialInfo": SocialInfo,
  "wallets": Wallets
}

UserInfo

Fields
Field Name Description
username - String! Username of the user.
name - String! Name of the user.
bio - String! Bio of the user.
pfp - String! Profile picture URL of the user.
Example
{
  "username": "abc123",
  "name": "abc123",
  "bio": "xyz789",
  "pfp": "xyz789"
}

Wallets

Fields
Field Name Description
shadow - Pubkey! Shadow wallet address associated with the user.
wallets - [Pubkey!]! List of other wallet addresses associated with the user.
Example
{
  "shadow": Pubkey,
  "wallets": [Pubkey]
}

UserInfoInput

Fields
Input Field Description
username - String! Username of the user.
name - String! Name of the user.
bio - String! Bio of the user.
pfp - String! Profile picture URL of the user.
Example
{
  "username": "xyz789",
  "name": "xyz789",
  "bio": "abc123",
  "pfp": "xyz789"
}

PartialUserInfoInput

Fields
Input Field Description
username - String Username of the user (optional).
name - String Name of the user (optional).
bio - String Bio of the user (optional).
pfp - String Profile picture URL of the user (optional).
Example
{
  "username": "xyz789",
  "name": "abc123",
  "bio": "xyz789",
  "pfp": "abc123"
}

UpdateWalletInput

Fields
Input Field Description
add - [String] Wallet address to add.
remove - [String] Wallet address to remove.
Example
{
  "add": ["abc123"],
  "remove": ["xyz789"]
}

ProfileDataConfigInput

Fields
Input Field Description
achievements - [String!]! List of achievements associated with the profile.
customDataFields - [String!]! List of custom data fields associated with the profile.
Example
{
  "achievements": ["xyz789"],
  "customDataFields": ["xyz789"]
}

ProfileInfoInput

Fields
Input Field Description
name - String Name of the profile (optional).
bio - String Bio of the profile (optional).
pfp - String Profile picture URL of the profile (optional).
Example
{
  "name": "abc123",
  "bio": "abc123",
  "pfp": "abc123"
}

CustomDataInput

Fields
Input Field Description
add - JSON Custom data to add to the profile.
remove - [String!] List of custom data fields to remove from the profile.
Example
{"add": {}, "remove": ["xyz789"]}

AuthResponse

Fields
Field Name Description
message - String! Message associated with the authentication response. To be signed by the wallet.
tx - Bytes Serialized transaction data (optional).
Example
{
  "message": "abc123",
  "tx": Bytes
}

AuthConfirmed

Fields
Field Name Description
accessToken - String! Access token provided upon successful authentication.
user - User! User data associated with the authenticated session.
Example
{
  "accessToken": "xyz789",
  "user": User
}

Badges

BadgesCondition

Values
Enum Value Description

Public

Publicly available badge condition.
Example
"Public"

ClaimBadgeCriteriaInput

Fields
Input Field Description
projectAddress - Pubkey! Address of the project to claim badge criteria for.
profileAddress - Pubkey! Profile address to claim the badge for.
payer - Pubkey! Payer for the badge claim.
criteriaIndex - Int! Index of the criteria to claim.
proof - BadgesCondition! Proof of meeting the badge criteria.
Example
{
  "projectAddress": Pubkey,
  "profileAddress": Pubkey,
  "payer": Pubkey,
  "criteriaIndex": 987,
  "proof": "Public"
}

UpdateBadgeCriteriaInput

Fields
Input Field Description
projectAddress - Pubkey! Address of the project to update badge criteria for.
authority - Pubkey! Authority associated with the badge criteria.
criteriaIndex - Int! Index of the criteria to update.
payer - Pubkey Payer for the badge criteria update (optional).
startTime - Int Start time for the badge criteria (optional).
endTime - Int End time for the badge criteria (optional).
condition - BadgesCondition! Condition for earning the badge.
Example
{
  "projectAddress": Pubkey,
  "authority": Pubkey,
  "criteriaIndex": 987,
  "payer": Pubkey,
  "startTime": 987,
  "endTime": 987,
  "condition": "Public"
}

Project

Global

Fields
Field Name Description
address - Bytes! The address of the global configuration.
bump - Int! Bump value associated with the global configuration.
config - VecMap! Configuration settings as a vector map.
userTrees - ControlledMerkleTrees! Controlled Merkle trees associated with user management.
totalUsers - Int! Total number of users in the system.
Example
{
  "address": Bytes,
  "bump": 987,
  "config": VecMap,
  "userTrees": ControlledMerkleTrees,
  "totalUsers": 987
}

Project

Fields
Field Name Description
address - Bytes! The address of the project.
bump - Int! Bump value associated with the project.
authority - Pubkey! Authority associated with the project.
key - Pubkey! Key associated with the project.
driver - Pubkey! Driver associated with the project.
name - String! Name of the project.
services - [Service!]! List of services provided by the project.
associatedPrograms - [AssociatedProgram!]! Programs associated with the project.
profileDataConfig - ProfileDataConfig! Configuration for profile data associated with the project.
profileTrees - ControlledMerkleTrees! Controlled Merkle trees associated with the project profiles.
badgeCriteria - [BadgeCriteria!] Badge criteria associated with the project (optional).
subsidyFees - Boolean!
Example
{
  "address": Bytes,
  "bump": 987,
  "authority": Pubkey,
  "key": Pubkey,
  "driver": Pubkey,
  "name": "xyz789",
  "services": [Service],
  "associatedPrograms": [AssociatedProgram],
  "profileDataConfig": ProfileDataConfig,
  "profileTrees": ControlledMerkleTrees,
  "badgeCriteria": [BadgeCriteria],
  "subsidyFees": true
}

DelegateAuthority

Fields
Field Name Description
address - Bytes! The address of the delegate authority.
bump - Int! Bump value associated with the delegate authority.
project - Pubkey! Project associated with the delegate authority.
authority - Pubkey! Authority associated with the delegate authority.
delegations - [ServiceDelegation!]! Service delegations associated with the delegate authority.
Example
{
  "address": Bytes,
  "bump": 987,
  "project": Pubkey,
  "authority": Pubkey,
  "delegations": [ServiceDelegation]
}

ServiceDelegation

Fields
Field Name Description
kind - String! Type of service delegation.
index - Int Index of the service delegation.
permission - String! Permission level associated with the service delegation.
Example
{
  "kind": "xyz789",
  "index": 123,
  "permission": "xyz789"
}

Service

Fields
Field Name Description
kind - String! Type of service provided by the project.
params - ServiceParams Parameters associated with the service.
Example
{
  "kind": "xyz789",
  "params": ServiceParamsAssembler
}

ServiceParams

ServiceParamsAssembler

Fields
Field Name Description
assemblerId - Pubkey! Assembler ID associated with the service.
Example
{"assemblerId": Pubkey}

ServiceParamsAssetManager

Fields
Field Name Description
assetManagerId - Pubkey! Asset manager ID associated with the service.
Example
{"assetManagerId": Pubkey}

ServiceParamsStaking

Fields
Field Name Description
poolId - Pubkey! Staking pool ID associated with the service.
Example
{"poolId": Pubkey}

ServiceParamsMissions

Fields
Field Name Description
poolId - Pubkey! Mission pool ID associated with the service.
Example
{"poolId": Pubkey}

ServiceParamsRaffles

Fields
Field Name Description
poolId - Pubkey! Raffle pool ID associated with the service.
Example
{"poolId": Pubkey}

ServiceParamsGuildKit

Fields
Field Name Description
kitId - Pubkey! Guild kit ID associated with the service.
Example
{"kitId": Pubkey}

AssociatedProgram

Fields
Field Name Description
address - Pubkey! Address of the associated program.
trustedActions - [SerializableActions!]! List of actions trusted by the associated program.
Example
{
  "address": Pubkey,
  "trustedActions": [SerializableActions]
}

SerializableActions

Fields
Field Name Description
kind - String! Type of action that can be serialized.
Example
{"kind": "abc123"}

ProfileDataConfig

Fields
Field Name Description
achievements - [String!]! List of achievements associated with the profile.
customDataFields - [String!]! List of custom data fields associated with the profile.
Example
{
  "achievements": ["xyz789"],
  "customDataFields": ["xyz789"]
}

CivicGateway

Values
Enum Value Description

LivenessPass

Liveness check pass in the Civic Gateway.

UniquenessPass

Uniqueness check pass in the Civic Gateway.

IdVerificationPass

Identity verification pass in the Civic Gateway.
Example
"LivenessPass"

CivicInfo

Fields
Field Name Description
gatekeeperNetwork - CivicGateway! The network used by the Civic Gateway for user validation.
expiry - String The expiry date of the Civic Gateway pass (optional).
walletIndex - Int! Index of the wallet associated with the user.
Example
{
  "gatekeeperNetwork": "LivenessPass",
  "expiry": "abc123",
  "walletIndex": 123
}

SocialInfo

Fields
Field Name Description
twitter - String Twitter handle of the user (optional).
discord - String Discord handle of the user (optional).
steam - String Steam ID of the user (optional).
civic - [CivicInfo] Civic ID of the user (optional).
Example
{
  "twitter": "abc123",
  "discord": "xyz789",
  "steam": "abc123",
  "civic": [CivicInfo]
}

Profile

Fields
Field Name Description
address - Bytes! The address of the profile.
tree_id - Bytes! ID of the Merkle tree associated with the profile.
leaf_idx - BigInt! Index of the leaf in the Merkle tree.
proof - Proof Proof of the profile's existence in the Merkle tree (optional).
project - Pubkey! Project associated with the profile.
userId - Int! User ID associated with the profile.
identity - String! Identity string associated with the profile.
info - ProfileInfo! Information associated with the profile.
platformData - PlatformData! Platform-specific data associated with the profile.
customData - VecMap! Custom data associated with the profile.
Example
{
  "address": Bytes,
  "tree_id": Bytes,
  "leaf_idx": {},
  "proof": Proof,
  "project": Pubkey,
  "userId": 123,
  "identity": "xyz789",
  "info": ProfileInfo,
  "platformData": PlatformData,
  "customData": VecMap
}

ProfileInfo

Fields
Field Name Description
name - String Name of the profile (optional).
bio - String Bio of the profile (optional).
pfp - String Profile picture URL of the profile (optional).
Example
{
  "name": "xyz789",
  "bio": "xyz789",
  "pfp": "abc123"
}

PlatformData

Fields
Field Name Description
custom - VecMap! Custom platform data associated with the profile.
xp - Int! Experience points associated with the profile.
achievements - [Int!]! List of achievements associated with the profile.
Example
{"custom": VecMap, "xp": 987, "achievements": [987]}

AssociatedProgramInput

Fields
Input Field Description
address - String! Address of the associated program.
trustedActions - [SerializableActionsInput!]! List of actions trusted by the associated program.
Example
{
  "address": "abc123",
  "trustedActions": [SerializableActionsInput]
}

SerializableActionsInput

Fields
Input Field Description
kind - String! Type of action that can be serialized.
Example
{"kind": "abc123"}

ServiceDelegationInput

Fields
Input Field Description
HiveControl - [ServiceDelegationHiveControl!] Service delegation for Hive Control.
AssetAssembler - [ServiceDelegationAssetAssembler!] Service delegation for Asset Assembler.
AssetManager - [ServiceDelegationAssetManager!] Service delegation for Asset Manager.
CurrencyManager - [ServiceDelegationCurrencyManager!] Service delegation for Resource Manager.
NectarStaking - [ServiceDelegationNectarStaking!] Service delegation for Nectar Staking.
NectarMissions - [ServiceDelegationNectarMissions!] Service delegation for Nectar Missions.
BuzzGuild - [ServiceDelegationBuzzGuild!] Service delegation for Buzz Guild.
Example
{
  "HiveControl": [ServiceDelegationHiveControl],
  "AssetAssembler": [ServiceDelegationAssetAssembler],
  "AssetManager": [ServiceDelegationAssetManager],
  "CurrencyManager": [ServiceDelegationCurrencyManager],
  "NectarStaking": [ServiceDelegationNectarStaking],
  "NectarMissions": [ServiceDelegationNectarMissions],
  "BuzzGuild": [ServiceDelegationBuzzGuild]
}

ServiceDelegationHiveControl

Fields
Input Field Description
permission - HiveControlPermissionInput! Permissions for Hive Control service delegation.
Example
{"permission": "ManageCriterias"}

ServiceDelegationAssetAssembler

Fields
Input Field Description
index - Int! Index for the Asset Assembler service delegation.
permission - AssetAssemblerPermissionInput! Permissions for Asset Assembler service delegation.
Example
{"index": 987, "permission": "ManageAssembler"}

ServiceDelegationAssetManager

Fields
Input Field Description
index - Int! Index for the Asset Manager service delegation.
permission - AssetManagerPermissionInput! Permissions for Asset Manager service delegation.
Example
{"index": 123, "permission": "ManageAssets"}

ServiceDelegationCurrencyManager

Fields
Input Field Description
permission - CurrencyManagerPermissionInput! Permissions for Currency Manager service delegation.
Example
{"permission": "ManageCurrencies"}

ServiceDelegationNectarStaking

Fields
Input Field Description
index - Int! Index for the Nectar Staking service delegation.
permission - NectarStakingPermissionInput! Permissions for Nectar Staking service delegation.
Example
{"index": 987, "permission": "ManageStakingPool"}

ServiceDelegationNectarMissions

Fields
Input Field Description
index - Int! Index for the Nectar Missions service delegation.
permission - NectarMissionsPermissionInput! Permissions for Nectar Missions service delegation.
Example
{"index": 987, "permission": "ManageMissionPool"}

ServiceDelegationBuzzGuild

Fields
Input Field Description
index - Int! Index for the Buzz Guild service delegation.
permission - BuzzGuildPermissionInput! Permissions for Buzz Guild service delegation.
Example
{"index": 987, "permission": "ManageGuildKit"}

HiveControlPermissionInput

Values
Enum Value Description

ManageCriterias

Permission to manage badge criteria.

ManageServices

Permission to manage services.

ManageIndexing

Permission to manage indexing.

ManageProfiles

Permission to manage profiles.
Example
"ManageCriterias"

AssetAssemblerPermissionInput

Values
Enum Value Description

ManageAssembler

Permission to manage the assembler.

UpdateBlock

Permission to update blocks in the assembler.

UpdateBlockDefinition

Permission to update block definitions in the assembler.

UpdateNFT

Permission to update NFTs in the assembler.

InitialArtGeneration

Permission for initial art generation in the assembler.
Example
"ManageAssembler"

AssetManagerPermissionInput

Values
Enum Value Description

ManageAssets

Permission to manage assets.
Example
"ManageAssets"

ModifyServiceDelegationInput

Fields
Input Field Description
HiveControl - ServiceDelegationHiveControl Service delegation modifications for Hive Control.
AssetAssembler - ServiceDelegationAssetAssembler Service delegation modifications for Asset Assembler.
AssetManager - ServiceDelegationAssetManager Service delegation modifications for Asset Manager.
CurrencyManager - ServiceDelegationCurrencyManager Service delegation modifications for Currency Manager.
NectarStaking - ServiceDelegationNectarStaking Service delegation modifications for Nectar Staking.
NectarMissions - ServiceDelegationNectarMissions Service delegation modifications for Nectar Missions.
BuzzGuild - ServiceDelegationBuzzGuild Service delegation modifications for Buzz Guild.
Example
{
  "HiveControl": ServiceDelegationHiveControl,
  "AssetAssembler": ServiceDelegationAssetAssembler,
  "AssetManager": ServiceDelegationAssetManager,
  "CurrencyManager": ServiceDelegationCurrencyManager,
  "NectarStaking": ServiceDelegationNectarStaking,
  "NectarMissions": ServiceDelegationNectarMissions,
  "BuzzGuild": ServiceDelegationBuzzGuild
}

ModifyDelegationInput

Fields
Input Field Description
delegation - ModifyServiceDelegationInput Service delegation modifications.
index - Int Index of the service delegation to modify.
Example
{"delegation": ModifyServiceDelegationInput, "index": 123}

Account

Fields
Field Name Description
address - Bytes! The address of the account.
program_id - Bytes! Program ID associated with the account.
discriminator - Bytes! Discriminator for identifying the type of account.
parsed_data - JSON Parsed data of the account, represented as JSON.
Example
{
  "address": Bytes,
  "program_id": Bytes,
  "discriminator": Bytes,
  "parsed_data": {}
}

CompressedAccount

Fields
Field Name Description
tree_id - Bytes ID of the Merkle tree associated with the account.
leaf_idx - BigInt Index of the leaf in the Merkle tree.
schema_validated - Boolean Indicates whether the schema has been validated.
raw_data - Bytes Raw data of the compressed account.
parsed_data - JSON Parsed data of the compressed account, represented as JSON.
Example
{
  "tree_id": Bytes,
  "leaf_idx": {},
  "schema_validated": false,
  "raw_data": Bytes,
  "parsed_data": {}
}

Proof

Fields
Field Name Description
root - Bytes! Root hash of the Merkle tree.
proof - [Bytes!]! Proof hashes in the Merkle tree.
node_index - BigInt! Index of the node in the Merkle tree.
leaf - Bytes! Leaf hash in the Merkle tree.
maxDepth - Int! Depth of the node in the Merkle tree.
leaf_index - BigInt! Index of the leaf in the Merkle tree.
tree_id - Bytes! ID of the Merkle tree.
canopy_depth - Int! Depth of the canopy in the Merkle tree.
Example
{
  "root": Bytes,
  "proof": [Bytes],
  "node_index": {},
  "leaf": Bytes,
  "maxDepth": 123,
  "leaf_index": {},
  "tree_id": Bytes,
  "canopy_depth": 123
}

DisrcriminatorFilter

Fields
Input Field Description
programId - String! Program ID to filter accounts by.
accountName - String! Account name to filter by.
Example
{
  "programId": "xyz789",
  "accountName": "xyz789"
}

TreeLeaf

Fields
Input Field Description
tree - Bytes! The tree's hash.
index - BigInt The index of the leaf in the tree.
Example
{"tree": Bytes, "index": {}}

TreeSetupConfig

Fields
Input Field Description
basic - BasicTreeConfig Basic configuration for setting up the tree.
advanced - AdvancedTreeConfig Advanced configuration for setting up the tree.
Example
{
  "basic": BasicTreeConfig,
  "advanced": AdvancedTreeConfig
}

BasicTreeConfig

Fields
Input Field Description
numAssets - Int! Number of assets for basic tree configuration.
Example
{"numAssets": 123}

AdvancedTreeConfig

Fields
Input Field Description
maxDepth - Int! Maximum depth of the tree.
maxBufferSize - Int! Maximum buffer size for the tree.
canopyDepth - Int! Canopy depth of the tree.
Example
{"maxDepth": 123, "maxBufferSize": 987, "canopyDepth": 987}

CreateCreateProjectTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for creating a project.
project - String! Identifier of the created project.
Example
{
  "tx": Transaction,
  "project": "abc123"
}

CreateAssemblerConfigTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for creating an assembler configuration.
assemblerConfig - Bytes! Serialized assembler configuration data.
treeAddress - Bytes! Tree address associated with the assembler configuration.
proofBytes - Int! Proof bytes associated with the assembler configuration.
space - Int! Space required for the assembler configuration.
cost - Float Cost of the assembler configuration.
maxTreeCapacity - Int! Maximum tree capacity for the assembler configuration.
Example
{
  "tx": Transaction,
  "assemblerConfig": Bytes,
  "treeAddress": Bytes,
  "proofBytes": 987,
  "space": 987,
  "cost": 123.45,
  "maxTreeCapacity": 987
}

TreeSetupResponse

Fields
Field Name Description
tx - Transaction! Transaction data for setting up a tree.
treeAddress - Bytes! Tree address associated with the setup.
proofBytes - Int! Proof bytes associated with the tree setup.
space - Int! Space required for the tree setup.
cost - Float Cost of the tree setup.
maxTreeCapacity - Int! Maximum tree capacity.
Example
{
  "tx": Transaction,
  "treeAddress": Bytes,
  "proofBytes": 123,
  "space": 987,
  "cost": 987.65,
  "maxTreeCapacity": 987
}

Holding

Fields
Field Name Description
address - Bytes! The address of the holding.
tree_id - Bytes! Tree ID associated with the holding.
leaf_idx - BigInt! Index of the leaf in the tree.
holder - Pubkey! Holder of the holding.
balance - BigInt! Balance of the holding.
characteristics - VecMap Characteristics associated with the holding.
proof - Proof Proof associated with the holding.
Example
{
  "address": Bytes,
  "tree_id": Bytes,
  "leaf_idx": {},
  "holder": Pubkey,
  "balance": {},
  "characteristics": VecMap,
  "proof": Proof
}

Badges

BadgeCriteria

Fields
Field Name Description
startTime - BigInt! Start time for the badge criteria.
endTime - BigInt! End time for the badge criteria.
index - Int! Index of the badge criteria.
condition - BadgesCondition! Condition for earning the badge.
Example
{"startTime": {}, "endTime": {}, "index": 987, "condition": "Public"}

Guild

UsedByGuild

Fields
Field Name Description
id - Pubkey! Guild ID associated with the character.
role - GuildRole! Role of the character in the guild.
order - Int! Order of the character in the guild.
Example
{
  "id": Pubkey,
  "role": GuildRole,
  "order": 987
}

GuildRole

Fields
Field Name Description
kind - String! Type of role in the guild.
Example
{"kind": "abc123"}

GuildRoleFilter

Fields
Input Field Description
kind - String Type of role in the guild to filter by.
Example
{"kind": "abc123"}

BuzzGuildPermissionInput

Values
Enum Value Description

ManageGuildKit

Permission to manage guild kits.
Example
"ManageGuildKit"

Mission

UsedByMission

Fields
Field Name Description
missionId - Pubkey! Mission ID associated with the character.
participationId - String! Participation ID of the character in the mission.
rewards - [EarnedRewards!]! Rewards earned by the character during the mission.
endTime - Int! End time of the mission.
Example
{
  "missionId": Pubkey,
  "participationId": "abc123",
  "rewards": [EarnedRewards],
  "endTime": 123
}

EarnedRewards

Fields
Field Name Description
delta - Int! Amount of the reward earned.
rewardIdx - Int! Index of the reward.
collected - Boolean! Whether the reward has been collected.
Example
{"delta": 987, "rewardIdx": 123, "collected": true}

EarnedRewardsFilter

Fields
Input Field Description
delta - Int Amount of the reward to filter by.
rewardIdx - Int Index of the reward to filter by.
Example
{"delta": 987, "rewardIdx": 123}

NectarMissionsPermissionInput

Values
Enum Value Description

ManageMissionPool

Permission to manage mission pools.

WithdrawMissionPoolRewards

Permission to withdraw rewards from mission pools.
Example
"ManageMissionPool"

MissionPool

Fields
Field Name Description
address - Bytes! The address of the mission pool.
program_id - Bytes! Program ID associated with the mission pool.
discriminator - Bytes! Discriminator for identifying the type of mission pool.
bump - Int! Bump value associated with the mission pool.
project - Pubkey! Project associated with the mission pool.
name - String! Name of the mission pool.
factionsMerkleRoot - Bytes! Merkle root of the factions associated with the mission pool.
randomizerRound - Int! Randomizer round number for the mission pool.
characterModels - [Pubkey]! List of character models associated with the mission pool.
guildKits - [Int]! List of guild kits associated with the mission pool.
Example
{
  "address": Bytes,
  "program_id": Bytes,
  "discriminator": Bytes,
  "bump": 987,
  "project": Pubkey,
  "name": "xyz789",
  "factionsMerkleRoot": Bytes,
  "randomizerRound": 987,
  "characterModels": [Pubkey],
  "guildKits": [987]
}

Mission

Fields
Field Name Description
address - Bytes! The address of the mission.
program_id - Bytes! Program ID associated with the mission.
discriminator - Bytes! Discriminator for identifying the type of mission.
bump - Int! Bump value associated with the mission.
project - Pubkey! Project associated with the mission.
missionPool - Pubkey! Mission pool to which the mission belongs.
name - String! Name of the mission.
minXp - BigInt! Minimum experience points required for the mission.
cost - MissionCost! Cost associated with participating in the mission.
requirement - MissionRequirement! Requirement that must be met to participate in the mission.
rewards - [Reward]! List of rewards available for completing the mission.
Example
{
  "address": Bytes,
  "program_id": Bytes,
  "discriminator": Bytes,
  "bump": 123,
  "project": Pubkey,
  "missionPool": Pubkey,
  "name": "xyz789",
  "minXp": {},
  "cost": MissionCost,
  "requirement": TimeRequirement,
  "rewards": [Reward]
}

MissionCost

Fields
Field Name Description
amount - BigInt! Amount of currency or resources required for the mission.
resource_address - Pubkey! Resource address associated with the cost.
Example
{"amount": {}, "resource_address": Pubkey}

MissionRequirement

Types
Union Types

TimeRequirement

Example
TimeRequirement

TimeRequirement

Fields
Field Name Description
kind - String! Type of time requirement.
params - TimeRequirementParams! Parameters for the time requirement.
Example
{
  "kind": "abc123",
  "params": TimeRequirementParams
}

TimeRequirementParams

Fields
Field Name Description
duration - BigInt! Duration required to complete the mission.
Example
{"duration": {}}

Reward

Fields
Field Name Description
min - BigInt! Minimum value of the reward.
max - BigInt! Maximum value of the reward.
rewardType - RewardType Type of reward offered by the mission.
Example
{"min": {}, "max": {}, "rewardType": XpRewardType}

RewardType

Types
Union Types

XpRewardType

ResourceRewardType

Example
XpRewardType

XpRewardType

Fields
Field Name Description
kind - String! Type of experience point reward.
Example
{"kind": "abc123"}

UpdateMissionInput

Fields
Input Field Description
cost - NewMissionCost The new cost associated with the mission
minXp - BigInt New minimum experience points required to take part in the mission
duration - BigInt The new duration of the mission in seconds
removeRewards - [Int!] Array of reward indexes to be removed from the mission
newRewards - [MissionReward!] Array of new rewards to be added to the mission
updateRewards - [MissionReward!] Array of rewards to update values for in the mission
Example
{
  "cost": NewMissionCost,
  "minXp": {},
  "duration": {},
  "removeRewards": [123],
  "newRewards": [MissionReward],
  "updateRewards": [MissionReward]
}

NewMissionPoolData

Fields
Input Field Description
project - String! Project associated with the mission pool.
authority - String! Authority associated with the mission pool.
delegateAuthority - String Delegate authority for the mission pool (optional).
payer - String! Payer for the mission pool.
characterModel - String! Character model associated with the mission pool.
name - String! Name of the mission pool.
Example
{
  "project": "abc123",
  "authority": "xyz789",
  "delegateAuthority": "xyz789",
  "payer": "xyz789",
  "characterModel": "xyz789",
  "name": "xyz789"
}

UpdateMissionPoolData

Fields
Input Field Description
project - String! Project associated with the mission pool.
missionPool - String! Existing mission pool to update.
characterModel - String Character model to associate with the mission pool (optional).
authority - String! Authority associated with the mission pool.
delegateAuthority - String Delegate authority for the mission pool (optional).
payer - String! Payer for the mission pool update.
Example
{
  "project": "xyz789",
  "missionPool": "xyz789",
  "characterModel": "xyz789",
  "authority": "xyz789",
  "delegateAuthority": "abc123",
  "payer": "xyz789"
}

NewMissionCost

Fields
Input Field Description
address - String! Address associated with the cost.
amount - BigInt! Amount of cost for the mission.
Example
{"address": "abc123", "amount": {}}

RewardKind

Values
Enum Value Description

Xp

Reward in the form of experience points.

Resource

Resource in the form of Resource.
Example
"Xp"

MissionReward

Fields
Input Field Description
kind - RewardKind! Type of reward for the mission.
min - BigInt! Minimum value of the reward.
max - BigInt! Maximum value of the reward.
resource - String Resource associated with the reward (used only if kind is Resource).
Example
{
  "kind": "Xp",
  "min": {},
  "max": {},
  "resource": "xyz789"
}

NewMissionData

Fields
Input Field Description
project - String! Project associated with the mission.
missionPool - String! Mission pool associated with the mission.
authority - String! Authority associated with the mission.
delegateAuthority - String Delegate authority for the mission (optional).
payer - String! Payer for the mission.
name - String! Name of the mission.
minXp - BigInt! Minimum experience points required for the mission.
cost - NewMissionCost! Cost associated with the mission.
duration - BigInt! Duration of the mission.
rewards - [MissionReward]! Rewards associated with the mission.
Example
{
  "project": "abc123",
  "missionPool": "xyz789",
  "authority": "xyz789",
  "delegateAuthority": "abc123",
  "payer": "abc123",
  "name": "abc123",
  "minXp": {},
  "cost": NewMissionCost,
  "duration": {},
  "rewards": [MissionReward]
}

ParticipateOnMissionData

Fields
Input Field Description
mission - String! Mission to participate in.
characterAddresses - [String!]! Addresses of characters participating in the mission.
authority - String! Authority associated with the mission.
payer - String Payer for the mission participation (optional).
Example
{
  "mission": "abc123",
  "characterAddresses": ["xyz789"],
  "authority": "abc123",
  "payer": "xyz789"
}

RecallFromMissionData

Fields
Input Field Description
mission - String! Mission to recall characters from.
characterAddresses - [String!]! Addresses of characters being recalled from the mission.
authority - String! Authority associated with the mission.
payer - String Payer for the recall (optional).
Example
{
  "mission": "xyz789",
  "characterAddresses": ["abc123"],
  "authority": "abc123",
  "payer": "xyz789"
}

CreateBadgeCriteriaInput

Fields
Input Field Description
projectAddress - Pubkey! Address of the project to create badge criteria for.
authority - Pubkey! Authority associated with the badge criteria.
payer - Pubkey Payer for the badge criteria creation (optional).
startTime - Int Start time for the badge criteria (optional).
endTime - Int End time for the badge criteria (optional).
badgeIndex - Int! Index of the badge.
condition - BadgesCondition! Condition for earning the badge.
Example
{
  "projectAddress": Pubkey,
  "authority": Pubkey,
  "payer": Pubkey,
  "startTime": 987,
  "endTime": 987,
  "badgeIndex": 123,
  "condition": "Public"
}

CreateCreateMissionPoolTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for creating a mission pool.
missionPoolAddress - Bytes! Serialized mission pool address data.
Example
{
  "tx": Transaction,
  "missionPoolAddress": Bytes
}

CreateUpdateMissionPoolTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for updating a mission pool.
Example
{"tx": Transaction}

CreateCreateMissionTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for creating a mission.
missionAddress - Bytes! Serialized mission address data.
Example
{
  "tx": Transaction,
  "missionAddress": Bytes
}

Staking

Wrapped

Fields
Field Name Description
mint - Pubkey! Mint address of the wrapped NFT.
criteria - NftWrapCriteria! Criteria for wrapping the NFT.
kind - SourceKind Type of the source kind.
Example
{
  "mint": Pubkey,
  "criteria": NftWrapCriteria,
  "kind": "Assembled"
}

NftWrapCriteria

Fields
Field Name Description
kind - String! Type of the NFT wrap criteria.
params - Pubkey! Parameters associated with the NFT wrap criteria.
Example
{
  "kind": "abc123",
  "params": Pubkey
}

NftWrapCriteriaInput

Fields
Input Field Description
kind - String! Type of the NFT wrap criteria.
params - Bytes! Parameters associated with the NFT wrap criteria.
Example
{
  "kind": "abc123",
  "params": Bytes
}

UsedByStaking

Fields
Field Name Description
pool - Pubkey! Pool where the character is staked.
staker - Pubkey! Staker who staked the character.
stakedAt - Int! Timestamp when the character was staked.
claimedAt - Int! Timestamp when the rewards were last claimed.
Example
{
  "pool": Pubkey,
  "staker": Pubkey,
  "stakedAt": 123,
  "claimedAt": 123
}

NftWrapCriteriaFilter

Fields
Input Field Description
kind - String Type of the NFT wrap criteria to filter by.
params - Pubkey Parameters to filter the NFT wrap criteria by.
Example
{
  "kind": "xyz789",
  "params": Pubkey
}

NectarStakingPermissionInput

Values
Enum Value Description

ManageStakingPool

Permission to manage staking pools.

WithdrawStakingPoolRewards

Permission to withdraw rewards from staking pools.
Example
"ManageStakingPool"

StakingPool

Fields
Field Name Description
address - Bytes! The address of the staking pool.
bump - Int! Bump value associated with the staking pool.
project - Pubkey! Project associated with the staking pool.
key - Pubkey! Key associated with the staking pool.
resource - Pubkey! Resources associated with the staking pool.
lockType - LockType! Type of lock associated with the staking pool.
name - String! Name of the staking pool.
rewardsPerDuration - BigInt! Rewards per specified duration in the staking pool.
rewardsDuration - BigInt! Duration for which rewards are distributed.
maxRewardsDuration - BigInt Maximum duration for rewards distribution (optional).
minStakeDuration - BigInt Minimum duration for which staking is required.
cooldownDuration - BigInt Duration of cooldown period after unstaking.
resetStakeDuration - Boolean! Indicates whether the staking duration resets on additional staking.
allowedMints - Boolean! Indicates whether only allowed mints are stakable.
totalStaked - BigInt! Total amount staked in the staking pool.
startTime - BigInt Start time of the staking pool.
endTime - BigInt End time of the staking pool.
characterModels - [Pubkey]! List of character models allowed in the staking pool.
Example
{
  "address": Bytes,
  "bump": 987,
  "project": Pubkey,
  "key": Pubkey,
  "resource": Pubkey,
  "lockType": LockType,
  "name": "xyz789",
  "rewardsPerDuration": {},
  "rewardsDuration": {},
  "maxRewardsDuration": {},
  "minStakeDuration": {},
  "cooldownDuration": {},
  "resetStakeDuration": true,
  "allowedMints": false,
  "totalStaked": {},
  "startTime": {},
  "endTime": {},
  "characterModels": [Pubkey]
}

LockType

Fields
Field Name Description
kind - String Type of lock associated with the staking pool.
Example
{"kind": "xyz789"}

Multipliers

Fields
Field Name Description
address - Bytes! The address of the multipliers.
bump - Int! Bump value associated with the multipliers.
stakingPool - Pubkey! Staking pool associated with the multipliers.
decimals - Int! Number of decimal places used by the multipliers.
durationMultipliers - [Multiplier!]! List of multipliers based on staking duration.
countMultipliers - [Multiplier!]! List of multipliers based on the number of NFTs.
creatorMultipliers - [Multiplier!]! List of multipliers based on the creator.
collectionMultipliers - [Multiplier!]! List of multipliers based on the collection.
Example
{
  "address": Bytes,
  "bump": 987,
  "stakingPool": Pubkey,
  "decimals": 123,
  "durationMultipliers": [Multiplier],
  "countMultipliers": [Multiplier],
  "creatorMultipliers": [Multiplier],
  "collectionMultipliers": [Multiplier]
}

Multiplier

Fields
Field Name Description
value - BigInt! Value of the multiplier.
multiplierType - MultiplierType! Type of the multiplier.
Example
{"value": {}, "multiplierType": MultiplierType}

MultiplierType

Fields
Field Name Description
kind - String! Type of the multiplier.
params - MultiplierTypeParams! Parameters associated with the multiplier type.
Example
{
  "kind": "xyz789",
  "params": MultiplierTypeParamsStakeDuration
}

MultiplierTypeParams

MultiplierTypeParamsStakeDuration

Fields
Field Name Description
minDuration - BigInt! Minimum duration required for the stake.
Example
{"minDuration": {}}

MultiplierTypeParamsNFTCount

Fields
Field Name Description
minCount - BigInt! Minimum number of NFTs required.
Example
{"minCount": {}}

MultiplierTypeParamsCreator

Fields
Field Name Description
creator - Pubkey! Creator associated with the multiplier.
Example
{"creator": Pubkey}

MultiplierTypeParamsCollection

Fields
Field Name Description
collection - Pubkey! Collection associated with the multiplier.
Example
{"collection": Pubkey}

Staker

Fields
Field Name Description
address - Bytes! The address of the staker.
bump - Int! Bump value associated with the staker.
stakingPool - Pubkey! Staking pool in which the staker has staked.
wallet - Pubkey! Wallet address of the staker.
totalStaked - BigInt! Total amount staked by the staker.
Example
{
  "address": Bytes,
  "bump": 987,
  "stakingPool": Pubkey,
  "wallet": Pubkey,
  "totalStaked": {}
}

LockTypeEnum

Values
Enum Value Description

Freeze

Freezing type of lock.

Custoday

Custody type of lock.
Example
"Freeze"

CreateStakingPoolMetadataInput

Fields
Input Field Description
name - String! Name of the staking pool.
rewardsPerDuration - BigInt! Rewards per specified duration in the staking pool.
rewardsDuration - BigInt! Duration for which rewards are distributed.
maxRewardsDuration - BigInt Maximum duration for rewards distribution (optional).
minStakeDuration - BigInt Minimum duration for which staking is required.
cooldownDuration - BigInt Duration of cool down period after unstaking.
resetStakeDuration - Boolean! Indicates whether the staking duration resets on additional staking.
startTime - BigInt! Start time of the staking pool.
lockType - LockTypeEnum Type of lock associated with the staking pool.
endTime - BigInt End time of the staking pool (optional).
Example
{
  "name": "xyz789",
  "rewardsPerDuration": {},
  "rewardsDuration": {},
  "maxRewardsDuration": {},
  "minStakeDuration": {},
  "cooldownDuration": {},
  "resetStakeDuration": true,
  "startTime": {},
  "lockType": "Freeze",
  "endTime": {}
}

UpdateStakingPoolMetadataInput

Fields
Input Field Description
name - String Name of the staking pool (optional).
rewardsPerDuration - BigInt Rewards per specified duration in the staking pool (optional).
rewardsDuration - BigInt Duration for which rewards are distributed (optional).
maxRewardsDuration - BigInt Maximum duration for rewards distribution (optional).
minStakeDuration - BigInt Minimum duration for which staking is required (optional).
cooldownDuration - BigInt Duration of cooldown period after unstaking (optional).
resetStakeDuration - Boolean Indicates whether the staking duration resets on additional staking (optional).
startTime - BigInt Start time of the staking pool (optional).
endTime - BigInt End time of the staking pool (optional).
Example
{
  "name": "abc123",
  "rewardsPerDuration": {},
  "rewardsDuration": {},
  "maxRewardsDuration": {},
  "minStakeDuration": {},
  "cooldownDuration": {},
  "resetStakeDuration": true,
  "startTime": {},
  "endTime": {}
}

MultiplierTypeInput

Fields
Input Field Description
minStakeDuration - BigInt Minimum duration required for the stake (optional).
minNftCount - BigInt Minimum number of NFTs required (optional).
creator - String Creator associated with the multiplier (optional).
collection - String Collection associated with the multiplier (optional).
Example
{
  "minStakeDuration": {},
  "minNftCount": {},
  "creator": "xyz789",
  "collection": "xyz789"
}

AddMultiplierMetadataInput

Fields
Input Field Description
value - BigInt! Value of the multiplier.
type - MultiplierTypeInput Type of the multiplier.
Example
{"value": {}, "type": MultiplierTypeInput}

InitStakingMultiplierMetadataInput

Fields
Input Field Description
decimals - Int! Number of decimal places used by the multipliers.
multipliers - [AddMultiplierMetadataInput]! List of multipliers to initialize.
Example
{
  "decimals": 123,
  "multipliers": [AddMultiplierMetadataInput]
}

CreateInitMultipliersTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for initializing multipliers.
multipliersAddress - Bytes! Serialized multipliers address data.
Example
{
  "tx": Transaction,
  "multipliersAddress": Bytes
}

CreateCreateStakingPoolTransactionResponse

Fields
Field Name Description
transactions - Transactions! Multiple transactions for creating a staking pool.
stakingPoolAddress - Bytes! Serialized staking pool address data.
multipliersAddress - Bytes Serialized multipliers address data (optional).
Example
{
  "transactions": Transactions,
  "stakingPoolAddress": Bytes,
  "multipliersAddress": Bytes
}

Projects

AssemblerConfig

Fields
Field Name Description
address - Bytes! The address of the assembler configuration.
program_id - Bytes! Program ID associated with the assembler configuration.
discriminator - Bytes! Discriminator for the assembler configuration.
ticker - String! Ticker symbol for the assembler configuration.
project - Pubkey! Project associated with the assembler configuration.
order - [String!]! Order of operations or configuration steps.
merkle_trees - ControlledMerkleTrees! Controlled Merkle trees associated with the assembler configuration.
Example
{
  "address": Bytes,
  "program_id": Bytes,
  "discriminator": Bytes,
  "ticker": "abc123",
  "project": Pubkey,
  "order": ["abc123"],
  "merkle_trees": ControlledMerkleTrees
}

AssemblerConfigInput

Fields
Input Field Description
assemblerConfig - String! Identifier of the assembler configuration.
name - String! Name of the assembler configuration.
symbol - String! Symbol associated with the assembler configuration.
description - String! Description of the assembler configuration.
creators - [NftCreatorInput!]! List of creators associated with the assembler configuration.
sellerFeeBasisPoints - Int! Seller fee basis points for the assembler configuration.
collectionName - String! Name of the collection the assembler configuration belongs to.
Example
{
  "assemblerConfig": "abc123",
  "name": "xyz789",
  "symbol": "xyz789",
  "description": "xyz789",
  "creators": [NftCreatorInput],
  "sellerFeeBasisPoints": 123,
  "collectionName": "abc123"
}

Assembled

Fields
Field Name Description
hash - Pubkey! Hash associated with the assembled character.
mint - Pubkey! Mint address of the assembled character.
uri - String! URI associated with the assembled character.
attributes - VecMapGeneric! Attributes associated with the assembled character.
updateAuthority - Pubkey! Update authority for the assembled character.
Example
{
  "hash": Pubkey,
  "mint": Pubkey,
  "uri": "abc123",
  "attributes": VecMapGeneric,
  "updateAuthority": Pubkey
}

Character

CharacterHistory

Fields
Field Name Description
address - Bytes! The address of the character.
event - String! The event associated with the character.
event_data - JSON! Additional data related to the event.
time - String! The time when the event occurred.
Example
{
  "address": Bytes,
  "event": "abc123",
  "event_data": {},
  "time": "abc123"
}

CharacterTrait

Fields
Field Name Description
address - Bytes! The address of the character trait.
tree_id - Bytes! ID of the Merkle tree associated with the trait.
leaf_idx - BigInt! Index of the leaf in the Merkle tree.
label - String! Label of the trait.
name - String! Name of the trait.
uri - String! URI associated with the trait.
proof - Proof Proof of the trait's existence in the Merkle tree (optional).
Example
{
  "address": Bytes,
  "tree_id": Bytes,
  "leaf_idx": {},
  "label": "abc123",
  "name": "abc123",
  "uri": "abc123",
  "proof": Proof
}

CharacterTraitInput

Fields
Input Field Description
label - String! Label of the trait.
name - String! Name of the trait.
uri - String! URI associated with the trait.
Example
{
  "label": "abc123",
  "name": "abc123",
  "uri": "abc123"
}

CharacterModel

Fields
Field Name Description
address - Bytes! The address of the character model.
program_id - Bytes! Program ID associated with the character model.
discriminator - Bytes! Discriminator for the character model.
bump - Int! Bump value for the character model.
key - Pubkey! Key associated with the character model.
project - Pubkey! Project associated with the character model.
config - CharacterConfig! Configuration settings for the character model.
attributes - VecMapGeneric! Attributes associated with the character model.
merkle_trees - ControlledMerkleTrees! Controlled Merkle trees associated with the character model.
Example
{
  "address": Bytes,
  "program_id": Bytes,
  "discriminator": Bytes,
  "bump": 987,
  "key": Pubkey,
  "project": Pubkey,
  "config": CharacterConfigWrapped,
  "attributes": VecMapGeneric,
  "merkle_trees": ControlledMerkleTrees
}

CharacterConfig

Example
CharacterConfigWrapped

CharacterConfigWrapped

Fields
Field Name Description
kind - String! Type of the character configuration.
criterias - [NftWrapCriteria!]! Criteria for wrapping NFTs associated with the character.
Example
{
  "kind": "abc123",
  "criterias": [NftWrapCriteria]
}

CharacterConfigAssembled

Fields
Field Name Description
kind - String! Type of the character configuration.
assemblerConfig - Pubkey! Assembler configuration associated with the character.
name - String! Name of the character.
symbol - String! Symbol associated with the character.
description - String! Description of the character.
creators - [NftCreator!]! List of creators associated with the character.
sellerFeeBasisPoints - Int! Seller fee basis points for the character.
collectionName - String! Name of the collection the character belongs to.
Example
{
  "kind": "abc123",
  "assemblerConfig": Pubkey,
  "name": "xyz789",
  "symbol": "xyz789",
  "description": "abc123",
  "creators": [NftCreator],
  "sellerFeeBasisPoints": 987,
  "collectionName": "abc123"
}

NftCreator

Fields
Field Name Description
address - Pubkey! Address of the NFT creator.
share - Int! Share percentage of the NFT creator.
Example
{"address": Pubkey, "share": 987}

CharacterConfigInput

Fields
Input Field Description
kind - String! Type of the character configuration.
criterias - [NftWrapCriteriaInput!] Criteria for wrapping NFTs associated with the character.
assemblerConfigInput - AssemblerConfigInput Assembler configuration input for the character.
Example
{
  "kind": "xyz789",
  "criterias": [NftWrapCriteriaInput],
  "assemblerConfigInput": AssemblerConfigInput
}

NftCreatorInput

Fields
Input Field Description
address - String! Address of the NFT creator.
share - Int! Share percentage of the NFT creator.
Example
{"address": "abc123", "share": 987}

Character

Fields
Field Name Description
address - Bytes! The address of the character.
tree_id - Bytes! ID of the Merkle tree associated with the character.
leaf_idx - BigInt! Index of the leaf in the Merkle tree.
owner - Pubkey! Owner of the character.
source - CharacterSource! Source of the character's attributes or origin.
usedBy - CharacterUsedBy! Usage details of the character.
proof - Proof Proof of the character's existence in the Merkle tree (optional).
asset - JSON Additional asset data associated with the character.
Example
{
  "address": Bytes,
  "tree_id": Bytes,
  "leaf_idx": {},
  "owner": Pubkey,
  "source": CharacterSource,
  "usedBy": CharacterUsedBy,
  "proof": Proof,
  "asset": {}
}

CharacterSource

Fields
Field Name Description
kind - String! Type of the character source.
params - CharacterSourceParams! Parameters associated with the character source.
Example
{
  "kind": "abc123",
  "params": Wrapped
}

CharacterSourceParams

Types
Union Types

Wrapped

Assembled

Example
Wrapped

SourceKind

Values
Enum Value Description

Assembled

Character assembled from various attributes.

Nft

Character represented as an NFT.

Cnft

Character represented as a compressed NFT.

TokenExtensions

Character with token extensions.

MplCoreAsset

Character associated with MPL Core Asset.
Example
"Assembled"

CharacterUsedBy

Fields
Field Name Description
kind - String! Type of usage for the character.
params - CharacterUsedByParams Parameters associated with the character's usage.
Example
{
  "kind": "xyz789",
  "params": UsedByStaking
}

CharacterUsedByParams

Example
UsedByStaking

UsedByEjected

Fields
Field Name Description
mint - Pubkey! Mint address of the ejected character.
Example
{"mint": Pubkey}

UsedByCustom

Fields
Field Name Description
user - Pubkey! User associated with the custom usage of the character.
data - JSON! Additional data related to the custom usage.
Example
{"user": Pubkey, "data": {}}

CharactersFilter

Fields
Input Field Description
owner - Pubkey Owner of the characters to filter by.
source - CharacterSourceFilter Source filter criteria for the characters.
usedBy - CharacterUsedByFilter Usage filter criteria for the characters.
Example
{
  "owner": Pubkey,
  "source": CharacterSourceFilter,
  "usedBy": CharacterUsedByFilter
}

CharacterSourceFilter

Fields
Input Field Description
kind - String Type of the character source to filter by.
params - CharacterSourceParamsFilter Parameters to filter the character source by.
Example
{
  "kind": "xyz789",
  "params": CharacterSourceParamsFilter
}

CharacterSourceParamsFilter

Fields
Input Field Description
mint - Pubkey Mint address to filter the character source by.
criteria - NftWrapCriteriaFilter Criteria to filter the character source by.
is_compressed - Boolean Whether the character is compressed.
Example
{
  "mint": Pubkey,
  "criteria": NftWrapCriteriaFilter,
  "is_compressed": true
}

CharacterUsedByFilter

Fields
Input Field Description
kind - String Type of usage to filter the characters by.
params - CharacterUsedByParamsFilter Parameters to filter the character usage by.
Example
{
  "kind": "abc123",
  "params": CharacterUsedByParamsFilter
}

CharacterUsedByParamsFilter

Fields
Input Field Description
pool - Pubkey Pool address to filter staked characters by.
staker - Pubkey Staker address to filter staked characters by.
stakedAt - Int Timestamp to filter by when the characters were staked.
claimedAt - Int Timestamp to filter by when the rewards were claimed.
id - Pubkey Guild ID to filter characters by.
rewards - [EarnedRewardsFilter!] Rewards filter criteria.
endTime - Int End time to filter characters by.
rewardsCollected - Boolean Whether the rewards have been collected.
role - GuildRoleFilter Role filter criteria for characters in a guild.
order - Int Order to filter characters by.
mint - Pubkey Mint address to filter ejected characters by.
user - Pubkey User address to filter custom-used characters by.
Example
{
  "pool": Pubkey,
  "staker": Pubkey,
  "stakedAt": 987,
  "claimedAt": 123,
  "id": Pubkey,
  "rewards": [EarnedRewardsFilter],
  "endTime": 987,
  "rewardsCollected": true,
  "role": GuildRoleFilter,
  "order": 123,
  "mint": Pubkey,
  "user": Pubkey
}

CreateCharacterModelTransactionResponse

Fields
Field Name Description
tx - Transaction! Transaction data for creating a character model.
characterModel - Bytes! Serialized character model data.
Example
{
  "tx": Transaction,
  "characterModel": Bytes
}

ResourceStorage

Fields
Field Name Description
kind - ResourceStorageEnum! Type of source for the resource.
params - ResourceStorageParams Parameters associated with the source.
Example
{"kind": "AccountState", "params": ResourceStorageParams}

ResourceKindParamsWrappedMplCore

Fields
Field Name Description
characteristics - [String]! Array of characteristics associated with the resource.
Example
{"characteristics": ["abc123"]}

VecMapGeneric

Example
VecMapGeneric