@xgamesfun/solana 0.20.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +95 -52
  2. package/bin/xsolana.mjs +23 -8
  3. package/examples/blind-forge.json +2 -4
  4. package/examples/coin-flip-arena.json +4 -12
  5. package/examples/duel-arena.json +1 -4
  6. package/examples/elements-set.json +2 -9
  7. package/examples/expedition-guild.json +1 -8
  8. package/examples/fair-presale.json +1 -3
  9. package/examples/guild-missions.json +3 -10
  10. package/examples/halving-seasons.json +4 -9
  11. package/examples/hero-trials.json +15 -6
  12. package/examples/holder-den.json +38 -0
  13. package/examples/holders-drop.json +105 -0
  14. package/examples/ideas.json +788 -788
  15. package/examples/match-predictions.json +24 -0
  16. package/examples/merge-2048.json +5 -5
  17. package/examples/nft-raffle.json +1 -0
  18. package/examples/pack-league.json +108 -0
  19. package/examples/paper-hands-farm.json +4 -16
  20. package/examples/partner-vault.json +20 -7
  21. package/examples/sacrifice-raffle.json +2 -10
  22. package/examples/shelter-fair.json +1 -0
  23. package/examples/stakers-draw.json +4 -15
  24. package/examples/star-fleet.json +1 -8
  25. package/examples/starforce.json +6 -6
  26. package/examples/stride-sneakers.json +164 -0
  27. package/examples/trade-in-shop.json +2 -3
  28. package/js/approve/details.mjs +122 -52
  29. package/js/approve/ed25519.mjs +5 -1
  30. package/js/approve/live-check.mjs +83 -26
  31. package/js/approve/page.html +217 -78
  32. package/js/approve/page.js +43 -15
  33. package/js/approve/server.mjs +290 -73
  34. package/js/chain/base58.js +7 -1
  35. package/js/chain/borsh.js +24 -11
  36. package/js/chain/bytes.js +11 -8
  37. package/js/chain/core.js +35 -7
  38. package/js/chain/curve.js +1 -1
  39. package/js/chain/lookup.js +124 -36
  40. package/js/chain/mint.js +6 -2
  41. package/js/chain/pda.js +2 -2
  42. package/js/chain/programs.js +6 -6
  43. package/js/chain/rpc.js +44 -16
  44. package/js/chain/token.js +13 -2
  45. package/js/chain/token2022.js +55 -16
  46. package/js/chain/tx.js +32 -22
  47. package/js/client/accounts.js +653 -131
  48. package/js/client/compressed.js +4 -3
  49. package/js/client/grant.js +267 -83
  50. package/js/client/idl/loot.js +1 -1
  51. package/js/client/idl/loot.json +2406 -2176
  52. package/js/client/index.js +1 -0
  53. package/js/client/ix.js +3059 -664
  54. package/js/client/pda.js +39 -33
  55. package/js/client/policy.js +52 -24
  56. package/js/client/random.js +70 -0
  57. package/js/client/sizes.js +414 -16
  58. package/js/client/traits.js +14 -5
  59. package/js/connect/connect.mjs +59 -17
  60. package/js/economy/check.mjs +4153 -725
  61. package/js/economy/cost.mjs +403 -64
  62. package/js/economy/examples.mjs +176 -35
  63. package/js/economy/explain.mjs +466 -111
  64. package/js/economy/guide.mjs +296 -72
  65. package/js/economy/legal.mjs +12 -6
  66. package/js/economy/live.mjs +83 -19
  67. package/js/economy/model.mjs +462 -124
  68. package/js/economy/plan.mjs +1306 -219
  69. package/js/economy/schema.json +390 -484
  70. package/js/economy/secrets.mjs +17 -7
  71. package/js/economy/simulate.mjs +883 -223
  72. package/js/economy/txsize.mjs +15 -3
  73. package/js/economy/validate.mjs +61 -24
  74. package/js/mcp/server.mjs +42 -14
  75. package/js/mcp/tools.mjs +307 -88
  76. package/js/play/index.js +2864 -619
  77. package/js/play/keys.js +193 -0
  78. package/js/results/index.js +223 -30
  79. package/js/results/server.js +230 -0
  80. package/js/results/wire.js +64 -16
  81. package/package.json +6 -4
  82. package/release.json +5 -5
  83. package/skills/xsolana-economy/SKILL.md +39 -21
  84. package/skills/xsolana-economy/references/after-launch.md +58 -38
  85. package/skills/xsolana-economy/references/apps.md +97 -50
  86. package/skills/xsolana-economy/references/sentence-to-spec.md +148 -121
  87. package/skills/xsolana-economy/references/telling-the-person.md +61 -17
  88. package/types/chain/core.d.ts +4 -2
  89. package/types/chain/lookup.d.ts +5 -2
  90. package/types/chain/rpc.d.ts +3 -1
  91. package/types/client/accounts.d.ts +217 -56
  92. package/types/client/grant.d.ts +72 -27
  93. package/types/client/idl/loot.d.ts +602 -549
  94. package/types/client/index.d.ts +1 -0
  95. package/types/client/ix.d.ts +3884 -247
  96. package/types/client/pda.d.ts +22 -16
  97. package/types/client/policy.d.ts +39 -14
  98. package/types/client/random.d.ts +26 -0
  99. package/types/client/sizes.d.ts +93 -5
  100. package/types/economy/check.d.mts +5 -10
  101. package/types/economy/cost.d.mts +2 -1
  102. package/types/economy/guide.d.mts +5 -0
  103. package/types/economy/live.d.mts +16 -1
  104. package/types/economy/model.d.mts +151 -38
  105. package/types/economy/plan.d.mts +237 -194
  106. package/types/economy/simulate.d.mts +21 -13
  107. package/types/mcp/tools.d.mts +21 -13
  108. package/types/play/index.d.ts +453 -53
  109. package/types/play/keys.d.ts +51 -0
  110. package/types/results/index.d.ts +7 -6
  111. package/types/results/server.d.ts +126 -0
  112. package/types/results/wire.d.ts +1 -1
