@xgamesfun/solana 0.0.0-stage → 0.20.1

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 (134) hide show
  1. package/DISCLAIMER.md +41 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +13 -0
  4. package/README.md +172 -2
  5. package/bin/xsolana.mjs +189 -0
  6. package/examples/artwork-auction.json +51 -0
  7. package/examples/blind-forge.json +128 -0
  8. package/examples/coin-flip-arena.json +108 -0
  9. package/examples/duel-arena.json +137 -0
  10. package/examples/elements-set.json +281 -0
  11. package/examples/event-badges.json +67 -0
  12. package/examples/expedition-guild.json +161 -0
  13. package/examples/fair-presale.json +48 -0
  14. package/examples/falling-drop.json +90 -0
  15. package/examples/guild-missions.json +144 -0
  16. package/examples/halving-seasons.json +112 -0
  17. package/examples/hero-trials.json +96 -0
  18. package/examples/ideas.json +789 -0
  19. package/examples/level-ladder.json +65 -0
  20. package/examples/merge-2048.json +128 -0
  21. package/examples/nft-raffle.json +33 -0
  22. package/examples/paper-hands-farm.json +56 -0
  23. package/examples/partner-vault.json +115 -0
  24. package/examples/sacrifice-raffle.json +118 -0
  25. package/examples/scorched-treasury.json +84 -0
  26. package/examples/shelter-fair.json +164 -0
  27. package/examples/spark-pity.json +153 -0
  28. package/examples/stakers-draw.json +125 -0
  29. package/examples/star-fleet.json +157 -0
  30. package/examples/starforce.json +116 -0
  31. package/examples/stud-farm.json +134 -0
  32. package/examples/team-vesting.json +70 -0
  33. package/examples/trade-in-shop.json +168 -0
  34. package/js/approve/details.mjs +262 -0
  35. package/js/approve/ed25519.mjs +36 -0
  36. package/js/approve/live-check.mjs +144 -0
  37. package/js/approve/page.html +86 -0
  38. package/js/approve/page.js +203 -0
  39. package/js/approve/server.mjs +711 -0
  40. package/js/chain/base58.js +73 -0
  41. package/js/chain/borsh.js +261 -0
  42. package/js/chain/bytes.js +141 -0
  43. package/js/chain/core.js +169 -0
  44. package/js/chain/curve.js +52 -0
  45. package/js/chain/lookup.js +273 -0
  46. package/js/chain/mint.js +96 -0
  47. package/js/chain/pda.js +66 -0
  48. package/js/chain/programs.js +102 -0
  49. package/js/chain/rpc.js +217 -0
  50. package/js/chain/sha256.js +68 -0
  51. package/js/chain/token.js +85 -0
  52. package/js/chain/token2022.js +247 -0
  53. package/js/chain/tx.js +224 -0
  54. package/js/client/accounts.js +347 -0
  55. package/js/client/compressed.js +46 -0
  56. package/js/client/grant.js +240 -0
  57. package/js/client/idl/loot.js +2 -0
  58. package/js/client/idl/loot.json +17064 -0
  59. package/js/client/index.js +9 -0
  60. package/js/client/ix.js +2156 -0
  61. package/js/client/pda.js +110 -0
  62. package/js/client/policy.js +48 -0
  63. package/js/client/sizes.js +54 -0
  64. package/js/client/traits.js +44 -0
  65. package/js/connect/connect.mjs +182 -0
  66. package/js/economy/check.mjs +1991 -0
  67. package/js/economy/cost.mjs +170 -0
  68. package/js/economy/examples.mjs +114 -0
  69. package/js/economy/explain.mjs +235 -0
  70. package/js/economy/guide.mjs +231 -0
  71. package/js/economy/legal.mjs +15 -0
  72. package/js/economy/live.mjs +107 -0
  73. package/js/economy/model.mjs +583 -0
  74. package/js/economy/plan.mjs +887 -0
  75. package/js/economy/schema.json +2923 -0
  76. package/js/economy/secrets.mjs +60 -0
  77. package/js/economy/simulate.mjs +952 -0
  78. package/js/economy/txsize.mjs +45 -0
  79. package/js/economy/validate.mjs +85 -0
  80. package/js/index.js +10 -0
  81. package/js/mcp/server.mjs +113 -0
  82. package/js/mcp/tools.mjs +479 -0
  83. package/js/play/index.js +2109 -0
  84. package/js/results/index.js +184 -0
  85. package/js/results/wire.js +90 -0
  86. package/package.json +100 -4
  87. package/release.json +8 -0
  88. package/skills/xsolana-economy/SKILL.md +105 -0
  89. package/skills/xsolana-economy/references/after-launch.md +114 -0
  90. package/skills/xsolana-economy/references/apps.md +157 -0
  91. package/skills/xsolana-economy/references/sentence-to-spec.md +172 -0
  92. package/skills/xsolana-economy/references/telling-the-person.md +93 -0
  93. package/types/chain/base58.d.ts +10 -0
  94. package/types/chain/borsh.d.ts +23 -0
  95. package/types/chain/bytes.d.ts +45 -0
  96. package/types/chain/core.d.ts +50 -0
  97. package/types/chain/curve.d.ts +1 -0
  98. package/types/chain/lookup.d.ts +191 -0
  99. package/types/chain/mint.d.ts +25 -0
  100. package/types/chain/pda.d.ts +25 -0
  101. package/types/chain/programs.d.ts +65 -0
  102. package/types/chain/rpc.d.ts +66 -0
  103. package/types/chain/sha256.d.ts +1 -0
  104. package/types/chain/token.d.ts +141 -0
  105. package/types/chain/token2022.d.ts +53 -0
  106. package/types/chain/tx.d.ts +60 -0
  107. package/types/client/accounts.d.ts +178 -0
  108. package/types/client/compressed.d.ts +29 -0
  109. package/types/client/grant.d.ts +125 -0
  110. package/types/client/idl/loot.d.ts +4467 -0
  111. package/types/client/index.d.ts +8 -0
  112. package/types/client/ix.d.ts +1687 -0
  113. package/types/client/pda.d.ts +91 -0
  114. package/types/client/policy.d.ts +23 -0
  115. package/types/client/sizes.d.ts +13 -0
  116. package/types/client/traits.d.ts +12 -0
  117. package/types/economy/check.d.mts +105 -0
  118. package/types/economy/cost.d.mts +68 -0
  119. package/types/economy/examples.d.mts +27 -0
  120. package/types/economy/explain.d.mts +19 -0
  121. package/types/economy/guide.d.mts +140 -0
  122. package/types/economy/legal.d.mts +12 -0
  123. package/types/economy/live.d.mts +109 -0
  124. package/types/economy/model.d.mts +363 -0
  125. package/types/economy/plan.d.mts +1013 -0
  126. package/types/economy/secrets.d.mts +4 -0
  127. package/types/economy/simulate.d.mts +156 -0
  128. package/types/economy/txsize.d.mts +17 -0
  129. package/types/economy/validate.d.mts +3 -0
  130. package/types/index.d.ts +9 -0
  131. package/types/mcp/tools.d.mts +627 -0
  132. package/types/play/index.d.ts +469 -0
  133. package/types/results/index.d.ts +155 -0
  134. package/types/results/wire.d.ts +122 -0
