๐Ÿ“ŠBumpkin ERC1155 Statistics

Coming soon...

To support our on-chain architecture, all of the following Bumpkin attributes are stored on chain using the ERC1155 standard.

  • Bumpkin Experience

  • Bumpkin Achievements

  • Bumpkin Skills

  • Bumpkin Analytics

ADDRESS: 0xcfA31cBAe3459c780999D12a9e5FdBd8E8588725

On Chain Analytics

Sunflower Land leans heavily on community development and transparency. To support community developers and emerging products, we have decided to shift all analytics to on chain.

This means that developers can query gameplay analytics around a Bumpkin character.

This can be useful for creating leaderboards, categorising and tracking player's progress.

Notes

The following items use 18 decimal places to support fractionalisation:

  • SFL Spent Activity

  • SFL Earned Activity

You will need to use fromWei from web3 utils to get the correct numbers.

Example

Get the total amount of Sunflowers Harvested

  const totalSunflowers: string = await new web3.eth.Contract(
    ABI as any,
    ADDRESS
  ).methods
    .totalSupply(
      1090
    )
    .call();

Get the experience that a Bumpkin has. To get a Bumpkin address please see Bumpkin ERC721

const experience: string[] = await new web3.eth.Contract(
    ABI as any,
    ADDRESS
  ).methods
    .balanceOf(
      // Bumpkin Address
      "0x12A02E5EeAfbCa7BF5fD171CA0C00Cb4361aC4EE",
      // Experience ID
      1
    )
    .call();

IDS