@@ -0,0 +1,24 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Match Predictions",
5
+ "prompt": "A prediction pool for each match: back home, draw or away with any amount of SOL. Entries close two days after it opens, and the result is due a day later or everyone gets their money back. Winners share the pot by stake, after a 5% rake to the treasury. Our results server signs the result.",
6
+ "currency": "sol",
7
+ "tokens": [{ "key": "sol", "source": "sol" }],
8
+ "collection": false,
9
+ "contests": [
10
+ {
11
+ "key": "match",
12
+ "name": "Match pool",
13
+ "sides": 3,
14
+ "sideNames": ["Home", "Draw", "Away"],
15
+ "entriesClose": "2d",
16
+ "resultDue": "3d",
17
+ "every": "1d",
18
+ "split": [{ "to": "treasury", "percent": 5 }],
19
+ "decidedBy": "the results server, from the match's final score",
20
+ "deciders": ["GnUcZZf8bwSCj8CFkdVPeeu81ptCV4RxQvExdKjvStyd"]
21
+ }
22
+ ],
23
+ "scenario": { "days": 30, "perDay": { "contest:match": 150 } }
24
+ }
@@ -2,7 +2,7 @@
2
2
  "version": 2,
3
3
  "network": "devnet",
4
4
  "name": "2048 Collection",
5
- "prompt": "Two of tier N merge into one of tier N+1. The single top piece also claims a huge pool prize, so the whole collection races to merge. Priced in a coin launched on pump.fun.",
5
+ "prompt": "Two of tier N merge into one of tier N+1. The single top piece also claims a fixed prize from a pool every sale fills, so the whole collection races to merge. Priced in a coin launched on pump.fun.",
6
6
  "currency": "tile",
7
7
  "tokens": [
8
8
  {
@@ -55,7 +55,7 @@
55
55
  {
56
56
  "key": "grand",
57
57
  "currency": "tile",
58
- "about": "20% of every tile sold; half of it goes to whoever makes the top tile."
58
+ "about": "20% of every tile sold; whoever makes the top tile takes 8, half of what its eight tiles paid in."
59
59
  }
60
60
  ],
61
61
  "recipes": [
@@ -109,9 +109,9 @@
109
109
  "item": "tier-4"
110
110
  },
111
111
  {
112
- "gives": "share",
113
- "pool": "grand",
114
- "percent": 50
112
+ "gives": "tokens",
113
+ "from": "pool:grand",
114
+ "amount": 8
115
115
  }
116
116
  ]
117
117
  }
