@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.
- package/DISCLAIMER.md +41 -0
- package/LICENSE +202 -0
- package/NOTICE +13 -0
- package/README.md +172 -2
- package/bin/xsolana.mjs +189 -0
- package/examples/artwork-auction.json +51 -0
- package/examples/blind-forge.json +128 -0
- package/examples/coin-flip-arena.json +108 -0
- package/examples/duel-arena.json +137 -0
- package/examples/elements-set.json +281 -0
- package/examples/event-badges.json +67 -0
- package/examples/expedition-guild.json +161 -0
- package/examples/fair-presale.json +48 -0
- package/examples/falling-drop.json +90 -0
- package/examples/guild-missions.json +144 -0
- package/examples/halving-seasons.json +112 -0
- package/examples/hero-trials.json +96 -0
- package/examples/ideas.json +789 -0
- package/examples/level-ladder.json +65 -0
- package/examples/merge-2048.json +128 -0
- package/examples/nft-raffle.json +33 -0
- package/examples/paper-hands-farm.json +56 -0
- package/examples/partner-vault.json +115 -0
- package/examples/sacrifice-raffle.json +118 -0
- package/examples/scorched-treasury.json +84 -0
- package/examples/shelter-fair.json +164 -0
- package/examples/spark-pity.json +153 -0
- package/examples/stakers-draw.json +125 -0
- package/examples/star-fleet.json +157 -0
- package/examples/starforce.json +116 -0
- package/examples/stud-farm.json +134 -0
- package/examples/team-vesting.json +70 -0
- package/examples/trade-in-shop.json +168 -0
- package/js/approve/details.mjs +262 -0
- package/js/approve/ed25519.mjs +36 -0
- package/js/approve/live-check.mjs +144 -0
- package/js/approve/page.html +86 -0
- package/js/approve/page.js +203 -0
- package/js/approve/server.mjs +711 -0
- package/js/chain/base58.js +73 -0
- package/js/chain/borsh.js +261 -0
- package/js/chain/bytes.js +141 -0
- package/js/chain/core.js +169 -0
- package/js/chain/curve.js +52 -0
- package/js/chain/lookup.js +273 -0
- package/js/chain/mint.js +96 -0
- package/js/chain/pda.js +66 -0
- package/js/chain/programs.js +102 -0
- package/js/chain/rpc.js +217 -0
- package/js/chain/sha256.js +68 -0
- package/js/chain/token.js +85 -0
- package/js/chain/token2022.js +247 -0
- package/js/chain/tx.js +224 -0
- package/js/client/accounts.js +347 -0
- package/js/client/compressed.js +46 -0
- package/js/client/grant.js +240 -0
- package/js/client/idl/loot.js +2 -0
- package/js/client/idl/loot.json +17064 -0
- package/js/client/index.js +9 -0
- package/js/client/ix.js +2156 -0
- package/js/client/pda.js +110 -0
- package/js/client/policy.js +48 -0
- package/js/client/sizes.js +54 -0
- package/js/client/traits.js +44 -0
- package/js/connect/connect.mjs +182 -0
- package/js/economy/check.mjs +1991 -0
- package/js/economy/cost.mjs +170 -0
- package/js/economy/examples.mjs +114 -0
- package/js/economy/explain.mjs +235 -0
- package/js/economy/guide.mjs +231 -0
- package/js/economy/legal.mjs +15 -0
- package/js/economy/live.mjs +107 -0
- package/js/economy/model.mjs +583 -0
- package/js/economy/plan.mjs +887 -0
- package/js/economy/schema.json +2923 -0
- package/js/economy/secrets.mjs +60 -0
- package/js/economy/simulate.mjs +952 -0
- package/js/economy/txsize.mjs +45 -0
- package/js/economy/validate.mjs +85 -0
- package/js/index.js +10 -0
- package/js/mcp/server.mjs +113 -0
- package/js/mcp/tools.mjs +479 -0
- package/js/play/index.js +2109 -0
- package/js/results/index.js +184 -0
- package/js/results/wire.js +90 -0
- package/package.json +100 -4
- package/release.json +8 -0
- package/skills/xsolana-economy/SKILL.md +105 -0
- package/skills/xsolana-economy/references/after-launch.md +114 -0
- package/skills/xsolana-economy/references/apps.md +157 -0
- package/skills/xsolana-economy/references/sentence-to-spec.md +172 -0
- package/skills/xsolana-economy/references/telling-the-person.md +93 -0
- package/types/chain/base58.d.ts +10 -0
- package/types/chain/borsh.d.ts +23 -0
- package/types/chain/bytes.d.ts +45 -0
- package/types/chain/core.d.ts +50 -0
- package/types/chain/curve.d.ts +1 -0
- package/types/chain/lookup.d.ts +191 -0
- package/types/chain/mint.d.ts +25 -0
- package/types/chain/pda.d.ts +25 -0
- package/types/chain/programs.d.ts +65 -0
- package/types/chain/rpc.d.ts +66 -0
- package/types/chain/sha256.d.ts +1 -0
- package/types/chain/token.d.ts +141 -0
- package/types/chain/token2022.d.ts +53 -0
- package/types/chain/tx.d.ts +60 -0
- package/types/client/accounts.d.ts +178 -0
- package/types/client/compressed.d.ts +29 -0
- package/types/client/grant.d.ts +125 -0
- package/types/client/idl/loot.d.ts +4467 -0
- package/types/client/index.d.ts +8 -0
- package/types/client/ix.d.ts +1687 -0
- package/types/client/pda.d.ts +91 -0
- package/types/client/policy.d.ts +23 -0
- package/types/client/sizes.d.ts +13 -0
- package/types/client/traits.d.ts +12 -0
- package/types/economy/check.d.mts +105 -0
- package/types/economy/cost.d.mts +68 -0
- package/types/economy/examples.d.mts +27 -0
- package/types/economy/explain.d.mts +19 -0
- package/types/economy/guide.d.mts +140 -0
- package/types/economy/legal.d.mts +12 -0
- package/types/economy/live.d.mts +109 -0
- package/types/economy/model.d.mts +363 -0
- package/types/economy/plan.d.mts +1013 -0
- package/types/economy/secrets.d.mts +4 -0
- package/types/economy/simulate.d.mts +156 -0
- package/types/economy/txsize.d.mts +17 -0
- package/types/economy/validate.d.mts +3 -0
- package/types/index.d.ts +9 -0
- package/types/mcp/tools.d.mts +627 -0
- package/types/play/index.d.ts +469 -0
- package/types/results/index.d.ts +155 -0
- package/types/results/wire.d.ts +122 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Event Badges",
|
|
5
|
+
"prompt": "A community gives everyone who comes to its weekly events a badge NFT, vouched for by its server, thousands of them, without paying rent for each one (compressed). The top three of each season's leaderboard get a Season Medal, a Core NFT.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"collection": {
|
|
14
|
+
"name": "Event Badges"
|
|
15
|
+
},
|
|
16
|
+
"compressedTree": {
|
|
17
|
+
"holds": 100000
|
|
18
|
+
},
|
|
19
|
+
"items": [
|
|
20
|
+
{
|
|
21
|
+
"key": "badge",
|
|
22
|
+
"name": "Event Badge",
|
|
23
|
+
"uri": "https://example.invalid/badges/{serial}.json"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"key": "medal",
|
|
27
|
+
"name": "Season Medal",
|
|
28
|
+
"uri": "https://example.invalid/medals/{serial}.json"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"grants": [
|
|
32
|
+
{
|
|
33
|
+
"key": "attended",
|
|
34
|
+
"name": "Attended",
|
|
35
|
+
"prize": {
|
|
36
|
+
"gives": "item",
|
|
37
|
+
"item": "badge",
|
|
38
|
+
"compressed": true
|
|
39
|
+
},
|
|
40
|
+
"keys": ["H6kDt47WNDdMLainm7bbMkGt5TmzvGszi2uzxub8DYgT"],
|
|
41
|
+
"limits": {
|
|
42
|
+
"perWallet": 52
|
|
43
|
+
},
|
|
44
|
+
"fund": 0.01
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"key": "season-top",
|
|
48
|
+
"name": "Season Top Three",
|
|
49
|
+
"prize": {
|
|
50
|
+
"gives": "item",
|
|
51
|
+
"item": "medal"
|
|
52
|
+
},
|
|
53
|
+
"keys": ["H6kDt47WNDdMLainm7bbMkGt5TmzvGszi2uzxub8DYgT"],
|
|
54
|
+
"limits": {
|
|
55
|
+
"perWallet": 4
|
|
56
|
+
},
|
|
57
|
+
"fund": 0.05
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"scenario": {
|
|
61
|
+
"days": 30,
|
|
62
|
+
"perDay": {
|
|
63
|
+
"grant:attended": 200,
|
|
64
|
+
"grant:season-top": 0.1
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Expedition Guild",
|
|
5
|
+
"prompt": "Heroes earn 10 DUST a day while staked and gain XP, written on the hero: 100, 300, 600 and 1000 XP are levels 1 to 4, and each level adds 10% to what a hero earns. A 3-day expedition brings back 2 relic tickets (more for a higher level); a ticket opens a relic chest, where a higher-level hero finds the rare relic more often. A hero can also be trained: 50 DUST burned for a level, up to level 4.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "dust",
|
|
14
|
+
"source": "game",
|
|
15
|
+
"name": "Dust",
|
|
16
|
+
"symbol": "DUST",
|
|
17
|
+
"decimals": 6
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"key": "ticket",
|
|
21
|
+
"source": "game",
|
|
22
|
+
"name": "Relic Ticket",
|
|
23
|
+
"symbol": "TICKET",
|
|
24
|
+
"decimals": 0
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"collection": {
|
|
28
|
+
"name": "Expedition Guild"
|
|
29
|
+
},
|
|
30
|
+
"items": [
|
|
31
|
+
{
|
|
32
|
+
"key": "hero",
|
|
33
|
+
"name": "Hero",
|
|
34
|
+
"price": 0.05
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"key": "relic",
|
|
38
|
+
"name": "Rare Relic"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"pools": [
|
|
42
|
+
{
|
|
43
|
+
"key": "dust-rewards",
|
|
44
|
+
"currency": "dust",
|
|
45
|
+
"about": "Names the guild's reward token: the guild mints DUST at its rate, so nothing waits here."
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"boxes": [
|
|
49
|
+
{
|
|
50
|
+
"key": "chest",
|
|
51
|
+
"name": "Relic chest",
|
|
52
|
+
"price": 1,
|
|
53
|
+
"currency": "ticket",
|
|
54
|
+
"outcomes": [
|
|
55
|
+
{
|
|
56
|
+
"gives": "item",
|
|
57
|
+
"item": "relic",
|
|
58
|
+
"chance": 20
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"gives": "nothing",
|
|
62
|
+
"chance": 80
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"odds": [
|
|
66
|
+
{
|
|
67
|
+
"outcome": 0,
|
|
68
|
+
"when": {
|
|
69
|
+
"item": "hero",
|
|
70
|
+
"attribute": "level",
|
|
71
|
+
"atLeast": 1
|
|
72
|
+
},
|
|
73
|
+
"add": {
|
|
74
|
+
"perPointPercent": 25,
|
|
75
|
+
"upTo": 4
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"recipes": [
|
|
82
|
+
{
|
|
83
|
+
"key": "train",
|
|
84
|
+
"name": "Train a hero",
|
|
85
|
+
"in": [
|
|
86
|
+
{
|
|
87
|
+
"takes": "use",
|
|
88
|
+
"item": "hero"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"takes": "pay",
|
|
92
|
+
"amount": 50,
|
|
93
|
+
"currency": "dust",
|
|
94
|
+
"to": "burn"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"raises": [
|
|
98
|
+
{
|
|
99
|
+
"place": 0,
|
|
100
|
+
"key": "level",
|
|
101
|
+
"by": 1,
|
|
102
|
+
"upTo": 4
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"farms": [
|
|
108
|
+
{
|
|
109
|
+
"key": "guild",
|
|
110
|
+
"name": "The guild",
|
|
111
|
+
"stakes": "collectibles",
|
|
112
|
+
"item": "hero",
|
|
113
|
+
"rewards": "dust-rewards",
|
|
114
|
+
"rate": {
|
|
115
|
+
"perDay": 10,
|
|
116
|
+
"minted": true
|
|
117
|
+
},
|
|
118
|
+
"tiers": [
|
|
119
|
+
{
|
|
120
|
+
"lock": "1d",
|
|
121
|
+
"multiplier": 1
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"lock": "3d",
|
|
125
|
+
"multiplier": 1.5,
|
|
126
|
+
"prize": { "gives": "tokens", "amount": 2, "from": "mint", "currency": "ticket" }
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"growth": {
|
|
130
|
+
"perDay": 100,
|
|
131
|
+
"levels": [100, 300, 600, 1000]
|
|
132
|
+
},
|
|
133
|
+
"boosts": [
|
|
134
|
+
{
|
|
135
|
+
"when": {
|
|
136
|
+
"item": "hero",
|
|
137
|
+
"attribute": "level",
|
|
138
|
+
"atLeast": 0
|
|
139
|
+
},
|
|
140
|
+
"add": {
|
|
141
|
+
"perPointPercent": 10,
|
|
142
|
+
"upTo": 4
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"maxBoostPercent": 40
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"scenario": {
|
|
150
|
+
"days": 30,
|
|
151
|
+
"perDay": {
|
|
152
|
+
"item:hero": 5,
|
|
153
|
+
"box:chest": 10,
|
|
154
|
+
"farm:guild": 20,
|
|
155
|
+
"recipe:train": 5
|
|
156
|
+
},
|
|
157
|
+
"staked": {
|
|
158
|
+
"guild": 100
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Fair Presale",
|
|
5
|
+
"prompt": "A fair launch: backers put in SOL for a week, and if we raise at least 50 SOL, 10% of the new SPARK supply is split between them by how much each put in. If we miss the goal, everyone gets their SOL back.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "spark",
|
|
14
|
+
"source": "game",
|
|
15
|
+
"name": "Spark",
|
|
16
|
+
"symbol": "SPARK",
|
|
17
|
+
"decimals": 6
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"collection": false,
|
|
21
|
+
"contests": [
|
|
22
|
+
{
|
|
23
|
+
"key": "raise",
|
|
24
|
+
"name": "The raise",
|
|
25
|
+
"currency": "sol",
|
|
26
|
+
"sides": 1,
|
|
27
|
+
"sideNames": [
|
|
28
|
+
"Back it"
|
|
29
|
+
],
|
|
30
|
+
"entriesClose": "7d",
|
|
31
|
+
"resultDue": "8d",
|
|
32
|
+
"minPot": 50,
|
|
33
|
+
"split": [
|
|
34
|
+
{
|
|
35
|
+
"to": "treasury",
|
|
36
|
+
"percent": 100
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"prize": {
|
|
40
|
+
"gives": "tokens",
|
|
41
|
+
"amount": 1000000,
|
|
42
|
+
"from": "mint",
|
|
43
|
+
"currency": "spark",
|
|
44
|
+
"split": true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Falling Drop",
|
|
5
|
+
"prompt": "A hero whose price drops every minute until it sells; clones that cost 5% more each time; a new player's entry pays 10% to the friend who brought them; tips in the cursed coin burn 10% of every one.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "cursed",
|
|
14
|
+
"source": "existing",
|
|
15
|
+
"name": "MAIN-dev (a devnet test token)",
|
|
16
|
+
"symbol": "MAIN",
|
|
17
|
+
"decimals": 6,
|
|
18
|
+
"mint": "4ikj24Byduo7WZGhnxNYkqstpm9xUVeZH7eLQbjGDL7N",
|
|
19
|
+
"venue": "games.fun",
|
|
20
|
+
"powers": {
|
|
21
|
+
"mintAuthority": "someone else",
|
|
22
|
+
"freeze": false
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"collection": {
|
|
27
|
+
"name": "Falling Drop"
|
|
28
|
+
},
|
|
29
|
+
"items": [
|
|
30
|
+
{
|
|
31
|
+
"key": "drop-hero",
|
|
32
|
+
"name": "Drop Hero",
|
|
33
|
+
"price": 2,
|
|
34
|
+
"supply": 100,
|
|
35
|
+
"fall": {
|
|
36
|
+
"step": 0.05,
|
|
37
|
+
"every": "1m",
|
|
38
|
+
"floor": 0.2,
|
|
39
|
+
"start": "publish"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"key": "clone",
|
|
44
|
+
"name": "Clone",
|
|
45
|
+
"price": 0.1,
|
|
46
|
+
"rise": {
|
|
47
|
+
"step": 0,
|
|
48
|
+
"growthPercent": 5
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"payments": [
|
|
53
|
+
{
|
|
54
|
+
"key": "entry",
|
|
55
|
+
"name": "Entry, with a friend's cut",
|
|
56
|
+
"amount": 0.05,
|
|
57
|
+
"split": [
|
|
58
|
+
{
|
|
59
|
+
"to": "account:6U3XnmrzuZ5sDujScii8SmzwtRZ4skfKcH2TLiz1rmES",
|
|
60
|
+
"percent": 10
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"key": "cursed-tip",
|
|
66
|
+
"name": "Cursed tip",
|
|
67
|
+
"amount": 10,
|
|
68
|
+
"currency": "cursed",
|
|
69
|
+
"split": [
|
|
70
|
+
{
|
|
71
|
+
"to": "burn",
|
|
72
|
+
"percent": 10
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"to": "account:3pVhH23EoBG5yYgkYq6bSu22itPrvrtaLofqgqGxw2GP",
|
|
76
|
+
"percent": 90
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"scenario": {
|
|
82
|
+
"days": 30,
|
|
83
|
+
"perDay": {
|
|
84
|
+
"item:drop-hero": 3,
|
|
85
|
+
"item:clone": 20,
|
|
86
|
+
"payment:entry": 50,
|
|
87
|
+
"payment:cursed-tip": 30
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Guild Missions",
|
|
5
|
+
"prompt": "Anyone can stake their NFT for 5 tokens a day and 1 level a day. Then I release a mission, only open for one week: you must be level 3 to join, and you earn an extra level a day and +2 affection a day. Once that mission is over, I release a mission that requires level 100 and 6 affection to enter, and gives +2 trust a day and +100 tokens. It must work with my pNFTs, and a pNFT with a blue background in its off-chain metadata gets a 10% boost.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "gem",
|
|
14
|
+
"source": "game",
|
|
15
|
+
"name": "Guild Gem",
|
|
16
|
+
"symbol": "GEM",
|
|
17
|
+
"decimals": 6
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"collection": {
|
|
21
|
+
"name": "Guild Missions"
|
|
22
|
+
},
|
|
23
|
+
"pools": [
|
|
24
|
+
{
|
|
25
|
+
"key": "gem-rewards",
|
|
26
|
+
"currency": "gem",
|
|
27
|
+
"about": "Names the guild's token: every farm here mints it, so nothing waits in this pool."
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"traits": [
|
|
31
|
+
{
|
|
32
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR",
|
|
33
|
+
"root": "50248561001082dabb151db021b0dbb501576e06b16d539eafc8f605591c983e",
|
|
34
|
+
"about": "Each pNFT's Background, from its off-chain metadata (loot.traitsTree of every NFT of the collection). A player proves theirs into its Sheet once (app.proveTraits), and the guild's boost reads it."
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"farms": [
|
|
38
|
+
{
|
|
39
|
+
"key": "guild",
|
|
40
|
+
"name": "The guild",
|
|
41
|
+
"stakes": "collectibles",
|
|
42
|
+
"custody": "freeze",
|
|
43
|
+
"gate": {
|
|
44
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR"
|
|
45
|
+
},
|
|
46
|
+
"rewards": "gem-rewards",
|
|
47
|
+
"rate": {
|
|
48
|
+
"perDay": 5,
|
|
49
|
+
"minted": true
|
|
50
|
+
},
|
|
51
|
+
"growth": {
|
|
52
|
+
"attribute": "level",
|
|
53
|
+
"perDay": 1
|
|
54
|
+
},
|
|
55
|
+
"boosts": [
|
|
56
|
+
{
|
|
57
|
+
"when": {
|
|
58
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR",
|
|
59
|
+
"attribute": "Background",
|
|
60
|
+
"equals": "Blue"
|
|
61
|
+
},
|
|
62
|
+
"add": {
|
|
63
|
+
"addPercent": 10
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"maxBoostPercent": 10
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"key": "mission-1",
|
|
71
|
+
"name": "Mission 1",
|
|
72
|
+
"stakes": "collectibles",
|
|
73
|
+
"custody": "watch",
|
|
74
|
+
"runs": "7d",
|
|
75
|
+
"gate": {
|
|
76
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR",
|
|
77
|
+
"attribute": "level",
|
|
78
|
+
"atLeast": 3
|
|
79
|
+
},
|
|
80
|
+
"rewards": "gem-rewards",
|
|
81
|
+
"rate": {
|
|
82
|
+
"perDay": 0,
|
|
83
|
+
"minted": true
|
|
84
|
+
},
|
|
85
|
+
"growth": [
|
|
86
|
+
{
|
|
87
|
+
"attribute": "level",
|
|
88
|
+
"perDay": 1
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"attribute": "affection",
|
|
92
|
+
"perDay": 2
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"key": "mission-2",
|
|
98
|
+
"name": "Mission 2",
|
|
99
|
+
"stakes": "collectibles",
|
|
100
|
+
"custody": "watch",
|
|
101
|
+
"gate": [
|
|
102
|
+
{
|
|
103
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR",
|
|
104
|
+
"attribute": "level",
|
|
105
|
+
"atLeast": 100
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"collection": "Cvb5ZbtpUMk8yNG9GzC5nQ7FkB2xPVUZzZaxXqgNbvxR",
|
|
109
|
+
"attribute": "affection",
|
|
110
|
+
"atLeast": 6
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"rewards": "gem-rewards",
|
|
114
|
+
"rate": {
|
|
115
|
+
"perDay": 0,
|
|
116
|
+
"minted": true
|
|
117
|
+
},
|
|
118
|
+
"tiers": [
|
|
119
|
+
{
|
|
120
|
+
"lock": "7d",
|
|
121
|
+
"multiplier": 1,
|
|
122
|
+
"prize": { "gives": "tokens", "amount": 100, "from": "mint", "currency": "gem" }
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"growth": {
|
|
126
|
+
"attribute": "trust",
|
|
127
|
+
"perDay": 2
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"scenario": {
|
|
132
|
+
"days": 30,
|
|
133
|
+
"perDay": {
|
|
134
|
+
"farm:guild": 20,
|
|
135
|
+
"farm:mission-1": 5,
|
|
136
|
+
"farm:mission-2": 1
|
|
137
|
+
},
|
|
138
|
+
"staked": {
|
|
139
|
+
"guild": 100,
|
|
140
|
+
"mission-1": 30,
|
|
141
|
+
"mission-2": 5
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Halving Seasons",
|
|
5
|
+
"prompt": "Rewards mint into the play pool on a schedule that halves every 30 days; a soulbound season pass claims 10 PLAY a day from it; 10% of the play pool drips into the vault's interest every day, shared by everyone who stakes PLAY.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "play",
|
|
14
|
+
"source": "game",
|
|
15
|
+
"name": "Play",
|
|
16
|
+
"symbol": "PLAY",
|
|
17
|
+
"decimals": 6
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"collection": {
|
|
21
|
+
"name": "Halving Seasons"
|
|
22
|
+
},
|
|
23
|
+
"items": [
|
|
24
|
+
{
|
|
25
|
+
"key": "season-pass",
|
|
26
|
+
"name": "Season Pass",
|
|
27
|
+
"price": 0.05,
|
|
28
|
+
"soulbound": true,
|
|
29
|
+
"life": {
|
|
30
|
+
"cooldown": "1d"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"pools": [
|
|
35
|
+
{
|
|
36
|
+
"key": "season",
|
|
37
|
+
"currency": "play",
|
|
38
|
+
"about": "What the season mints, before it is claimed."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"key": "interest",
|
|
42
|
+
"currency": "play",
|
|
43
|
+
"about": "The vault's interest."
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"schedules": [
|
|
47
|
+
{
|
|
48
|
+
"key": "season-mint",
|
|
49
|
+
"name": "Season mint",
|
|
50
|
+
"does": "issue",
|
|
51
|
+
"pool": "season",
|
|
52
|
+
"amount": 1000,
|
|
53
|
+
"halveEvery": 30,
|
|
54
|
+
"every": "1d",
|
|
55
|
+
"maxRuns": 360
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"key": "drip",
|
|
59
|
+
"name": "Interest drip",
|
|
60
|
+
"does": "move",
|
|
61
|
+
"from": "season",
|
|
62
|
+
"to": "interest",
|
|
63
|
+
"percent": 10,
|
|
64
|
+
"every": "1d"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"recipes": [
|
|
68
|
+
{
|
|
69
|
+
"key": "daily-claim",
|
|
70
|
+
"name": "Daily claim",
|
|
71
|
+
"in": [
|
|
72
|
+
{
|
|
73
|
+
"takes": "use",
|
|
74
|
+
"item": "season-pass"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"out": [
|
|
78
|
+
{
|
|
79
|
+
"gives": "tokens",
|
|
80
|
+
"amount": 10,
|
|
81
|
+
"currency": "play",
|
|
82
|
+
"from": "pool:season"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"scenario": {
|
|
88
|
+
"days": 30,
|
|
89
|
+
"perDay": {
|
|
90
|
+
"recipe:daily-claim": 50,
|
|
91
|
+
"item:season-pass": 5,
|
|
92
|
+
"farm:vault": 20
|
|
93
|
+
},
|
|
94
|
+
"staked": {
|
|
95
|
+
"vault": 100000
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"farms": [
|
|
99
|
+
{
|
|
100
|
+
"key": "vault",
|
|
101
|
+
"name": "The vault",
|
|
102
|
+
"stakes": "play",
|
|
103
|
+
"rewards": "interest",
|
|
104
|
+
"tiers": [
|
|
105
|
+
{
|
|
106
|
+
"lock": "1d",
|
|
107
|
+
"multiplier": 1
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|