{
  Experience: 1,
  
  // Skills
  "Green Thumb": 101,
  Cultivator: 102,
  "Master Farmer": 103,
  "Golden Flowers": 104,
  "Plant Whisperer": 105,
  "Happy Crop": 106,
  Lumberjack: 107,
  "Tree Hugger": 108,
  "Tough Tree": 109,
  "Money Tree": 110,
  Digger: 111,
  "Coal Face": 112,
  Seeker: 113,
  "Gold Rush": 114,
  "Rush Hour": 115,
  "Kitchen Hand": 116,
  "Michelin Stars": 117,
  Curer: 118,
  "Stable Hand": 119,
  "Free Range": 120,
  "Horse Whisperer": 121,
  Buckaroo: 122,
  
  // Achievements
  Explorer: 501,
  "Busy Bumpkin": 502,
  "20/20 Vision": 503,
  "Bakers Dozen": 504,
  "Beetroot Beast": 505,
  "Big Spender": 506,
  "Bread Winner": 507,
  "Brilliant Bumpkin": 508,
  "Bumpkin Billionaire": 509,
  "Bumpkin Chainsaw Amateur": 510,
  "Cabbage King": 511,
  "Chef de Cuisine": 512,
  "Cool Flower": 513,
  "Crop Champion": 514,
  "El Dorado": 515,
  "Farm Hand": 516,
  "Gold Fever": 517,
  "High Roller": 518,
  "Iron Eyes": 519,
  "Jack O'Latern": 520,
  "Kiss the Cook": 521,
  "My life is potato": 522,
  "Patient Parsnips": 523,
  "Rapid Radish": 524,
  "Something Shiny": 525,
  "Staple Crop": 526,
  "Sun Seeker": 527,
  "Sunflower Superstar": 528,
  "Time to chop": 529,
  Canary: 530,
  Contractor: 531,
  Craftmanship: 532,
  Driller: 533,
  Museum: 534,
  Timbeerrr: 535,
  
  // Analytics
  "Axe Crafted": 1001,
  "Beetroot Cake Cooked": 1002,
  "Beetroot Cake Fed": 1003,
  "Beetroot Cake Sold": 1004,
  "Beetroot Harvested": 1005,
  "Beetroot Seed Bought": 1006,
  "Beetroot Sold": 1007,
  "Building Constructed": 1009,
  "Building Placed": 1010,
  "Building Upgraded": 1011,
  "Cabbage Cake Cooked": 1012,
  "Cabbage Cake Fed": 1013,
  "Cabbage Cake Sold": 1014,
  "Cabbage Harvested": 1015,
  "Cabbage Seed Bought": 1016,
  "Cabbage Sold": 1017,
  "Carrot Cake Cooked": 1018,
  "Carrot Cake Fed": 1019,
  "Carrot Cake Sold": 1020,
  "Carrot Harvested": 1021,
  "Carrot Seed Bought": 1022,
  "Carrot Sold": 1023,
  "Cauliflower Cake Cooked": 1024,
  "Cauliflower Cake Fed": 1025,
  "Cauliflower Cake Sold": 1026,
  "Cauliflower Harvested": 1027,
  "Cauliflower Seed Bought": 1028,
  "Cauliflower Sold": 1029,
  "Chicken Bought": 1030,
  "Collectible Placed": 1031,
  "Cow Bought": 1032,
  "Crop Fertilised": 1033,
  "Crop Removed": 1034,
  "Egg Collected": 1035,
  "Gold Mined": 1036,
  "Hammer Crafted": 1037,
  "Iron Mined": 1038,
  "Iron Pickaxe Crafted": 1039,
  "Mutant Chicken Found": 1040,
  "Parsnip Cake Cooked": 1041,
  "Parsnip Cake Fed": 1042,
  "Parsnip Cake Sold": 1043,
  "Parsnip Harvested": 1044,
  "Parsnip Seed Bought": 1045,
  "Parsnip Sold": 1046,
  "Pickaxe Crafted": 1047,
  "Pig Bought": 1048,
  "Potato Cake Cooked": 1049,
  "Potato Cake Fed": 1050,
  "Potato Cake Sold": 1051,
  "Potato Harvested": 1052,
  "Potato Seed Bought": 1053,
  "Potato Sold": 1054,
  "Pumpkin Cake Cooked": 1055,
  "Pumpkin Cake Fed": 1056,
  "Pumpkin Cake Sold": 1057,
  "Pumpkin Harvested": 1058,
  "Pumpkin Seed Bought": 1059,
  "Pumpkin Sold": 1060,
  "Pumpkin Soup Cooked": 1061,
  "Pumpkin Soup Fed": 1062,
  "Pumpkin Soup Sold": 1063,
  "Radish Cake Cooked": 1064,
  "Radish Cake Fed": 1065,
  "Radish Cake Sold": 1066,
  "Radish Harvested": 1067,
  "Radish Pie Cooked": 1068,
  "Radish Pie Fed": 1069,
  "Radish Pie Sold": 1070,
  "Radish Seed Bought": 1071,
  "Radish Sold": 1072,
  "Roasted Cauliflower Cooked": 1073,
  "Roasted Cauliflower Fed": 1074,
  "Roasted Cauliflower Sold": 1075,
  "Rod Crafted": 1076,
  "Rusty Shovel Crafted": 1077,
  "SFL Earned": 1078,
  "SFL Spent": 1079,
  "Sauerkraut Cooked": 1080,
  "Sauerkraut Fed": 1081,
  "Sauerkraut Sold": 1082,
  "Sheep Bought": 1083,
  "Shovel Crafted": 1084,
  "Stone Mined": 1085,
  "Stone Pickaxe Crafted": 1086,
  "Sunflower Cake Cooked": 1087,
  "Sunflower Cake Fed": 1088,
  "Sunflower Cake Sold": 1089,
  "Sunflower Harvested": 1090,
  "Sunflower Seed Bought": 1091,
  "Sunflower Sold": 1092,
  "Tree Chopped": 1093,
  "Wheat Cake Cooked": 1094,
  "Wheat Cake Fed": 1095,
  "Wheat Cake Sold": 1096,
  "Wheat Harvested": 1097,
  "Wheat Seed Bought": 1098,
  "Wheat Sold": 1099,
  "Boiled Eggs Cooked": 1100,
  "Boiled Eggs Fed": 1101,
  "Bumpkin Broth Cooked": 1102,
  "Bumpkin Broth Fed": 1103,
  "Bumpkin Salad Cooked": 1104,
  "Bumpkin Salad Fed": 1105,
  "Goblin's Treat Cooked": 1106,
  "Goblin's Treat Fed": 1107,
  "Mashed Potato Cooked": 1108,
  "Mashed Potato Fed": 1109,
  "Cauliflower Burger Cooked": 1110,
  "Cauliflower Burger Fed": 1111,
  "Club Sandwich Cooked": 1112,
  "Club Sandwich Fed": 1113,
  "Pancakes Cooked": 1114,
  "Pancakes Fed": 1115,
  "Roast Veggies Cooked": 1116,
  "Roast Veggies Fed": 1117,
  "Basic Bear Bought": 1118,
  "Cactus Bought": 1119,
  "Potted Sunflower Bought": 1120,
  "White Tulips Bought": 1121,
  "Apple Seed Bought": 1122,
  "Blueberry Seed Bought": 1123,
  "Kale Harvested": 1124,
  "Kale Seed Bought": 1125,
  "Kale Sold": 1126,
  "Orange Seed Bought": 1127,
  "Apple Pie Cooked": 1128,
  "Apple Pie Fed": 1129,
  "Blueberry Jam Cooked": 1130,
  "Blueberry Jam Fed": 1131,
  "Fermented Carrots Cooked": 1132,
  "Fermented Carrots Fed": 1133,
  "Honey Cake Cooked": 1134,
  "Honey Cake Fed": 1135,
  "Kale & Mushroom Pie Cooked": 1136,
  "Kale & Mushroom Pie Fed": 1137,
  "Kale Stew Cooked": 1138,
  "Kale Stew Fed": 1139,
  "Mushroom Jacket Potatoes Cooked": 1140,
  "Mushroom Jacket Potatoes Fed": 1141,
  "Mushroom Soup Cooked": 1142,
  "Mushroom Soup Fed": 1143,
  "Orange Cake Cooked": 1144,
  "Orange Cake Fed": 1145,
  "Sunflower Crunch Cooked": 1146,
  "Sunflower Crunch Fed": 1147,
  "Power Shovel Crafted": 1148,
  "Building Removed": 1149,
  "Collectible Removed": 1150,
  "Golden Bean Bought": 1151,
  "Magic Bean Bought": 1152,
  "Shiny Bean Bought": 1153,
  "Golden Bean Harvested": 1154,
  "Magic Bean Harvested": 1155,
  "Potted Potato Bought": 1156,
  "Potted Pumpkin Bought": 1157,
  "Shiny Bean Harvested": 1158,
  "Sand Shovel Crafted": 1159,
  "Treasure Dug": 1160,
  "Reindeer Carrot Cooked": 1161,
  "Reindeer Carrot Fed": 1162,
  "Apple Seed Planted": 1163,
  "Blueberry Seed Planted": 1164,
  "Orange Seed Planted": 1165,
  "Apple Harvested": 1166,
  "Blueberry Harvested": 1167,
  "Orange Harvested": 1168
  }