@@ -15,6 +15,7 @@
15
15
  {
16
16
  "key": "art",
17
17
  "name": "The artwork",
18
+ "rest": "treasury",
18
19
  "price": 0.1,
19
20
  "raffle": {
20
21
  "nft": "ArtNFT1111111111111111111111111111111111111",
@@ -0,0 +1,108 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Pack League",
5
+ "prompt": "A trading card game. A pack is 0.05 SOL for five cards, and the fifth card is always rare or better. A fifth of every pack goes into the weekly league pot. Card holders buy league tickets for 0.001 SOL, and each week the top three share the pot.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ }
12
+ ],
13
+ "collection": {
14
+ "name": "Pack League"
15
+ },
16
+ "items": [
17
+ {
18
+ "key": "common",
19
+ "name": "Common Card",
20
+ "rarity": "Common"
21
+ },
22
+ {
23
+ "key": "rare",
24
+ "name": "Rare Card",
25
+ "rarity": "Rare"
26
+ },
27
+ {
28
+ "key": "epic",
29
+ "name": "Epic Card",
30
+ "rarity": "Epic",
31
+ "supply": 3000
32
+ },
33
+ {
34
+ "key": "legendary",
35
+ "name": "Legendary Card",
36
+ "rarity": "Legendary",
37
+ "supply": 300
38
+ }
39
+ ],
40
+ "boxes": [
41
+ {
42
+ "key": "pack",
43
+ "name": "Card Pack",
44
+ "price": 0.05,
45
+ "split": [
46
+ {
47
+ "to": "lottery:league",
48
+ "percent": 20
49
+ }
50
+ ],
51
+ "outcomes": [
52
+ {
53
+ "gives": "item",
54
+ "item": "common",
55
+ "chance": 75
56
+ },
57
+ {
58
+ "gives": "item",
59
+ "item": "rare",
60
+ "chance": 19
61
+ },
62
+ {
63
+ "gives": "item",
64
+ "item": "epic",
65
+ "chance": 5
66
+ },
67
+ {
68
+ "gives": "item",
69
+ "item": "legendary",
70
+ "chance": 1
71
+ }
72
+ ],
73
+ "slots": [
74
+ {
75
+ "count": 4,
76
+ "share": 70
77
+ },
78
+ {
79
+ "count": 1,
80
+ "from": [1, 2, 3],
81
+ "share": 30
82
+ }
83
+ ]
84
+ }
85
+ ],
86
+ "lotteries": [
87
+ {
88
+ "key": "league",
89
+ "name": "Weekly League",
90
+ "price": 0.001,
91
+ "places": [50, 30, 20],
92
+ "every": "7d",
93
+ "firstDraw": "publish+7d",
94
+ "gate": {
95
+ "item": "common"
96
+ },
97
+ "perWallet": 100,
98
+ "pot": 0
99
+ }
100
+ ],
101
+ "scenario": {
102
+ "days": 28,
103
+ "perDay": {
104
+ "box:pack": 100,
105
+ "lottery:league": 200
106
+ }
107
+ }
108
+ }
@@ -2,7 +2,7 @@
2
2
  "version": 2,
3
3
  "network": "devnet",
4
4
  "name": "Paper Hands Farm",
5
- "prompt": "Stake GEM for 30 days to earn more GEM. Leave early and 10% of what you take out goes to the stakers who stay. Unstaking takes 7 days, earning nothing meanwhile. 2% of every harvest is burned. Holders can compound their rewards without restarting the lock.",
5
+ "prompt": "Stake GEM for 30 days to earn more GEM, 1,000 minted into the farm a day. Leave early and 10% of what you take out goes to the stakers who stay. Holders can compound their rewards without restarting the lock.",
6
6
  "currency": "gem",
7
7
  "tokens": [
8
8
  {
@@ -14,20 +14,13 @@
14
14
  }
15
15
  ],
16
16
  "collection": false,
17
- "pools": [
18
- {
19
- "key": "farm-rewards",
20
- "currency": "gem",
21
- "about": "What the farm shares: a daily emission, and early-exit fees."
22
- }
23
- ],
24
17
  "schedules": [
25
18
  {
26
19
  "key": "emission",
27
20
  "name": "Daily emission",
28
21
  "does": "issue",
29
22
  "currency": "gem",
30
- "pool": "farm-rewards",
23
+ "to": "farm:farm",
31
24
  "amount": 1000,
32
25
  "every": "1d"
33
26
  }
@@ -37,7 +30,7 @@
37
30
  "key": "farm",
38
31
  "name": "The farm",
39
32
  "stakes": "gem",
40
- "rewards": "farm-rewards",
33
+ "rewards": "gem",
41
34
  "tiers": [
42
35
  {
43
36
  "lock": "30d",
@@ -45,12 +38,7 @@
45
38
  "exitFee": 10
46
39
  }
47
40
  ],
48
- "exitFeeTo": "pool:farm-rewards",
49
- "unbond": "7d",
50
- "toll": {
51
- "percent": 2,
52
- "to": "burn"
53
- }
41
+ "exitFeeTo": "rewards"
54
42
  }
