@xgamesfun/solana 0.0.0-stage → 0.24.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/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 +103 -0
- package/examples/duel-arena.json +137 -0
- package/examples/elements-set.json +274 -0
- package/examples/event-badges.json +67 -0
- package/examples/expedition-guild.json +154 -0
- package/examples/fair-presale.json +48 -0
- package/examples/falling-drop.json +90 -0
- package/examples/guild-missions.json +137 -0
- package/examples/halving-seasons.json +107 -0
- package/examples/hero-trials.json +93 -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 +44 -0
- package/examples/partner-vault.json +112 -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 +118 -0
- package/examples/star-fleet.json +150 -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 +263 -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 +726 -0
- package/js/chain/base58.js +73 -0
- package/js/chain/borsh.js +270 -0
- package/js/chain/bytes.js +141 -0
- package/js/chain/core.js +181 -0
- package/js/chain/curve.js +52 -0
- package/js/chain/lookup.js +279 -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 +219 -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 +679 -0
- package/js/client/compressed.js +46 -0
- package/js/client/grant.js +299 -0
- package/js/client/idl/loot.js +2 -0
- package/js/client/idl/loot.json +17206 -0
- package/js/client/index.js +10 -0
- package/js/client/ix.js +2887 -0
- package/js/client/pda.js +114 -0
- package/js/client/policy.js +69 -0
- package/js/client/random.js +70 -0
- package/js/client/sizes.js +297 -0
- package/js/client/traits.js +44 -0
- package/js/connect/connect.mjs +182 -0
- package/js/economy/check.mjs +2236 -0
- package/js/economy/cost.mjs +185 -0
- package/js/economy/examples.mjs +114 -0
- package/js/economy/explain.mjs +239 -0
- package/js/economy/guide.mjs +232 -0
- package/js/economy/legal.mjs +15 -0
- package/js/economy/live.mjs +130 -0
- package/js/economy/model.mjs +698 -0
- package/js/economy/plan.mjs +1155 -0
- package/js/economy/schema.json +3071 -0
- package/js/economy/secrets.mjs +60 -0
- package/js/economy/simulate.mjs +1019 -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 +485 -0
- package/js/play/index.js +2855 -0
- package/js/play/keys.js +167 -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 +109 -0
- package/skills/xsolana-economy/references/after-launch.md +124 -0
- package/skills/xsolana-economy/references/apps.md +193 -0
- package/skills/xsolana-economy/references/sentence-to-spec.md +180 -0
- package/skills/xsolana-economy/references/telling-the-person.md +134 -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 +52 -0
- package/types/chain/curve.d.ts +1 -0
- package/types/chain/lookup.d.ts +194 -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 +68 -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 +318 -0
- package/types/client/compressed.d.ts +29 -0
- package/types/client/grant.d.ts +170 -0
- package/types/client/idl/loot.d.ts +4498 -0
- package/types/client/index.d.ts +9 -0
- package/types/client/ix.d.ts +5315 -0
- package/types/client/pda.d.ts +95 -0
- package/types/client/policy.d.ts +48 -0
- package/types/client/random.d.ts +26 -0
- package/types/client/sizes.d.ts +101 -0
- package/types/client/traits.d.ts +12 -0
- package/types/economy/check.d.mts +100 -0
- package/types/economy/cost.d.mts +69 -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 +124 -0
- package/types/economy/model.d.mts +431 -0
- package/types/economy/plan.d.mts +1014 -0
- package/types/economy/secrets.d.mts +4 -0
- package/types/economy/simulate.d.mts +164 -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 +635 -0
- package/types/play/index.d.ts +880 -0
- package/types/play/keys.d.ts +51 -0
- package/types/results/index.d.ts +155 -0
- package/types/results/wire.d.ts +122 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Level ladder",
|
|
5
|
+
"prompt": "A level ladder: each attempt costs 0.01 SOL, most of it goes into the prize pool, and whoever clears the last level gets 0.02 SOL from the pool. My server decides who cleared it.",
|
|
6
|
+
"keys": {
|
|
7
|
+
"authority": "owner"
|
|
8
|
+
},
|
|
9
|
+
"currency": "sol",
|
|
10
|
+
"tokens": [
|
|
11
|
+
{
|
|
12
|
+
"key": "sol",
|
|
13
|
+
"source": "sol"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"pools": [
|
|
17
|
+
{
|
|
18
|
+
"key": "prize",
|
|
19
|
+
"currency": "sol",
|
|
20
|
+
"seed": 0.5,
|
|
21
|
+
"about": "Pays whoever clears the last level. 80% of every attempt comes into it."
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"payments": [
|
|
25
|
+
{
|
|
26
|
+
"key": "attempt",
|
|
27
|
+
"name": "An attempt at the ladder",
|
|
28
|
+
"amount": 0.01,
|
|
29
|
+
"split": [
|
|
30
|
+
{
|
|
31
|
+
"to": "pool:prize",
|
|
32
|
+
"percent": 80
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"decisions": [
|
|
38
|
+
{
|
|
39
|
+
"key": "ladder-prize",
|
|
40
|
+
"when": "a player clears the last level",
|
|
41
|
+
"does": "payout",
|
|
42
|
+
"pool": "prize",
|
|
43
|
+
"amount": 0.02,
|
|
44
|
+
"to": "the player who cleared it",
|
|
45
|
+
"signedBy": "page",
|
|
46
|
+
"perDay": 10,
|
|
47
|
+
"proof": {
|
|
48
|
+
"payment": "attempt",
|
|
49
|
+
"after": "20s",
|
|
50
|
+
"within": "1h"
|
|
51
|
+
},
|
|
52
|
+
"caps": {
|
|
53
|
+
"each": 0.02,
|
|
54
|
+
"perPlayerPerDay": 0.04,
|
|
55
|
+
"perDay": 0.2
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"scenario": {
|
|
60
|
+
"days": 30,
|
|
61
|
+
"perDay": {
|
|
62
|
+
"payment:attempt": 200
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "2048 Collection",
|
|
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
|
+
"currency": "tile",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "tile",
|
|
10
|
+
"source": "existing",
|
|
11
|
+
"name": "Tile (pump.fun-style mint)",
|
|
12
|
+
"symbol": "TILE",
|
|
13
|
+
"decimals": 6,
|
|
14
|
+
"program": "spl-token",
|
|
15
|
+
"mint": "CywvsJBuGbL31ajSfM5cQw1k9JQWYTTwYBRo1zuYZRDs",
|
|
16
|
+
"venue": "other",
|
|
17
|
+
"powers": {
|
|
18
|
+
"mintAuthority": "none",
|
|
19
|
+
"freeze": false
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"collection": {
|
|
24
|
+
"name": "2048 Collection"
|
|
25
|
+
},
|
|
26
|
+
"items": [
|
|
27
|
+
{
|
|
28
|
+
"key": "tier-1",
|
|
29
|
+
"name": "Tile 2",
|
|
30
|
+
"price": 10,
|
|
31
|
+
"split": [
|
|
32
|
+
{
|
|
33
|
+
"to": "pool:grand",
|
|
34
|
+
"percent": 20
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"key": "tier-2",
|
|
40
|
+
"name": "Tile 4"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"key": "tier-3",
|
|
44
|
+
"name": "Tile 8",
|
|
45
|
+
"rarity": "Rare"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"key": "tier-4",
|
|
49
|
+
"name": "Tile 16",
|
|
50
|
+
"rarity": "Legendary",
|
|
51
|
+
"supply": 1
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"pools": [
|
|
55
|
+
{
|
|
56
|
+
"key": "grand",
|
|
57
|
+
"currency": "tile",
|
|
58
|
+
"about": "20% of every tile sold; whoever makes the top tile takes 8, half of what its eight tiles paid in."
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"recipes": [
|
|
62
|
+
{
|
|
63
|
+
"key": "merge-2",
|
|
64
|
+
"name": "Merge to 4",
|
|
65
|
+
"in": [
|
|
66
|
+
{
|
|
67
|
+
"takes": "burn",
|
|
68
|
+
"item": "tier-1",
|
|
69
|
+
"count": 2
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"out": [
|
|
73
|
+
{
|
|
74
|
+
"gives": "item",
|
|
75
|
+
"item": "tier-2"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"key": "merge-4",
|
|
81
|
+
"name": "Merge to 8",
|
|
82
|
+
"in": [
|
|
83
|
+
{
|
|
84
|
+
"takes": "burn",
|
|
85
|
+
"item": "tier-2",
|
|
86
|
+
"count": 2
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"out": [
|
|
90
|
+
{
|
|
91
|
+
"gives": "item",
|
|
92
|
+
"item": "tier-3"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"key": "merge-8",
|
|
98
|
+
"name": "Merge to 16",
|
|
99
|
+
"in": [
|
|
100
|
+
{
|
|
101
|
+
"takes": "burn",
|
|
102
|
+
"item": "tier-3",
|
|
103
|
+
"count": 2
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"out": [
|
|
107
|
+
{
|
|
108
|
+
"gives": "item",
|
|
109
|
+
"item": "tier-4"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"gives": "tokens",
|
|
113
|
+
"from": "pool:grand",
|
|
114
|
+
"amount": 8
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"scenario": {
|
|
120
|
+
"days": 30,
|
|
121
|
+
"perDay": {
|
|
122
|
+
"item:tier-1": 400,
|
|
123
|
+
"recipe:merge-2": 150,
|
|
124
|
+
"recipe:merge-4": 50,
|
|
125
|
+
"recipe:merge-8": 0
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Artwork Raffle",
|
|
5
|
+
"prompt": "I want to raffle one of my NFTs, a 1-of-1 artwork, for 0.1 SOL a ticket over three days. If fewer than 20 tickets sell, everyone gets their money back and I keep the art. The winner should get the art before I get paid, and I shouldn't be able to pull it once people have bought.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"collection": false,
|
|
14
|
+
"lotteries": [
|
|
15
|
+
{
|
|
16
|
+
"key": "art",
|
|
17
|
+
"name": "The artwork",
|
|
18
|
+
"price": 0.1,
|
|
19
|
+
"raffle": {
|
|
20
|
+
"nft": "ArtNFT1111111111111111111111111111111111111",
|
|
21
|
+
"collection": "ArtCoLLection111111111111111111111111111111"
|
|
22
|
+
},
|
|
23
|
+
"firstDraw": "publish+3d",
|
|
24
|
+
"minSold": 20,
|
|
25
|
+
"split": [
|
|
26
|
+
{
|
|
27
|
+
"to": "treasury",
|
|
28
|
+
"percent": 100
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Paper Hands Farm",
|
|
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
|
+
"currency": "gem",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "gem",
|
|
10
|
+
"source": "game",
|
|
11
|
+
"name": "Gem",
|
|
12
|
+
"symbol": "GEM",
|
|
13
|
+
"decimals": 6
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"collection": false,
|
|
17
|
+
"schedules": [
|
|
18
|
+
{
|
|
19
|
+
"key": "emission",
|
|
20
|
+
"name": "Daily emission",
|
|
21
|
+
"does": "issue",
|
|
22
|
+
"currency": "gem",
|
|
23
|
+
"to": "farm:farm",
|
|
24
|
+
"amount": 1000,
|
|
25
|
+
"every": "1d"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"farms": [
|
|
29
|
+
{
|
|
30
|
+
"key": "farm",
|
|
31
|
+
"name": "The farm",
|
|
32
|
+
"stakes": "gem",
|
|
33
|
+
"rewards": "gem",
|
|
34
|
+
"tiers": [
|
|
35
|
+
{
|
|
36
|
+
"lock": "30d",
|
|
37
|
+
"multiplier": 1,
|
|
38
|
+
"exitFee": 10
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"exitFeeTo": "rewards"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Partner Vault",
|
|
5
|
+
"prompt": "We hold NFTs from a partner collection and want to give them out: a paid crate with a 5% chance at one, a free daily chest for anyone, a raffle whose winner takes the rare one, a one-day expedition that brings back a chest, and an auction of a mystery lot.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{ "key": "sol", "source": "sol" },
|
|
9
|
+
{ "key": "shards", "source": "game", "name": "Shards", "symbol": "SHRD", "decimals": 6 }
|
|
10
|
+
],
|
|
11
|
+
"collection": { "name": "Partner Vault" },
|
|
12
|
+
"items": [
|
|
13
|
+
{ "key": "pass", "name": "Expedition Pass", "price": 0.01 },
|
|
14
|
+
{ "key": "trinket", "name": "Trinket", "value": 0.01 }
|
|
15
|
+
],
|
|
16
|
+
"stashes": [
|
|
17
|
+
{
|
|
18
|
+
"key": "vault",
|
|
19
|
+
"name": "Partner vault",
|
|
20
|
+
"collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw",
|
|
21
|
+
"nfts": ["4vd1uA3jK28MwhufZnbtQpyJkVMXEVpKHzDRPUH9DT3v", "E53iEjsuDnz1jP6MJbnhecvTBRWCs5MsmjusfhYNDjD4", "B53EzSitDoQ4usvMN4nKhQRUVb7BhNh9PZPwgyQobpsV"],
|
|
22
|
+
"about": "Given by the paid crate and the mystery lot."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"key": "chest-nfts",
|
|
26
|
+
"name": "Chest NFTs",
|
|
27
|
+
"collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw",
|
|
28
|
+
"nfts": ["BZsYY7KSt66SQyd45RFAKXidLLF36oVVmqMPRBYysKT2", "26gvuDRgS6angwJyjPT2zYs49QCEZW3nweT1rUC5pM8E"],
|
|
29
|
+
"about": "Given by the daily chest and the expedition's chest."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"key": "rare",
|
|
33
|
+
"name": "The rare one",
|
|
34
|
+
"nfts": [{ "asset": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4", "collection": "5q8LtcGwYhYRq5M8dQ79wkeLvo8N993a7aoE6DLDBXaw" }],
|
|
35
|
+
"about": "The raffle's first prize, named by it and given when its place is paid: kept apart so no roll can take it."
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"boxes": [
|
|
39
|
+
{
|
|
40
|
+
"key": "partner-crate",
|
|
41
|
+
"name": "Partner Crate",
|
|
42
|
+
"price": 0.05,
|
|
43
|
+
"outcomes": [
|
|
44
|
+
{ "gives": "stash", "stash": "vault", "chance": 5 },
|
|
45
|
+
{ "gives": "item", "item": "trinket", "chance": 45 },
|
|
46
|
+
{ "gives": "nothing", "chance": 50 }
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"key": "daily-chest",
|
|
51
|
+
"name": "Daily Chest",
|
|
52
|
+
"price": 0,
|
|
53
|
+
"active": false,
|
|
54
|
+
"outcomes": [
|
|
55
|
+
{ "gives": "stash", "stash": "chest-nfts", "chance": 10 },
|
|
56
|
+
{ "gives": "item", "item": "trinket", "chance": 90 }
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"key": "mystery",
|
|
61
|
+
"name": "Mystery lot",
|
|
62
|
+
"price": 0,
|
|
63
|
+
"active": false,
|
|
64
|
+
"outcomes": [
|
|
65
|
+
{ "gives": "stash", "stash": "vault", "chance": 50 },
|
|
66
|
+
{ "gives": "item", "item": "trinket", "chance": 50 }
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"grants": [
|
|
71
|
+
{
|
|
72
|
+
"key": "daily",
|
|
73
|
+
"name": "Free daily chest",
|
|
74
|
+
"prize": { "gives": "roll", "box": "daily-chest" },
|
|
75
|
+
"limits": { "perWalletEach": { "count": 1, "every": "1d" }, "perDay": 200 },
|
|
76
|
+
"fund": 0.5
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"lotteries": [
|
|
80
|
+
{
|
|
81
|
+
"key": "raffle",
|
|
82
|
+
"name": "Rare NFT raffle",
|
|
83
|
+
"price": 0.01,
|
|
84
|
+
"places": [{ "percent": 0, "prize": { "gives": "nft", "stash": "rare", "nft": "BQqnw2mh6xEAhAxC8WrA2uqPg9ShsT13AqriUa9x4ab4" } }, 90],
|
|
85
|
+
"firstDraw": "publish+7d"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"farms": [
|
|
89
|
+
{
|
|
90
|
+
"key": "expedition",
|
|
91
|
+
"name": "Expedition",
|
|
92
|
+
"stakes": "collectibles",
|
|
93
|
+
"item": "pass",
|
|
94
|
+
"rewards": "shards",
|
|
95
|
+
"rate": { "perDay": 0, "minted": true },
|
|
96
|
+
"tiers": [{ "lock": "1d", "multiplier": 1, "prize": { "gives": "roll", "box": "daily-chest" } }]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"auctions": [
|
|
100
|
+
{
|
|
101
|
+
"key": "mystery-lot",
|
|
102
|
+
"name": "Mystery lot",
|
|
103
|
+
"lot": { "roll": "mystery" },
|
|
104
|
+
"reserve": 0.1,
|
|
105
|
+
"runs": "2d"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"scenario": {
|
|
109
|
+
"days": 30,
|
|
110
|
+
"perDay": { "box:partner-crate": 10, "grant:daily": 20, "lottery:raffle": 30, "item:pass": 3, "farm:expedition": 3 }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Sacrifice Raffle",
|
|
5
|
+
"prompt": "Burn an NFT for raffle tickets (more for rarer ones); the pot is a share of the collection's sales, drawn weekly, with one grand prize and seven minor ones.",
|
|
6
|
+
"currency": "sol",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "sol",
|
|
10
|
+
"source": "sol"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"key": "ticket",
|
|
14
|
+
"source": "game",
|
|
15
|
+
"name": "Raffle ticket",
|
|
16
|
+
"symbol": "TICKET",
|
|
17
|
+
"decimals": 0
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"collection": {
|
|
21
|
+
"name": "Sacrifice Raffle"
|
|
22
|
+
},
|
|
23
|
+
"items": [
|
|
24
|
+
{
|
|
25
|
+
"key": "junk-sword",
|
|
26
|
+
"name": "Rusty Sword",
|
|
27
|
+
"price": 0.01,
|
|
28
|
+
"split": [
|
|
29
|
+
{
|
|
30
|
+
"to": "lottery:weekly",
|
|
31
|
+
"percent": 10
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"key": "relic",
|
|
37
|
+
"name": "Old Relic",
|
|
38
|
+
"rarity": "Rare",
|
|
39
|
+
"price": 0.1,
|
|
40
|
+
"split": [
|
|
41
|
+
{
|
|
42
|
+
"to": "lottery:weekly",
|
|
43
|
+
"percent": 10
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"pools": [],
|
|
49
|
+
"recipes": [
|
|
50
|
+
{
|
|
51
|
+
"key": "sacrifice-sword",
|
|
52
|
+
"name": "Sacrifice a sword",
|
|
53
|
+
"in": [
|
|
54
|
+
{
|
|
55
|
+
"takes": "burn",
|
|
56
|
+
"item": "junk-sword",
|
|
57
|
+
"count": 1
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"out": [
|
|
61
|
+
{
|
|
62
|
+
"gives": "tokens",
|
|
63
|
+
"amount": 1,
|
|
64
|
+
"currency": "ticket",
|
|
65
|
+
"from": "mint"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"key": "sacrifice-relic",
|
|
71
|
+
"name": "Sacrifice a relic",
|
|
72
|
+
"in": [
|
|
73
|
+
{
|
|
74
|
+
"takes": "burn",
|
|
75
|
+
"item": "relic",
|
|
76
|
+
"count": 1
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"out": [
|
|
80
|
+
{
|
|
81
|
+
"gives": "tokens",
|
|
82
|
+
"amount": 12,
|
|
83
|
+
"currency": "ticket",
|
|
84
|
+
"from": "mint"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"lotteries": [
|
|
90
|
+
{
|
|
91
|
+
"key": "weekly",
|
|
92
|
+
"name": "Grand and minors",
|
|
93
|
+
"price": 1,
|
|
94
|
+
"ticketCurrency": "ticket",
|
|
95
|
+
"places": [
|
|
96
|
+
50,
|
|
97
|
+
10,
|
|
98
|
+
10,
|
|
99
|
+
10,
|
|
100
|
+
5,
|
|
101
|
+
5,
|
|
102
|
+
5,
|
|
103
|
+
5
|
|
104
|
+
],
|
|
105
|
+
"every": "7d"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"scenario": {
|
|
109
|
+
"days": 28,
|
|
110
|
+
"perDay": {
|
|
111
|
+
"item:junk-sword": 300,
|
|
112
|
+
"item:relic": 30,
|
|
113
|
+
"recipe:sacrifice-sword": 250,
|
|
114
|
+
"recipe:sacrifice-relic": 25,
|
|
115
|
+
"lottery:weekly": 500
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"network": "devnet",
|
|
4
|
+
"name": "Scorched Treasury",
|
|
5
|
+
"prompt": "A schedule burns 1% of the treasury pool every day. Players can slow it down by depositing tokens into the flame guard pool, which the next season pays back with a bonus. Doing nothing costs something.",
|
|
6
|
+
"currency": "main",
|
|
7
|
+
"tokens": [
|
|
8
|
+
{
|
|
9
|
+
"key": "main",
|
|
10
|
+
"source": "existing",
|
|
11
|
+
"name": "MAIN-dev (a devnet test token)",
|
|
12
|
+
"symbol": "MAIN",
|
|
13
|
+
"decimals": 6,
|
|
14
|
+
"mint": "4ikj24Byduo7WZGhnxNYkqstpm9xUVeZH7eLQbjGDL7N",
|
|
15
|
+
"venue": "games.fun",
|
|
16
|
+
"powers": {
|
|
17
|
+
"mintAuthority": "someone else",
|
|
18
|
+
"freeze": false
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"pools": [
|
|
23
|
+
{
|
|
24
|
+
"key": "embers",
|
|
25
|
+
"currency": "main",
|
|
26
|
+
"seed": 100000,
|
|
27
|
+
"about": "The treasury that burns."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"key": "flame-guard",
|
|
31
|
+
"currency": "main",
|
|
32
|
+
"about": "What players deposit to guard it; paid back next season."
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"payments": [
|
|
36
|
+
{
|
|
37
|
+
"key": "guard",
|
|
38
|
+
"name": "Guard the flame",
|
|
39
|
+
"amount": 100,
|
|
40
|
+
"split": [
|
|
41
|
+
{
|
|
42
|
+
"to": "pool:flame-guard",
|
|
43
|
+
"percent": 100
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"schedules": [
|
|
49
|
+
{
|
|
50
|
+
"key": "scorch",
|
|
51
|
+
"name": "Scorch",
|
|
52
|
+
"does": "burn",
|
|
53
|
+
"pool": "embers",
|
|
54
|
+
"percent": 1,
|
|
55
|
+
"every": "1d"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"decisions": [
|
|
59
|
+
{
|
|
60
|
+
"key": "payback",
|
|
61
|
+
"when": "the season ends",
|
|
62
|
+
"does": "payout",
|
|
63
|
+
"pool": "flame-guard",
|
|
64
|
+
"percent": 100,
|
|
65
|
+
"to": "each guard, by what they deposited",
|
|
66
|
+
"signedBy": "page"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"key": "bonus",
|
|
70
|
+
"when": "the season ends",
|
|
71
|
+
"does": "payout",
|
|
72
|
+
"pool": "embers",
|
|
73
|
+
"amount": 1000,
|
|
74
|
+
"to": "the guards, as a bonus",
|
|
75
|
+
"signedBy": "page"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"scenario": {
|
|
79
|
+
"days": 30,
|
|
80
|
+
"perDay": {
|
|
81
|
+
"payment:guard": 20
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|