@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.
- package/README.md +95 -52
- package/bin/xsolana.mjs +23 -8
- package/examples/blind-forge.json +2 -4
- package/examples/coin-flip-arena.json +4 -12
- package/examples/duel-arena.json +1 -4
- package/examples/elements-set.json +2 -9
- package/examples/expedition-guild.json +1 -8
- package/examples/fair-presale.json +1 -3
- package/examples/guild-missions.json +3 -10
- package/examples/halving-seasons.json +4 -9
- package/examples/hero-trials.json +15 -6
- package/examples/holder-den.json +38 -0
- package/examples/holders-drop.json +105 -0
- package/examples/ideas.json +788 -788
- package/examples/match-predictions.json +24 -0
- package/examples/merge-2048.json +5 -5
- package/examples/nft-raffle.json +1 -0
- package/examples/pack-league.json +108 -0
- package/examples/paper-hands-farm.json +4 -16
- package/examples/partner-vault.json +20 -7
- package/examples/sacrifice-raffle.json +2 -10
- package/examples/shelter-fair.json +1 -0
- package/examples/stakers-draw.json +4 -15
- package/examples/star-fleet.json +1 -8
- package/examples/starforce.json +6 -6
- package/examples/stride-sneakers.json +164 -0
- package/examples/trade-in-shop.json +2 -3
- package/js/approve/details.mjs +122 -52
- package/js/approve/ed25519.mjs +5 -1
- package/js/approve/live-check.mjs +83 -26
- package/js/approve/page.html +217 -78
- package/js/approve/page.js +43 -15
- package/js/approve/server.mjs +290 -73
- package/js/chain/base58.js +7 -1
- package/js/chain/borsh.js +24 -11
- package/js/chain/bytes.js +11 -8
- package/js/chain/core.js +35 -7
- package/js/chain/curve.js +1 -1
- package/js/chain/lookup.js +124 -36
- package/js/chain/mint.js +6 -2
- package/js/chain/pda.js +2 -2
- package/js/chain/programs.js +6 -6
- package/js/chain/rpc.js +44 -16
- package/js/chain/token.js +13 -2
- package/js/chain/token2022.js +55 -16
- package/js/chain/tx.js +32 -22
- package/js/client/accounts.js +653 -131
- package/js/client/compressed.js +4 -3
- package/js/client/grant.js +267 -83
- package/js/client/idl/loot.js +1 -1
- package/js/client/idl/loot.json +2406 -2176
- package/js/client/index.js +1 -0
- package/js/client/ix.js +3059 -664
- package/js/client/pda.js +39 -33
- package/js/client/policy.js +52 -24
- package/js/client/random.js +70 -0
- package/js/client/sizes.js +414 -16
- package/js/client/traits.js +14 -5
- package/js/connect/connect.mjs +59 -17
- package/js/economy/check.mjs +4153 -725
- package/js/economy/cost.mjs +403 -64
- package/js/economy/examples.mjs +176 -35
- package/js/economy/explain.mjs +466 -111
- package/js/economy/guide.mjs +296 -72
- package/js/economy/legal.mjs +12 -6
- package/js/economy/live.mjs +83 -19
- package/js/economy/model.mjs +462 -124
- package/js/economy/plan.mjs +1306 -219
- package/js/economy/schema.json +390 -484
- package/js/economy/secrets.mjs +17 -7
- package/js/economy/simulate.mjs +883 -223
- package/js/economy/txsize.mjs +15 -3
- package/js/economy/validate.mjs +61 -24
- package/js/mcp/server.mjs +42 -14
- package/js/mcp/tools.mjs +307 -88
- package/js/play/index.js +2864 -619
- package/js/play/keys.js +193 -0
- package/js/results/index.js +223 -30
- package/js/results/server.js +230 -0
- package/js/results/wire.js +64 -16
- package/package.json +6 -4
- package/release.json +5 -5
- package/skills/xsolana-economy/SKILL.md +39 -21
- package/skills/xsolana-economy/references/after-launch.md +58 -38
- package/skills/xsolana-economy/references/apps.md +97 -50
- package/skills/xsolana-economy/references/sentence-to-spec.md +148 -121
- package/skills/xsolana-economy/references/telling-the-person.md +61 -17
- package/types/chain/core.d.ts +4 -2
- package/types/chain/lookup.d.ts +5 -2
- package/types/chain/rpc.d.ts +3 -1
- package/types/client/accounts.d.ts +217 -56
- package/types/client/grant.d.ts +72 -27
- package/types/client/idl/loot.d.ts +602 -549
- package/types/client/index.d.ts +1 -0
- package/types/client/ix.d.ts +3884 -247
- package/types/client/pda.d.ts +22 -16
- package/types/client/policy.d.ts +39 -14
- package/types/client/random.d.ts +26 -0
- package/types/client/sizes.d.ts +93 -5
- package/types/economy/check.d.mts +5 -10
- package/types/economy/cost.d.mts +2 -1
- package/types/economy/guide.d.mts +5 -0
- package/types/economy/live.d.mts +16 -1
- package/types/economy/model.d.mts +151 -38
- package/types/economy/plan.d.mts +237 -194
- package/types/economy/simulate.d.mts +21 -13
- package/types/mcp/tools.d.mts +21 -13
- package/types/play/index.d.ts +453 -53
- package/types/play/keys.d.ts +51 -0
- package/types/results/index.d.ts +7 -6
- package/types/results/server.d.ts +126 -0
- 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
|
+
}
|
package/examples/merge-2048.json
CHANGED
|
@@ -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
|
|
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
|
|
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": "
|
|
113
|
-
"
|
|
114
|
-
"
|
|
112
|
+
"gives": "tokens",
|
|
113
|
+
"from": "pool:grand",
|
|
114
|
+
"amount": 8
|
|
115
115
|
}
|
|
116
116
|
]
|
|
117
117
|
}
|
package/examples/nft-raffle.json
CHANGED
|
@@ -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.
|
|
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
|
-
"
|
|
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": "
|
|
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": "
|
|
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": [
|
|
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": [
|
|
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": [
|
|
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": "
|
|
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
|
],
|
|
@@ -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": "
|
|
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
|
package/examples/star-fleet.json
CHANGED
|
@@ -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
|
|
114
|
+
"rewards": "ore",
|
|
122
115
|
"rate": {
|
|
123
116
|
"perDay": 100,
|
|
124
117
|
"minted": true
|
package/examples/starforce.json
CHANGED
|
@@ -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
|
|
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
|
|
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": "
|
|
96
|
+
"gives": "nothing",
|
|
97
97
|
"chance": 14.5
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"gives": "
|
|
100
|
+
"gives": "pay",
|
|
101
101
|
"pool": "jackpot",
|
|
102
|
-
"
|
|
103
|
-
"
|
|
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
|
],
|