55
43
  ]
56
44
  }
@@ -13,15 +13,16 @@
13
13
  { "key": "pass", "name": "Expedition Pass", "price": 0.01 },
14
14
  { "key": "trinket", "name": "Trinket", "value": 0.01 }
15
15
  ],
16
- "pools": [
17
- { "key": "shard-rewards", "currency": "shards", "about": "Names the expedition's token: it pays nothing, its result is a chest." }
18
- ],
19
16
  "stashes": [
20
17
  {
21
18
  "key": "vault",
22
19
  "name": "Partner vault",
23
20
  "collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw",
24
- "nfts": ["4vd1uA3jK28MwhufZnbtQpyJkVMXEVpKHzDRPUH9DT3v", "E53iEjsuDnz1jP6MJbnhecvTBRWCs5MsmjusfhYNDjD4", "B53EzSitDoQ4usvMN4nKhQRUVb7BhNh9PZPwgyQobpsV"],
21
+ "nfts": [
22
+ "4vd1uA3jK28MwhufZnbtQpyJkVMXEVpKHzDRPUH9DT3v",
23
+ "E53iEjsuDnz1jP6MJbnhecvTBRWCs5MsmjusfhYNDjD4",
24
+ "B53EzSitDoQ4usvMN4nKhQRUVb7BhNh9PZPwgyQobpsV"
25
+ ],
25
26
  "about": "Given by the paid crate and the mystery lot."
26
27
  },
27
28
  {
@@ -34,7 +35,12 @@
34
35
  {
35
36
  "key": "rare",
36
37
  "name": "The rare one",
37
- "nfts": [{ "asset": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4", "collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw" }],
38
+ "nfts": [
39
+ {
40
+ "asset": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4",
41
+ "collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw"
42
+ }
43
+ ],
38
44
  "about": "The raffle's first prize, named by it and given when its place is paid: kept apart so no roll can take it."
39
45
  }
40
46
  ],
@@ -83,8 +89,15 @@
83
89
  {
84
90
  "key": "raffle",
85
91
  "name": "Rare NFT raffle",
92
+ "rest": "treasury",
86
93
  "price": 0.01,
87
- "places": [{ "percent": 0, "prize": { "gives": "nft", "stash": "rare", "nft": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4" } }, 90],
94
+ "places": [
95
+ {
96
+ "percent": 0,
97
+ "prize": { "gives": "nft", "stash": "rare", "nft": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4" }
98
+ },
99
+ 90
100
+ ],
88
101
  "firstDraw": "publish+7d"
89
102
  }
90
103
  ],
@@ -94,7 +107,7 @@
94
107
  "name": "Expedition",
95
108
  "stakes": "collectibles",
96
109
  "item": "pass",
97
- "rewards": "shard-rewards",
110
+ "rewards": "shards",
98
111
  "rate": { "perDay": 0, "minted": true },
99
112
  "tiers": [{ "lock": "1d", "multiplier": 1, "prize": { "gives": "roll", "box": "daily-chest" } }]
100
113
  }
@@ -90,18 +90,10 @@
90
90
  {
91
91
  "key": "weekly",
92
92
  "name": "Grand and minors",
93
+ "pot": 0,
93
94
  "price": 1,
94
95
  "ticketCurrency": "ticket",
95
- "places": [
96
- 50,
97
- 10,
98
- 10,
99
- 10,
100
- 5,
101
- 5,
102
- 5,
103
- 5
104
- ],
96
+ "places": [50, 10, 10, 10, 5, 5, 5, 5],
105
97
  "every": "7d"
106
98
  }
107
99
  ],
@@ -79,6 +79,7 @@
79
79
  {
80
80
  "key": "raffle",
81
81
  "name": "Shelter Raffle",
82
+ "pot": 0,
82
83
  "price": 0.002,
83
84
  "seed": 0.05,
84
85
  "split": [
@@ -40,19 +40,12 @@
40
40
  }
41
41
  }
42
42
  ],
43
- "pools": [
44
- {
45
- "key": "vault-rewards",
46
- "currency": "gem",
47
- "about": "Names the vault's token: its rate is minted, so nothing is paid from here."
48
- }
49
- ],
50
43
  "farms": [
51
44
  {
52
45
  "key": "vault",
53
46
  "name": "The vault",
54
47
  "stakes": "gem",
55
- "rewards": "vault-rewards",
48
+ "rewards": "gem",
56
49
  "rate": {
57
50
  "perDay": 0.001,
58
51
  "minted": true
@@ -73,13 +66,11 @@
73
66
  {
74
67
  "key": "draw",
75
68
  "name": "The stakers' draw",
69
+ "pot": 0,
76
70
  "price": 0.01,
77
71
  "noLoss": true,
78
72
  "seed": 0.1,
79
- "places": [
80
- 60,
81
- 40
82
- ],
73
+ "places": [60, 40],
83
74
  "every": "7d",
84
75
  "perWallet": 20,
85
76
  "gate": {
@@ -100,9 +91,7 @@
100
91
  "currency": "gem",
101
92
  "from": "mint"
102
93
  },
103
- "vouchers": [
104
- "AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"
105
- ],
94
+ "vouchers": ["AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"],
106
95
  "limits": {
107
96
  "perWallet": 52,
108
97
  "perDay": 10
@@ -34,13 +34,6 @@
34
34
  "price": 0.05
35
35
  }
36
36
  ],
37
- "pools": [
38
- {
39
- "key": "ore-rewards",
40
- "currency": "ore",
41
- "about": "Names the fleet's reward token: the mine mints ORE at its rate, so nothing waits here."
42
- }
43
- ],
44
37
  "recipes": [
45
38
  {
46
39
  "key": "refuel",
@@ -118,7 +111,7 @@
118
111
  "name": "The mine",
119
112
  "stakes": "collectibles",
120
113
  "item": "ship",
121
- "rewards": "ore-rewards",
114
+ "rewards": "ore",
122
115
  "rate": {
123
116
  "perDay": 100,
124
117
  "minted": true
@@ -2,7 +2,7 @@
2
2
  "version": 2,
3
3
  "network": "devnet",
4
4
  "name": "Starforce",
5
- "prompt": "Each try burns the sword and pays a fee; the roll goes up a level, stays (the same sword, minted again) or destroys it, with a tiny lucky chance at a tenth of the jackpot the fees fill.",
5
+ "prompt": "Each try burns the sword and pays a fee; the roll goes up a level, stays (the same sword, minted again) or destroys it, with a tiny lucky chance at a fixed prize from the pool the fees fill.",
6
6
  "currency": "sol",
7
7
  "tokens": [
8
8
  {
@@ -39,7 +39,7 @@
39
39
  "key": "jackpot",
40
40
  "currency": "sol",
41
41
  "seed": 2,
42
- "about": "Every try's fee; the lucky roll takes a tenth."
42
+ "about": "Every try's fee; the lucky roll takes 0.2 SOL."
43
43
  }
44
44
  ],
45
45
  "recipes": [
@@ -93,14 +93,14 @@
93
93
  "chance": 45
94
94
  },
95
95
  {
96
- "gives": "burn",
96
+ "gives": "nothing",
97
97
  "chance": 14.5
98
98
  },
99
99
  {
100
- "gives": "share",
100
+ "gives": "pay",
101
101
  "pool": "jackpot",
102
- "percent": 10,
103
- "chance": 0.5
102
+ "chance": 0.5,
103
+ "amount": 0.2
104
104
  }
105
105
  ]
106
106
  }
@@ -0,0 +1,164 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Stride Sneakers",
5
+ "prompt": "A move-to-earn game. Players buy a shoebox for 0.1 SOL and get a sneaker with random efficiency and luck, or a rare golden one. Walking earns STRIDE: the app's server vouches for a day's steps, once a day per wallet. Two sneakers and 200 STRIDE mint a new shoebox, at most 7 times per sneaker. 50 STRIDE levels a sneaker up, to level 30. Sneakers can be rented out from the app.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ },
12
+ {
13
+ "key": "stride",
14
+ "source": "project",
15
+ "name": "Stride",
16
+ "symbol": "STRIDE",
17
+ "decimals": 6
18
+ }
19
+ ],
20
+ "collection": {
21
+ "name": "Stride Sneakers"
22
+ },
23
+ "items": [
24
+ {
25
+ "key": "sneaker",
26
+ "name": "Sneaker",
27
+ "drawn": [
28
+ {
29
+ "attribute": "efficiency",
30
+ "min": 1,
31
+ "max": 10
32
+ },
33
+ {
34
+ "attribute": "luck",
35
+ "min": 1,
36
+ "max": 10
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ "key": "golden",
42
+ "name": "Golden Sneaker",
43
+ "rarity": "Legendary",
44
+ "supply": 100
45
+ }
46
+ ],
47
+ "boxes": [
48
+ {
49
+ "key": "shoebox",
50
+ "name": "Shoebox",
51
+ "price": 0.1,
52
+ "outcomes": [
53
+ {
54
+ "gives": "item",
55
+ "item": "sneaker",
56
+ "chance": 98
57
+ },
58
+ {
59
+ "gives": "item",
60
+ "item": "golden",
61
+ "chance": 2
62
+ }
63
+ ]
64
+ }
65
+ ],
66
+ "recipes": [
67
+ {
68
+ "key": "mint",
69
+ "name": "Mint a shoebox",
70
+ "in": [
71
+ {
72
+ "takes": "use",
73
+ "item": "sneaker"
74
+ },
75
+ {
76
+ "takes": "use",
77
+ "item": "sneaker"
78
+ },
79
+ {
80
+ "takes": "pay",
81
+ "amount": 200,
82
+ "currency": "stride",
83
+ "to": "burn"
84
+ }
85
+ ],
86
+ "raises": [
87
+ {
88
+ "place": 0,
89
+ "key": "mints",
90
+ "by": 1,
91
+ "upTo": 7
92
+ },
93
+ {
94
+ "place": 1,
95
+ "key": "mints",
96
+ "by": 1,
97
+ "upTo": 7
98
+ }
99
+ ],
100
+ "out": [
101
+ {
102
+ "gives": "roll",
103
+ "box": "shoebox"
104
+ }
105
+ ]
106
+ },
107
+ {
108
+ "key": "level-up",
109
+ "name": "Level up",
110
+ "in": [
111
+ {
112
+ "takes": "use",
113
+ "item": "sneaker"
114
+ },
115
+ {
116
+ "takes": "pay",
117
+ "amount": 50,
118
+ "currency": "stride",
119
+ "to": "burn"
120
+ }
121
+ ],
122
+ "raises": [
123
+ {
124
+ "place": 0,
125
+ "key": "level",
126
+ "by": 1,
127
+ "upTo": 30
128
+ }
129
+ ]
130
+ }
131
+ ],
132
+ "grants": [
133
+ {
134
+ "key": "steps",
135
+ "name": "Daily steps",
136
+ "prize": {
137
+ "gives": "tokens",
138
+ "amount": 20,
139
+ "currency": "stride",
140
+ "from": "mint"
141
+ },
142
+ "vouchers": ["B8CrCHTMi223kknNgaJXXp8QGqNR9pwD1bfZVYvr5fmJ"],
143
+ "limits": {
144
+ "perWalletEach": {
145
+ "count": 1,
146
+ "every": "1d"
147
+ },
148
+ "perDay": 1000
149
+ },
150
+ "wallets": 1000,
151
+ "rounds": 365,
152
+ "fund": 0.5
153
+ }
154
+ ],
155
+ "scenario": {
156
+ "days": 30,
157
+ "perDay": {
158
+ "box:shoebox": 20,
159
+ "grant:steps": 300,
160
+ "recipe:mint": 15,
161
+ "recipe:level-up": 60
162
+ }
163
+ }
164
+ }
@@ -142,6 +142,7 @@
142
142
  {
143
143
  "key": "shield-raffle",
144
144
  "name": "Shield raffle",
145
+ "pot": 0,
145
146
  "ticketNft": {
146
147
  "rule": {
147
148
  "item": "shield"
@@ -149,9 +150,7 @@
149
150
  "then": "burn"
150
151
  },
151
152
  "seed": 0.1,
152
- "places": [
153
- 100
154
- ],
153
+ "places": [100],
155
154
  "every": "7d"
156
155
  }
157
156
  ],