@@ -0,0 +1,164 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Shelter Fair",
5
+ "prompt": "A fair for an animal shelter. One ticket per wallet gets you in, sold for a month. Supply crates pay rent to whoever owns the plot the buyer builds on. A one-off raffle pays the shelter a fifth of every ticket straight away, and a little to whoever referred the buyer. Ticket holders claim a free badge once each, and promo codes on flyers give a badge once per code. A roof fund only counts if it reaches its goal.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ }
12
+ ],
13
+ "collection": {
14
+ "name": "Shelter Fair"
15
+ },
16
+ "items": [
17
+ {
18
+ "key": "ticket",
19
+ "name": "Fair Ticket",
20
+ "price": 0.01,
21
+ "supply": 100,
22
+ "soulbound": true,
23
+ "perWallet": 1,
24
+ "closes": "publish+30d"
25
+ },
26
+ {
27
+ "key": "plot",
28
+ "name": "Fair Plot",
29
+ "price": 0.02,
30
+ "supply": 50
31
+ },
32
+ {
33
+ "key": "badge",
34
+ "name": "Shelter Badge"
35
+ }
36
+ ],
37
+ "pools": [
38
+ {
39
+ "key": "prizes",
40
+ "currency": "sol",
41
+ "seed": 0.1,
42
+ "about": "Pays the crates' prizes; 60% of every crate comes back into it."
43
+ }
44
+ ],
45
+ "boxes": [
46
+ {
47
+ "key": "crate",
48
+ "name": "Supply Crate",
49
+ "price": 0.005,
50
+ "split": [
51
+ {
52
+ "to": "pool:prizes",
53
+ "percent": 60
54
+ },
55
+ {
56
+ "to": "chosen:plot",
57
+ "percent": 10
58
+ }
59
+ ],
60
+ "outcomes": [
61
+ {
62
+ "gives": "pay",
63
+ "pool": "prizes",
64
+ "amount": 0.02,
65
+ "chance": 10
66
+ },
67
+ {
68
+ "gives": "nothing",
69
+ "chance": 90
70
+ }
71
+ ],
72
+ "perWalletEach": {
73
+ "count": 5,
74
+ "every": "1d"
75
+ }
76
+ }
77
+ ],
78
+ "lotteries": [
79
+ {
80
+ "key": "raffle",
81
+ "name": "Shelter Raffle",
82
+ "price": 0.002,
83
+ "seed": 0.05,
84
+ "split": [
85
+ {
86
+ "to": "wallet:9F8NQski3wBvLykJTJEj896jDHXtHMUde8KGGN2sdqQa",
87
+ "percent": 20
88
+ },
89
+ {
90
+ "to": "chosen",
91
+ "percent": 5
92
+ }
93
+ ],
94
+ "places": [70, 30],
95
+ "firstDraw": "publish+7d",
96
+ "perWallet": 10
97
+ }
98
+ ],
99
+ "contests": [
100
+ {
101
+ "key": "roof-fund",
102
+ "name": "Roof Fund",
103
+ "sides": 1,
104
+ "sideNames": ["Fix the roof"],
105
+ "minPot": 1,
106
+ "entriesClose": "14d",
107
+ "resultDue": "15d",
108
+ "split": [
109
+ {
110
+ "to": "wallet:9F8NQski3wBvLykJTJEj896jDHXtHMUde8KGGN2sdqQa",
111
+ "percent": 100
112
+ }
113
+ ],
114
+ "deciders": ["4jM7nD287NUa6yFDpcDvPq25YqqqyRFQCjJkkSPdopwa"]
115
+ }
116
+ ],
117
+ "grants": [
118
+ {
119
+ "key": "early-bird",
120
+ "name": "Early Bird Badge",
121
+ "prize": {
122
+ "gives": "item",
123
+ "item": "badge"
124
+ },
125
+ "gate": {
126
+ "item": "ticket"
127
+ },
128
+ "limits": {
129
+ "perWallet": 1,
130
+ "total": 100
131
+ },
132
+ "fund": 0.05
133
+ },
134
+ {
135
+ "key": "flyer-codes",
136
+ "name": "Flyer Codes",
137
+ "prize": {
138
+ "gives": "item",
139
+ "item": "badge"
140
+ },
141
+ "keys": [
142
+ "H6kDt47WNDdMLainm7bbMkGt5TmzvGszi2uzxub8DYgT",
143
+ "D9dWBeEDtRUY1pUaGWU2uMyhFrBHXnubkLDRgfQQAuZN",
144
+ "213K1dQHqaPzfKoWS5zHfoB6qhZeLZg3AK91UwjdTTP3"
145
+ ],
146
+ "limits": {
147
+ "perKey": 1,
148
+ "perWallet": 1
149
+ },
150
+ "fund": 0.02
151
+ }
152
+ ],
153
+ "scenario": {
154
+ "days": 30,
155
+ "perDay": {
156
+ "item:ticket": 3,
157
+ "item:plot": 1,
158
+ "box:crate": 20,
159
+ "lottery:raffle": 15,
160
+ "grant:early-bird": 3,
161
+ "grant:flyer-codes": 1
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,153 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Spark Pity Gacha",
5
+ "prompt": "Every pull gives a Spark token alongside the roll; 90 Sparks craft the legendary of your choice. Bad luck is capped, and Sparks are tradeable.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ },
12
+ {
13
+ "key": "pull",
14
+ "source": "game",
15
+ "name": "Banner pull",
16
+ "symbol": "PULL",
17
+ "decimals": 0
18
+ },
19
+ {
20
+ "key": "spark",
21
+ "source": "game",
22
+ "name": "Spark",
23
+ "symbol": "SPARK",
24
+ "decimals": 0
25
+ }
26
+ ],
27
+ "collection": {
28
+ "name": "Spark Banner"
29
+ },
30
+ "items": [
31
+ {
32
+ "key": "legendary",
33
+ "name": "Starfall Legendary",
34
+ "rarity": "Legendary",
35
+ "value": 2
36
+ },
37
+ {
38
+ "key": "epic",
39
+ "name": "Moonlit Epic",
40
+ "rarity": "Epic",
41
+ "value": 0.2
42
+ },
43
+ {
44
+ "key": "rare",
45
+ "name": "Ember Rare",
46
+ "rarity": "Rare",
47
+ "value": 0.03
48
+ }
49
+ ],
50
+ "pools": [
51
+ {
52
+ "key": "bank",
53
+ "currency": "sol",
54
+ "seed": 1,
55
+ "about": "Takes every pull's SOL and pays the consolation prize."
56
+ }
57
+ ],
58
+ "recipes": [
59
+ {
60
+ "key": "pull",
61
+ "name": "Pull",
62
+ "in": [
63
+ {
64
+ "takes": "pay",
65
+ "amount": 0.05,
66
+ "currency": "sol",
67
+ "to": "pool:bank"
68
+ }
69
+ ],
70
+ "out": [
71
+ {
72
+ "gives": "tokens",
73
+ "amount": 1,
74
+ "currency": "pull",
75
+ "from": "mint"
76
+ },
77
+ {
78
+ "gives": "tokens",
79
+ "amount": 1,
80
+ "currency": "spark",
81
+ "from": "mint"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "key": "spark-legendary",
87
+ "name": "90 Sparks for the legendary",
88
+ "in": [
89
+ {
90
+ "takes": "pay",
91
+ "amount": 90,
92
+ "currency": "spark",
93
+ "to": "burn"
94
+ }
95
+ ],
96
+ "out": [
97
+ {
98
+ "gives": "item",
99
+ "item": "legendary"
100
+ }
101
+ ]
102
+ }
103
+ ],
104
+ "boxes": [
105
+ {
106
+ "key": "banner",
107
+ "name": "Starfall banner",
108
+ "price": 1,
109
+ "currency": "pull",
110
+ "split": [
111
+ {
112
+ "to": "burn",
113
+ "percent": 100
114
+ }
115
+ ],
116
+ "outcomes": [
117
+ {
118
+ "gives": "item",
119
+ "item": "legendary",
120
+ "chance": 1
121
+ },
122
+ {
123
+ "gives": "item",
124
+ "item": "epic",
125
+ "chance": 9
126
+ },
127
+ {
128
+ "gives": "item",
129
+ "item": "rare",
130
+ "chance": 30
131
+ },
132
+ {
133
+ "gives": "pay",
134
+ "pool": "bank",
135
+ "amount": 0.1,
136
+ "chance": 10
137
+ },
138
+ {
139
+ "gives": "nothing",
140
+ "chance": 50
141
+ }
142
+ ]
143
+ }
144
+ ],
145
+ "scenario": {
146
+ "days": 30,
147
+ "perDay": {
148
+ "recipe:pull": 500,
149
+ "box:banner": 500,
150
+ "recipe:spark-legendary": 5
151
+ }
152
+ }
153
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Stakers' Draw",
5
+ "prompt": "A weekly race pays its top players in GEM by rank: 500 to the winner, less down the ladder, from one reward. Players who keep at least 100 GEM locked in the vault for a week may enter a weekly draw where nobody loses: every ticket comes back after the draw, and the winners share the pot, which a sponsor seeds and supporter badges top up. Locked stakers can also buy the supporter badge.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ },
12
+ {
13
+ "key": "gem",
14
+ "source": "game",
15
+ "name": "Gem",
16
+ "symbol": "GEM",
17
+ "decimals": 6
18
+ }
19
+ ],
20
+ "collection": {
21
+ "name": "Stakers' Draw"
22
+ },
23
+ "items": [
24
+ {
25
+ "key": "badge",
26
+ "name": "Supporter Badge",
27
+ "price": 0.02,
28
+ "soulbound": true,
29
+ "split": [
30
+ {
31
+ "to": "lottery:draw",
32
+ "percent": 50
33
+ }
34
+ ],
35
+ "gate": {
36
+ "staked": {
37
+ "farm": "vault",
38
+ "atLeast": 100
39
+ }
40
+ }
41
+ }
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
+ "farms": [
51
+ {
52
+ "key": "vault",
53
+ "name": "The vault",
54
+ "stakes": "gem",
55
+ "rewards": "vault-rewards",
56
+ "rate": {
57
+ "perDay": 0.001,
58
+ "minted": true
59
+ },
60
+ "tiers": [
61
+ {
62
+ "lock": "7d",
63
+ "multiplier": 1
64
+ },
65
+ {
66
+ "lock": "30d",
67
+ "multiplier": 2
68
+ }
69
+ ]
70
+ }
71
+ ],
72
+ "lotteries": [
73
+ {
74
+ "key": "draw",
75
+ "name": "The stakers' draw",
76
+ "price": 0.01,
77
+ "noLoss": true,
78
+ "seed": 0.1,
79
+ "places": [
80
+ 60,
81
+ 40
82
+ ],
83
+ "every": "7d",
84
+ "perWallet": 20,
85
+ "gate": {
86
+ "staked": {
87
+ "farm": "vault",
88
+ "atLeast": 100
89
+ }
90
+ }
91
+ }
92
+ ],
93
+ "grants": [
94
+ {
95
+ "key": "race",
96
+ "name": "Weekly race rewards",
97
+ "prize": {
98
+ "gives": "tokens",
99
+ "amount": 500,
100
+ "currency": "gem",
101
+ "from": "mint"
102
+ },
103
+ "vouchers": [
104
+ "AKnL4NNf3DGWZJS6cPknBuEGnVsV4A4m5tgebLHaRSZ9"
105
+ ],
106
+ "limits": {
107
+ "perWallet": 52,
108
+ "perDay": 10
109
+ },
110
+ "fund": 0.2
111
+ }
112
+ ],
113
+ "scenario": {
114
+ "days": 28,
115
+ "perDay": {
116
+ "grant:race": 1,
117
+ "farm:vault": 5,
118
+ "lottery:draw": 40,
119
+ "item:badge": 2
120
+ },
121
+ "staked": {
122
+ "vault": 5000
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,157 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
4
+ "name": "Star Fleet",
5
+ "prompt": "Ships mine 100 ORE a day while staked, three times as much on a 7-day deployment, and gain XP, but only while they have fuel: a day of fuel costs 10 FUEL, up to 3 days ahead, and a ship that runs dry mines nothing until it is refuelled. A refinery turns 5 ORE into 1 FUEL. A ship can leave a deployment early: each day off its lock costs 200 ORE, burned.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ },
12
+ {
13
+ "key": "ore",
14
+ "source": "game",
15
+ "name": "Ore",
16
+ "symbol": "ORE",
17
+ "decimals": 0
18
+ },
19
+ {
20
+ "key": "fuel",
21
+ "source": "game",
22
+ "name": "Fuel",
23
+ "symbol": "FUEL",
24
+ "decimals": 0
25
+ }
26
+ ],
27
+ "collection": {
28
+ "name": "Star Fleet"
29
+ },
30
+ "items": [
31
+ {
32
+ "key": "ship",
33
+ "name": "Ship",
34
+ "price": 0.05
35
+ }
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
+ "recipes": [
45
+ {
46
+ "key": "refuel",
47
+ "name": "Refuel a ship",
48
+ "in": [
49
+ {
50
+ "takes": "use",
51
+ "item": "ship"
52
+ },
53
+ {
54
+ "takes": "pay",
55
+ "amount": 10,
56
+ "currency": "fuel",
57
+ "to": "burn"
58
+ }
59
+ ],
60
+ "raises": [
61
+ {
62
+ "place": 0,
63
+ "key": "fuel_until",
64
+ "by": "1d",
65
+ "upTo": "3d",
66
+ "fromNow": true
67
+ }
68
+ ]
69
+ },
70
+ {
71
+ "key": "recall",
72
+ "name": "Recall a day early",
73
+ "in": [
74
+ {
75
+ "takes": "use",
76
+ "item": "ship"
77
+ },
78
+ {
79
+ "takes": "pay",
80
+ "amount": 200,
81
+ "currency": "ore",
82
+ "to": "burn"
83
+ }
84
+ ],
85
+ "raises": [
86
+ {
87
+ "place": 0,
88
+ "key": "free_at",
89
+ "by": "-1d",
90
+ "fromNow": true
91
+ }
92
+ ]
93
+ },
94
+ {
95
+ "key": "refinery",
96
+ "name": "Refinery",
97
+ "in": [
98
+ {
99
+ "takes": "pay",
100
+ "amount": 5,
101
+ "currency": "ore",
102
+ "to": "burn"
103
+ }
104
+ ],
105
+ "out": [
106
+ {
107
+ "gives": "tokens",
108
+ "amount": 1,
109
+ "currency": "fuel",
110
+ "from": "mint"
111
+ }
112
+ ]
113
+ }
114
+ ],
115
+ "farms": [
116
+ {
117
+ "key": "mine",
118
+ "name": "The mine",
119
+ "stakes": "collectibles",
120
+ "item": "ship",
121
+ "rewards": "ore-rewards",
122
+ "rate": {
123
+ "perDay": 100,
124
+ "minted": true
125
+ },
126
+ "tiers": [
127
+ {
128
+ "lock": "1d",
129
+ "multiplier": 1
130
+ },
131
+ {
132
+ "lock": "7d",
133
+ "multiplier": 3
134
+ }
135
+ ],
136
+ "lockAttribute": "free_at",
137
+ "upkeepAttribute": "fuel_until",
138
+ "growth": {
139
+ "attribute": "xp",
140
+ "perDay": 10
141
+ }
142
+ }
143
+ ],
144
+ "scenario": {
145
+ "days": 30,
146
+ "perDay": {
147
+ "item:ship": 5,
148
+ "farm:mine": 20,
149
+ "recipe:refuel": 60,
150
+ "recipe:recall": 2,
151
+ "recipe:refinery": 100
152
+ },
153
+ "staked": {
154
+ "mine": 100
155
+ }
156
+ }
157
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "version": 2,
3
+ "network": "devnet",
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.",
6
+ "currency": "sol",
7
+ "tokens": [
8
+ {
9
+ "key": "sol",
10
+ "source": "sol"
11
+ },
12
+ {
13
+ "key": "attempt",
14
+ "source": "game",
15
+ "name": "Starforce attempt",
16
+ "symbol": "TRY",
17
+ "decimals": 0
18
+ }
19
+ ],
20
+ "collection": {
21
+ "name": "Starforce"
22
+ },
23
+ "items": [
24
+ {
25
+ "key": "sword-1",
26
+ "name": "Sword +1",
27
+ "price": 0.05,
28
+ "value": 0.05
29
+ },
30
+ {
31
+ "key": "sword-2",
32
+ "name": "Sword +2",
33
+ "rarity": "Rare",
34
+ "value": 0.15
35
+ }
36
+ ],
37
+ "pools": [
38
+ {
39
+ "key": "jackpot",
40
+ "currency": "sol",
41
+ "seed": 2,
42
+ "about": "Every try's fee; the lucky roll takes a tenth."
43
+ }
44
+ ],
45
+ "recipes": [
46
+ {
47
+ "key": "try",
48
+ "name": "Try for +2",
49
+ "in": [
50
+ {
51
+ "takes": "burn",
52
+ "item": "sword-1",
53
+ "count": 1
54
+ },
55
+ {
56
+ "takes": "pay",
57
+ "amount": 0.02,
58
+ "currency": "sol",
59
+ "to": "pool:jackpot"
60
+ }
61
+ ],
62
+ "out": [
63
+ {
64
+ "gives": "tokens",
65
+ "amount": 1,
66
+ "currency": "attempt",
67
+ "from": "mint"
68
+ }
69
+ ]
70
+ }
71
+ ],
72
+ "boxes": [
73
+ {
74
+ "key": "star-1",
75
+ "name": "Starforce +1 to +2",
76
+ "price": 1,
77
+ "currency": "attempt",
78
+ "split": [
79
+ {
80
+ "to": "burn",
81
+ "percent": 100
82
+ }
83
+ ],
84
+ "outcomes": [
85
+ {
86
+ "gives": "item",
87
+ "item": "sword-2",
88
+ "chance": 40
89
+ },
90
+ {
91
+ "gives": "item",
92
+ "item": "sword-1",
93
+ "chance": 45
94
+ },
95
+ {
96
+ "gives": "burn",
97
+ "chance": 14.5
98
+ },
99
+ {
100
+ "gives": "share",
101
+ "pool": "jackpot",
102
+ "percent": 10,
103
+ "chance": 0.5
104
+ }
105
+ ]
106
+ }
107
+ ],
108
+ "scenario": {
109
+ "days": 30,
110
+ "perDay": {
111
+ "item:sword-1": 100,
112
+ "recipe:try": 100,
113
+ "box:star-1": 100
114
+ }
115
+ }
116
+ }