ABI

[
  {
    "inputs": [
      { "internalType": "string", "name": "_uri", "type": "string" },
      {
        "internalType": "address",
        "name": "royaltyReceiver",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "royaltyFeeNumerator",
        "type": "uint96"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "values",
        "type": "uint256[]"
      }
    ],
    "name": "TransferBatch",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "TransferSingle",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "value",
        "type": "string"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "URI",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_game", "type": "address" }
    ],
    "name": "addGameRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "account", "type": "address" },
      { "internalType": "uint256", "name": "id", "type": "uint256" }
    ],
    "name": "balanceOf",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address[]", "name": "accounts", "type": "address[]" },
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }
    ],
    "name": "balanceOfBatch",
    "outputs": [
      { "internalType": "uint256[]", "name": "", "type": "uint256[]" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "deleteDefaultRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }],
    "name": "exists",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_game", "type": "address" }
    ],
    "name": "gameAddGameRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "from", "type": "address" },
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" },
      { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
    ],
    "name": "gameBurn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "to", "type": "address" },
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" },
      { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" },
      { "internalType": "bytes", "name": "data", "type": "bytes" }
    ],
    "name": "gameMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_game", "type": "address" }
    ],
    "name": "gameRemoveGameRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "name": "gameRoles",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_owner", "type": "address" },
      { "internalType": "address", "name": "operator", "type": "address" },
      { "internalType": "bool", "name": "approved", "type": "bool" }
    ],
    "name": "gameSetApproval",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "from", "type": "address" },
      { "internalType": "address", "name": "to", "type": "address" },
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" },
      { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" },
      { "internalType": "bytes", "name": "data", "type": "bytes" }
    ],
    "name": "gameTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "account", "type": "address" },
      { "internalType": "address", "name": "operator", "type": "address" }
    ],
    "name": "isApprovedForAll",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "_game", "type": "address" }
    ],
    "name": "removeGameRole",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }
    ],
    "name": "resetTokenRoyaltyBatch",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256", "name": "_tokenId", "type": "uint256" },
      { "internalType": "uint256", "name": "_salePrice", "type": "uint256" }
    ],
    "name": "royaltyInfo",
    "outputs": [
      { "internalType": "address", "name": "", "type": "address" },
      { "internalType": "uint256", "name": "", "type": "uint256" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "from", "type": "address" },
      { "internalType": "address", "name": "to", "type": "address" },
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" },
      { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" },
      { "internalType": "bytes", "name": "data", "type": "bytes" }
    ],
    "name": "safeBatchTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "from", "type": "address" },
      { "internalType": "address", "name": "to", "type": "address" },
      { "internalType": "uint256", "name": "id", "type": "uint256" },
      { "internalType": "uint256", "name": "amount", "type": "uint256" },
      { "internalType": "bytes", "name": "data", "type": "bytes" }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "operator", "type": "address" },
      { "internalType": "bool", "name": "approved", "type": "bool" }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "receiver", "type": "address" },
      { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" }
    ],
    "name": "setDefaultRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" },
      { "internalType": "address[]", "name": "receivers", "type": "address[]" },
      {
        "internalType": "uint96[]",
        "name": "feeNumerators",
        "type": "uint96[]"
      }
    ],
    "name": "setTokenRoyaltyBatch",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "string", "name": "newuri", "type": "string" }
    ],
    "name": "setURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }
    ],
    "name": "supportsInterface",
    "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" }],
    "name": "totalSupply",
    "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }
    ],
    "name": "totalSupplyBatch",
    "outputs": [
      { "internalType": "uint256[]", "name": "", "type": "uint256[]" }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "address", "name": "newOwner", "type": "address" }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unpause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
    "name": "uri",
    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
    "stateMutability": "view",
    "type": "function"
  }
]

Last updated