Repository: public-awesome/launchpad
Pull request #716 (2025-02-07 05:04:47)

remove test wrapper


Patch:
diff --git a/.drone.star b/.drone.star
new file mode 100644
index 00000000..dd5977cd
--- /dev/null
+++ b/.drone.star
@@ -0,0 +1,46 @@
+def main(ctx):
+    return [
+        pipeline_test_and_build(ctx)
+    ]
+
+
+def pipeline_test_and_build(ctx):
+    return {
+    "kind": "pipeline",
+    "type": "docker",
+    "name": "test_and_build",
+    "steps": [
+      step_fetch(ctx),
+      cargo_test_all(ctx),
+      cargo_lint(ctx)
+    ],
+  }
+
+# Fetch the latest tags from the repository
+def step_fetch(ctx):
+    return {
+        "name": "fetch",
+        "image": "alpine/git",
+        "commands": [
+            "git fetch --tags"
+        ]
+    }
+
+def cargo_test_all(ctx):
+    return {
+        "name": "test",
+        "image": "rust:1.83",
+        "commands": ["cargo test --locked"]
+    }
+
+def cargo_lint(ctx):
+    return {
+        "name": "lint",
+        "image": "rust:1.83",
+        "commands": [
+            "rustup component add rustfmt",
+            "rustup component add clippy",
+            "cargo fmt -- --check", 
+            "cargo clippy --all-targets -- -D warnings"
+        ]
+    }
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..9c82f6b8
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,9 @@
+{
+	"[toml]": {
+		"editor.defaultFormatter": "tamasfe.even-better-toml"
+	},
+	"evenBetterToml.formatter.alignEntries": true,
+	"evenBetterToml.formatter.alignComments": true,
+	"evenBetterToml.formatter.allowedBlankLines": 2,
+	"evenBetterToml.formatter.columnWidth": 120
+}
diff --git a/Cargo.lock b/Cargo.lock
index d3e1a6e3..547e6a1b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -48,11 +48,17 @@ dependencies = [
  "memchr",
 ]
 
+[[package]]
+name = "anybuf"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecb50559f19eb92f65279f9de03e4625ed0572e7564ef3de5253e13928c55266"
+
 [[package]]
 name = "anyhow"
-version = "1.0.89"
+version = "1.0.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04"
 
 [[package]]
 name = "arrayvec"
@@ -192,7 +198,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -209,7 +215,7 @@ checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -237,7 +243,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -412,6 +418,12 @@ version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445"
 
+[[package]]
+name = "bech32"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d"
+
 [[package]]
 name = "bincode"
 version = "1.3.3"
@@ -560,7 +572,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
  "syn_derive",
 ]
 
@@ -850,9 +862,9 @@ dependencies = [
 
 [[package]]
 name = "cosmwasm-crypto"
-version = "1.5.7"
+version = "1.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f862b355f7e47711e0acfe6af92cb3fd8fd5936b66a9eaa338b51edabd1e77d"
+checksum = "d656dc081e2fcfe70e35e2b82a67c95019f4b68713d65dfafa884a756ba71ebf"
 dependencies = [
  "digest 0.10.7",
  "ed25519-zebra",
@@ -863,18 +875,18 @@ dependencies = [
 
 [[package]]
 name = "cosmwasm-derive"
-version = "1.5.7"
+version = "1.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd85de6467cd1073688c86b39833679ae6db18cf4771471edd9809f15f1679f1"
+checksum = "343f5ce9f8f83dc2b3c03cb51ac2d39315ac4defd200d544e5a190726e01d2d5"
 dependencies = [
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "cosmwasm-schema"
-version = "1.5.7"
+version = "1.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b4cd28147a66eba73720b47636a58097a979ad8c8bfdb4ed437ebcbfe362576"
+checksum = "7d538047f2bab028d3242ff974e64985565cd29faa09af7410d4278bb66e3c99"
 dependencies = [
  "cosmwasm-schema-derive",
  "schemars",
@@ -885,9 +897,9 @@ dependencies = [
 
 [[package]]
 name = "cosmwasm-schema-derive"
-version = "1.5.7"
+version = "1.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9acd45c63d41bc9b16bc6dc7f6bd604a8c2ad29ce96c8f3c96d7fc8ef384392e"
+checksum = "a098a0ba9dee2e998e2c7e6a842b517de338d39553802cf70493b2473ac55aa2"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -896,9 +908,9 @@ dependencies = [
 
 [[package]]
 name = "cosmwasm-std"
-version = "1.5.7"
+version = "1.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2685c2182624b2e9e17f7596192de49a3f86b7a0c9a5f6b25c1df5e24592e836"
+checksum = "cf7297ace2435a5d200eb0f402e91d4739e33a4565287f433ceded34ff7ad153"
 dependencies = [
  "base64 0.21.7",
  "bech32 0.9.1",
@@ -1052,7 +1064,7 @@ dependencies = [
  "cw-storage-plus 1.2.0",
  "cw-utils 1.0.3",
  "derivative",
- "itertools",
+ "itertools 0.10.5",
  "k256 0.11.6",
  "prost 0.9.0",
  "schemars",
@@ -1060,6 +1072,26 @@ dependencies = [
  "thiserror",
 ]
 
+[[package]]
+name = "cw-multi-test"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91fc33b1d65c102d72f46548c64dca423c337e528d6747d0c595316aa65f887b"
+dependencies = [
+ "anyhow",
+ "bech32 0.11.0",
+ "cosmwasm-std",
+ "cw-storage-plus 1.2.0",
+ "cw-utils 1.0.3",
+ "derivative",
+ "itertools 0.13.0",
+ "prost 0.12.6",
+ "schemars",
+ "serde",
+ "sha2 0.10.8",
+ "thiserror",
+]
+
 [[package]]
 name = "cw-ownable"
 version = "0.5.1"
@@ -1307,7 +1339,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -1836,7 +1868,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -2247,6 +2279,15 @@ dependencies = [
  "either",
 ]
 
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
 [[package]]
 name = "itoa"
 version = "1.0.11"
@@ -2726,7 +2767,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -2757,7 +2798,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -2881,9 +2922,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.86"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
 dependencies = [
  "unicode-ident",
 ]
@@ -2908,6 +2949,16 @@ dependencies = [
  "prost-derive 0.11.9",
 ]
 
+[[package]]
+name = "prost"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
+dependencies = [
+ "bytes",
+ "prost-derive 0.12.6",
+]
+
 [[package]]
 name = "prost-derive"
 version = "0.9.0"
@@ -2915,7 +2966,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe"
 dependencies = [
  "anyhow",
- "itertools",
+ "itertools 0.10.5",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -2928,12 +2979,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
- "itertools",
+ "itertools 0.10.5",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
+[[package]]
+name = "prost-derive"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
+dependencies = [
+ "anyhow",
+ "itertools 0.10.5",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.98",
+]
+
 [[package]]
 name = "prost-types"
 version = "0.11.9"
@@ -3353,7 +3417,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -3443,9 +3507,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.210"
+version = "1.0.217"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
 dependencies = [
  "serde_derive",
 ]
@@ -3470,13 +3534,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.210"
+version = "1.0.217"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -3487,7 +3551,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -3510,7 +3574,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -3535,7 +3599,7 @@ dependencies = [
  "async-std",
  "cosmwasm-schema",
  "cosmwasm-std",
- "cw-multi-test",
+ "cw-multi-test 1.2.0",
  "cw-storage-plus 1.2.0",
  "cw-utils 1.0.3",
  "cw2 1.1.2",
@@ -3604,7 +3668,7 @@ checksum = "20744734b8049c64747bfb083bbc06a3c7204d1d34881ed3d89698e182aa9f97"
 dependencies = [
  "anyhow",
  "cosmwasm-std",
- "cw-multi-test",
+ "cw-multi-test 0.16.5",
  "schemars",
  "serde",
  "sg-std",
@@ -3716,6 +3780,7 @@ dependencies = [
 name = "sg1"
 version = "3.15.0"
 dependencies = [
+ "anybuf",
  "cosmwasm-std",
  "cw-utils 1.0.3",
  "serde",
@@ -3754,7 +3819,7 @@ version = "3.15.0"
 dependencies = [
  "cosmwasm-schema",
  "cosmwasm-std",
- "cw-multi-test",
+ "cw-multi-test 1.2.0",
  "cw-ownable",
  "cw-utils 1.0.3",
  "cw721-base 0.18.0",
@@ -3823,7 +3888,7 @@ version = "3.15.0"
 dependencies = [
  "cosmwasm-schema",
  "cosmwasm-std",
- "cw-multi-test",
+ "cw-multi-test 1.2.0",
  "cw-storage-plus 1.2.0",
  "cw-utils 1.0.3",
  "cw2 1.1.2",
@@ -4038,9 +4103,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.77"
+version = "2.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4056,7 +4121,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -4195,20 +4260,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d506c7664333e246f564949bee4ed39062aa0f11918e6f5a95f553cdad65c274"
 dependencies = [
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
 name = "test-suite"
 version = "3.15.0"
 dependencies = [
+ "anybuf",
  "anyhow",
  "async-std",
  "base-factory",
  "base-minter",
  "cosmwasm-schema",
  "cosmwasm-std",
- "cw-multi-test",
+ "cw-multi-test 1.2.0",
  "cw-ownable",
  "cw-storage-plus 1.2.0",
  "cw-utils 1.0.3",
@@ -4270,7 +4336,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -4430,7 +4496,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -4577,7 +4643,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -4956,7 +5022,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
  "wasm-bindgen-shared",
 ]
 
@@ -4990,7 +5056,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5227,7 +5293,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
 
 [[package]]
@@ -5247,5 +5313,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.77",
+ "syn 2.0.98",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index 6b590d58..a331e488 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,67 +12,67 @@ members = [
 resolver = "2"
 
 [workspace.package]
-version    = "3.15.0"
+version      = "3.15.0"
 rust-version = "1.73.0"
-edition    = "2021"
-homepage   = "https://stargaze.zone"
-repository = "https://github.com/public-awesome/launchpad"
-license    = "Apache-2.0"
+edition      = "2021"
+homepage     = "https://stargaze.zone"
+repository   = "https://github.com/public-awesome/launchpad"
+license      = "Apache-2.0"
 
 [workspace.dependencies]
-base-factory         = { version = "3.14.0", path = "contracts/factories/base-factory" }
-base-minter          = { version = "3.14.0", path = "contracts/minters/base-minter" }
-cosmwasm-schema      = "1.2.1"
-cosmwasm-std         = "1.2.1"
-cw-controllers       = "1.1.0"
-cw2                  = "1.1.0"
-cw4                  = "1.1.0"
-cw4-group            = "1.1.0"
-cw721                = "0.18.0"
-cw721-base           = "0.18.0"
-cw-multi-test        = "0.16.2"
-cw-storage-plus      = "1.1.0"
-cw-utils             = "1.0.1"
-schemars             = "0.8.11"
-serde                = { version = "1.0.145", default-features = false, features = ["derive"] }
-sg1                  = { version = "3.14.0", path = "packages/sg1" }
-sg2                  = { version = "3.14.0", path = "packages/sg2" }
-sg4                  = { version = "3.14.0", path = "packages/sg4" }
-sg721                = { version = "3.14.0", path = "packages/sg721" }
-sg721-base           = { version = "3.14.0", path = "contracts/collections/sg721-base" }
-sg721-nt             = { version = "3.14.0", path = "contracts/collections/sg721-nt" }
-sg721-updatable      = { version = "3.14.0", path = "contracts/collections/sg721-updatable" }
-sg-controllers       = { version = "3.14.0", path = "packages/controllers" }
-sg-metadata          = { version = "3.14.0", path = "packages/sg-metadata" }
-sg-mint-hooks        = { version = "3.14.0", path = "packages/mint-hooks" }
-sg-multi-test        = { version = "3.1.0" }
-sg-splits            = { version = "3.14.0", path = "contracts/splits" }
-sg-std               = { version = "3.2.0" }
-sg-whitelist         = { version = "3.14.0", path = "contracts/whitelists/whitelist" }
-sg-tiered-whitelist  = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist" }
-thiserror            = "1.0.31"
-url                  = "2.2.2"
-sha2                 = { version = "0.10.2", default-features = false }
+base-factory        = { version = "3.14.0", path = "contracts/factories/base-factory" }
+base-minter         = { version = "3.14.0", path = "contracts/minters/base-minter" }
+cosmwasm-schema     = "1.5.10"
+cosmwasm-std        = "1.5.10"
+cw-controllers      = "1.1.0"
+cw2                 = "1.1.0"
+cw4                 = "1.1.0"
+cw4-group           = "1.1.0"
+cw721               = "0.18.0"
+cw721-base          = "0.18.0"
+cw-multi-test       = "1.2.0"
+cw-storage-plus     = "1.1.0"
+cw-utils            = "1.0.1"
+schemars            = "0.8.11"
+serde               = { version = "1.0.145", default-features = false, features = ["derive"] }
+sg1                 = { version = "3.14.0", path = "packages/sg1" }
+sg2                 = { version = "3.14.0", path = "packages/sg2" }
+sg4                 = { version = "3.14.0", path = "packages/sg4" }
+sg721               = { version = "3.14.0", path = "packages/sg721" }
+sg721-base          = { version = "3.14.0", path = "contracts/collections/sg721-base" }
+sg721-nt            = { version = "3.14.0", path = "contracts/collections/sg721-nt" }
+sg721-updatable     = { version = "3.14.0", path = "contracts/collections/sg721-updatable" }
+sg-controllers      = { version = "3.14.0", path = "packages/controllers" }
+sg-metadata         = { version = "3.14.0", path = "packages/sg-metadata" }
+sg-mint-hooks       = { version = "3.14.0", path = "packages/mint-hooks" }
+sg-multi-test       = { version = "3.1.0" }
+sg-splits           = { version = "3.14.0", path = "contracts/splits" }
+sg-std              = { version = "3.2.0" }
+sg-whitelist        = { version = "3.14.0", path = "contracts/whitelists/whitelist" }
+sg-tiered-whitelist = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist" }
+thiserror           = "1.0.31"
+url                 = "2.2.2"
+sha2                = { version = "0.10.2", default-features = false }
 
 whitelist-mtree             = { version = "3.14.0", path = "contracts/whitelists/whitelist-merkletree" }
-tiered-whitelist-merkletree     = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist-merkletree" }
+tiered-whitelist-merkletree = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist-merkletree" }
 vending-minter-merkle-wl    = { version = "3.14.0", path = "contracts/minters/vending-minter-merkle-wl" }
-vending-factory      = { version = "3.14.0", path = "contracts/factories/vending-factory" }
-vending-minter       = { version = "3.14.0", path = "contracts/minters/vending-minter" }
-open-edition-factory = { version = "3.14.0", path = "contracts/factories/open-edition-factory" }
-open-edition-minter  = { version = "3.14.0", path = "contracts/minters/open-edition-minter" }
-token-merge-factory  = { version = "3.14.0", path = "contracts/factories/token-merge-factory" }
-token-merge-minter   = { version = "3.14.0", path = "contracts/minters/token-merge-minter" }
-whitelist-immutable  = { version = "3.14.0", path = "contracts/whitelists/whitelist-immutable" }
-sg-whitelist-flex    = { version = "3.14.0", path = "contracts/whitelists/whitelist-flex" }
-sg-tiered-whitelist-flex = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist-flex" }
-ethereum-verify      = { version = "3.14.0", path = "packages/ethereum-verify" }
-sg-eth-airdrop       = { version = "3.14.0", path = "contracts/sg-eth-airdrop" }
-test-suite           = { version = "3.14.0", path = "test-suite" }
-
-semver               = "1"
-cw-ownable           = "0.5.1"
-
+vending-factory             = { version = "3.14.0", path = "contracts/factories/vending-factory" }
+vending-minter              = { version = "3.14.0", path = "contracts/minters/vending-minter" }
+open-edition-factory        = { version = "3.14.0", path = "contracts/factories/open-edition-factory" }
+open-edition-minter         = { version = "3.14.0", path = "contracts/minters/open-edition-minter" }
+token-merge-factory         = { version = "3.14.0", path = "contracts/factories/token-merge-factory" }
+token-merge-minter          = { version = "3.14.0", path = "contracts/minters/token-merge-minter" }
+whitelist-immutable         = { version = "3.14.0", path = "contracts/whitelists/whitelist-immutable" }
+sg-whitelist-flex           = { version = "3.14.0", path = "contracts/whitelists/whitelist-flex" }
+sg-tiered-whitelist-flex    = { version = "3.14.0", path = "contracts/whitelists/tiered-whitelist-flex" }
+ethereum-verify             = { version = "3.14.0", path = "packages/ethereum-verify" }
+sg-eth-airdrop              = { version = "3.14.0", path = "contracts/sg-eth-airdrop" }
+test-suite                  = { version = "3.14.0", path = "test-suite" }
+
+semver     = "1"
+cw-ownable = "0.5.1"
+anybuf     = "0.5.2"
 [profile.release.package.sg721]
 codegen-units = 1
 incremental   = false
diff --git a/contracts/collections/sg721-base/src/contract.rs b/contracts/collections/sg721-base/src/contract.rs
index c91117bd..9909d33b 100644
--- a/contracts/collections/sg721-base/src/contract.rs
+++ b/contracts/collections/sg721-base/src/contract.rs
@@ -3,7 +3,7 @@ use url::Url;
 
 use cosmwasm_std::{
     to_json_binary, Addr, Binary, ContractInfoResponse, Decimal, Deps, DepsMut, Empty, Env, Event,
-    MessageInfo, StdError, StdResult, Storage, Timestamp, WasmQuery,
+    MessageInfo, Response, StdError, StdResult, Storage, Timestamp, WasmQuery,
 };
 
 use cw721::{ContractInfoResponse as CW721ContractInfoResponse, Cw721Execute};
@@ -14,7 +14,6 @@ use sg721::{
     CollectionInfo, ExecuteMsg, InstantiateMsg, RoyaltyInfo, RoyaltyInfoResponse,
     UpdateCollectionInfoMsg,
 };
-use sg_std::Response;
 
 use crate::msg::{CollectionInfoResponse, NftParams, QueryMsg};
 use crate::{ContractError, Sg721Contract};
diff --git a/contracts/collections/sg721-base/src/lib.rs b/contracts/collections/sg721-base/src/lib.rs
index bc8f2628..56e63d70 100644
--- a/contracts/collections/sg721-base/src/lib.rs
+++ b/contracts/collections/sg721-base/src/lib.rs
@@ -18,11 +18,10 @@ pub mod entry {
 
     #[cfg(not(feature = "library"))]
     use cosmwasm_std::entry_point;
-    use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
+    use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
     use cw2::set_contract_version;
     use cw721_base::Extension;
     use sg721::InstantiateMsg;
-    use sg_std::Response;
 
     // version info for migration info
     pub const CONTRACT_NAME: &str = "crates.io:sg721-base";
diff --git a/contracts/collections/sg721-base/src/msg.rs b/contracts/collections/sg721-base/src/msg.rs
index 38aca303..6231d4c0 100644
--- a/contracts/collections/sg721-base/src/msg.rs
+++ b/contracts/collections/sg721-base/src/msg.rs
@@ -1,7 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_schema::QueryResponses;
 use cosmwasm_std::{
-    coin, Addr, BankMsg, Binary, Empty, Event, StdError, StdResult, Timestamp, Uint128,
+    coin, Addr, BankMsg, Binary, Empty, Event, Response, StdError, StdResult, SubMsg, Timestamp,
+    Uint128,
 };
 use cw721::{
     AllNftInfoResponse, ApprovalResponse, ApprovalsResponse, ContractInfoResponse, NftInfoResponse,
@@ -13,7 +14,7 @@ use cw_ownable::cw_ownable_execute;
 use cw_ownable::cw_ownable_query;
 use cw_utils::Expiration;
 use sg721::RoyaltyInfoResponse;
-use sg_std::{Response, SubMsg, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 #[cw_ownable_execute]
 #[cw_serde]
diff --git a/contracts/collections/sg721-base/src/state.rs b/contracts/collections/sg721-base/src/state.rs
index 49d87fa2..658c3637 100644
--- a/contracts/collections/sg721-base/src/state.rs
+++ b/contracts/collections/sg721-base/src/state.rs
@@ -2,10 +2,9 @@ use cosmwasm_std::{Empty, Timestamp};
 use cw_storage_plus::Item;
 use serde::{de::DeserializeOwned, Serialize};
 use sg721::{CollectionInfo, RoyaltyInfo};
-use sg_std::StargazeMsgWrapper;
 use std::ops::Deref;
 
-type Parent<'a, T> = cw721_base::Cw721Contract<'a, T, StargazeMsgWrapper, Empty, Empty>;
+type Parent<'a, T> = cw721_base::Cw721Contract<'a, T, Empty, Empty, Empty>;
 pub struct Sg721Contract<'a, T>
 where
     T: Serialize + DeserializeOwned + Clone,
diff --git a/contracts/collections/sg721-base/src/upgrades/v3_0_0.rs b/contracts/collections/sg721-base/src/upgrades/v3_0_0.rs
index 1c3eb7c9..f84165d5 100644
--- a/contracts/collections/sg721-base/src/upgrades/v3_0_0.rs
+++ b/contracts/collections/sg721-base/src/upgrades/v3_0_0.rs
@@ -1,8 +1,7 @@
 use crate::ContractError;
 
-use cosmwasm_std::{DepsMut, Empty, Env, Event};
+use cosmwasm_std::{DepsMut, Empty, Env, Event, Response};
 use cw721_base::Extension;
-use sg_std::Response;
 
 pub fn upgrade(deps: DepsMut, _env: &Env, response: Response) -> Result<Response, ContractError> {
     let cw17_res = cw721_base::upgrades::v0_17::migrate::<Extension, Empty, Empty, Empty>(deps)
diff --git a/contracts/collections/sg721-base/src/upgrades/v3_1_0.rs b/contracts/collections/sg721-base/src/upgrades/v3_1_0.rs
index 7b1db034..563ee3f2 100644
--- a/contracts/collections/sg721-base/src/upgrades/v3_1_0.rs
+++ b/contracts/collections/sg721-base/src/upgrades/v3_1_0.rs
@@ -1,8 +1,7 @@
 use crate::{ContractError, Sg721Contract};
 
-use cosmwasm_std::{DepsMut, Env, Event};
+use cosmwasm_std::{DepsMut, Env, Event, Response};
 use cw721_base::Extension;
-use sg_std::Response;
 
 pub fn upgrade(deps: DepsMut, env: &Env, response: Response) -> Result<Response, ContractError> {
     let contract = Sg721Contract::<Extension>::default();
diff --git a/contracts/collections/sg721-metadata-onchain/src/lib.rs b/contracts/collections/sg721-metadata-onchain/src/lib.rs
index 291f9a8e..5c6ff6ce 100644
--- a/contracts/collections/sg721-metadata-onchain/src/lib.rs
+++ b/contracts/collections/sg721-metadata-onchain/src/lib.rs
@@ -21,11 +21,10 @@ pub mod entry {
     use super::*;
 
     use cosmwasm_std::{
-        entry_point, Binary, Deps, DepsMut, Env, Event, MessageInfo, StdError, StdResult,
+        entry_point, Binary, Deps, DepsMut, Env, Event, MessageInfo, Response, StdError, StdResult,
     };
     use semver::Version;
     use sg721_base::{msg::QueryMsg, ContractError};
-    use sg_std::Response;
 
     #[entry_point]
     pub fn instantiate(
diff --git a/contracts/collections/sg721-nt/src/lib.rs b/contracts/collections/sg721-nt/src/lib.rs
index a97887fc..38228800 100644
--- a/contracts/collections/sg721-nt/src/lib.rs
+++ b/contracts/collections/sg721-nt/src/lib.rs
@@ -21,10 +21,11 @@ pub mod entry {
     use super::*;
 
     use crate::msg::ExecuteMsg;
-    use cosmwasm_std::{Binary, Deps, DepsMut, Empty, Env, MessageInfo, StdError, StdResult};
+    use cosmwasm_std::{
+        Binary, Deps, DepsMut, Empty, Env, MessageInfo, Response, StdError, StdResult,
+    };
     use cw721::Cw721Execute;
     use sg721_base::ContractError;
-    use sg_std::Response;
 
     #[entry_point]
     pub fn instantiate(
diff --git a/contracts/collections/sg721-updatable/Cargo.toml b/contracts/collections/sg721-updatable/Cargo.toml
index 65f6af21..99052c5d 100644
--- a/contracts/collections/sg721-updatable/Cargo.toml
+++ b/contracts/collections/sg721-updatable/Cargo.toml
@@ -1,9 +1,6 @@
 [package]
 name = "sg721-updatable"
-authors = [
-    "John Y <j@noreply.publicawesome.com>",
-    "Shane Vitarana <s@noreply.publicawesome.com>",
-]
+authors = ["John Y <j@noreply.publicawesome.com>", "Shane Vitarana <s@noreply.publicawesome.com>"]
 exclude = [
     # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication.
     "contract.wasm",
diff --git a/contracts/collections/sg721-updatable/src/contract.rs b/contracts/collections/sg721-updatable/src/contract.rs
index 9e5bd9a1..4bc4e4cb 100644
--- a/contracts/collections/sg721-updatable/src/contract.rs
+++ b/contracts/collections/sg721-updatable/src/contract.rs
@@ -5,7 +5,7 @@ use cosmwasm_std::{Empty, StdError, Uint128};
 use cosmwasm_std::{Deps, StdResult};
 
 #[cfg(not(feature = "library"))]
-use cosmwasm_std::{DepsMut, Env, Event, MessageInfo};
+use cosmwasm_std::{DepsMut, Env, Event, MessageInfo, Response};
 use cw2::set_contract_version;
 use semver::Version;
 use sg721::InstantiateMsg;
@@ -20,7 +20,6 @@ use sg1::checked_fair_burn;
 use sg721_base::ContractError::Unauthorized;
 use sg721_base::Sg721Contract;
 pub type Sg721UpdatableContract<'a> = Sg721Contract<'a, Extension>;
-use sg_std::Response;
 
 const CONTRACT_NAME: &str = "crates.io:sg721-updatable";
 const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION");
diff --git a/contracts/collections/sg721-updatable/src/lib.rs b/contracts/collections/sg721-updatable/src/lib.rs
index d87cdb86..7d2f9c21 100644
--- a/contracts/collections/sg721-updatable/src/lib.rs
+++ b/contracts/collections/sg721-updatable/src/lib.rs
@@ -19,11 +19,9 @@ pub mod entry {
         msg::ExecuteMsg,
     };
     use cosmwasm_std::{entry_point, to_json_binary, Empty};
-    use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
+    use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
     use cw721_base::Extension;
 
-    use sg_std::Response;
-
     #[entry_point]
     pub fn instantiate(
         deps: DepsMut,
diff --git a/contracts/factories/base-factory/src/contract.rs b/contracts/factories/base-factory/src/contract.rs
index 9dcacbb4..ea896769 100644
--- a/contracts/factories/base-factory/src/contract.rs
+++ b/contracts/factories/base-factory/src/contract.rs
@@ -1,7 +1,7 @@
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdError,
+    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError,
     StdResult, WasmMsg,
 };
 use cw2::set_contract_version;
@@ -11,7 +11,7 @@ use sg1::{checked_fair_burn, transfer_funds_to_launchpad_dao};
 use sg2::msg::UpdateMinterParamsMsg;
 use sg2::query::{AllowedCollectionCodeIdResponse, AllowedCollectionCodeIdsResponse, Sg2QueryMsg};
 use sg2::MinterParams;
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 use crate::error::ContractError;
 use crate::msg::{
diff --git a/contracts/factories/base-factory/src/helpers.rs b/contracts/factories/base-factory/src/helpers.rs
index 476e02d9..84783b3b 100644
--- a/contracts/factories/base-factory/src/helpers.rs
+++ b/contracts/factories/base-factory/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/factories/open-edition-factory/src/contract.rs b/contracts/factories/open-edition-factory/src/contract.rs
index 649bbf19..1ab74002 100644
--- a/contracts/factories/open-edition-factory/src/contract.rs
+++ b/contracts/factories/open-edition-factory/src/contract.rs
@@ -1,11 +1,12 @@
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdError, StdResult, WasmMsg,
+    ensure, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError, StdResult,
+    WasmMsg,
 };
 use cw2::set_contract_version;
 use semver::Version;
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 use base_factory::contract::{
     must_be_allowed_collection, must_not_be_frozen, must_pay_exact_amount, update_params,
diff --git a/contracts/factories/open-edition-factory/src/helpers.rs b/contracts/factories/open-edition-factory/src/helpers.rs
index 476e02d9..84783b3b 100644
--- a/contracts/factories/open-edition-factory/src/helpers.rs
+++ b/contracts/factories/open-edition-factory/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/factories/token-merge-factory/src/contract.rs b/contracts/factories/token-merge-factory/src/contract.rs
index 1cdc1131..bf2f200b 100644
--- a/contracts/factories/token-merge-factory/src/contract.rs
+++ b/contracts/factories/token-merge-factory/src/contract.rs
@@ -2,14 +2,14 @@ use base_factory::ContractError as BaseContractError;
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdError,
+    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError,
     StdResult, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw_utils::must_pay;
 use semver::Version;
 use sg1::{checked_fair_burn, transfer_funds_to_launchpad_dao};
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 use crate::error::ContractError;
 use crate::msg::{
diff --git a/contracts/factories/token-merge-factory/src/helpers.rs b/contracts/factories/token-merge-factory/src/helpers.rs
index 476e02d9..84783b3b 100644
--- a/contracts/factories/token-merge-factory/src/helpers.rs
+++ b/contracts/factories/token-merge-factory/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/factories/vending-factory/src/contract.rs b/contracts/factories/vending-factory/src/contract.rs
index 99cba082..5214288c 100644
--- a/contracts/factories/vending-factory/src/contract.rs
+++ b/contracts/factories/vending-factory/src/contract.rs
@@ -3,7 +3,7 @@ use base_factory::ContractError as BaseContractError;
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdError,
+    ensure, ensure_eq, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdError,
     StdResult, WasmMsg,
 };
 use cw2::set_contract_version;
@@ -11,7 +11,7 @@ use cw_utils::must_pay;
 use semver::Version;
 use sg1::{checked_fair_burn, transfer_funds_to_launchpad_dao};
 use sg2::query::{AllowedCollectionCodeIdResponse, AllowedCollectionCodeIdsResponse, Sg2QueryMsg};
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 use crate::error::ContractError;
 use crate::msg::{
diff --git a/contracts/factories/vending-factory/src/helpers.rs b/contracts/factories/vending-factory/src/helpers.rs
index 476e02d9..84783b3b 100644
--- a/contracts/factories/vending-factory/src/helpers.rs
+++ b/contracts/factories/vending-factory/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/minters/base-minter/src/contract.rs b/contracts/minters/base-minter/src/contract.rs
index 67149d80..195761ee 100644
--- a/contracts/minters/base-minter/src/contract.rs
+++ b/contracts/minters/base-minter/src/contract.rs
@@ -7,7 +7,7 @@ use base_factory::state::Extension;
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     to_json_binary, Addr, Binary, CosmosMsg, Decimal, Deps, DepsMut, Empty, Env, MessageInfo,
-    Reply, StdResult, Timestamp, WasmMsg,
+    Reply, Response, StdResult, SubMsg, Timestamp, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw_utils::{must_pay, nonpayable, parse_reply_instantiate_data};
@@ -16,7 +16,7 @@ use sg2::query::Sg2QueryMsg;
 use sg4::{QueryMsg, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
 use sg721_base::msg::{CollectionInfoResponse, QueryMsg as Sg721QueryMsg};
-use sg_std::{Response, SubMsg, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 use url::Url;
 
 const CONTRACT_NAME: &str = "crates.io:sg-base-minter";
diff --git a/contracts/minters/base-minter/src/helpers.rs b/contracts/minters/base-minter/src/helpers.rs
index 5387b1f5..5470ae8f 100644
--- a/contracts/minters/base-minter/src/helpers.rs
+++ b/contracts/minters/base-minter/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/minters/open-edition-minter-merkle-wl/src/contract.rs b/contracts/minters/open-edition-minter-merkle-wl/src/contract.rs
index 5ffcb093..eed5d619 100644
--- a/contracts/minters/open-edition-minter-merkle-wl/src/contract.rs
+++ b/contracts/minters/open-edition-minter-merkle-wl/src/contract.rs
@@ -14,7 +14,8 @@ use crate::state::{
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, Decimal, Deps, DepsMut, Empty, Env,
-    Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, WasmMsg,
+    Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg, Timestamp,
+    WasmMsg,
 };
 use cw2::set_contract_version;
 use cw_utils::{may_pay, maybe_addr, nonpayable, parse_reply_instantiate_data};
@@ -26,14 +27,11 @@ use sg1::distribute_mint_fees;
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::StargazeMsgWrapper;
 use tiered_whitelist_merkletree::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use url::Url;
 use whitelist_mtree::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
 };
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-open-edition-minter";
diff --git a/contracts/minters/open-edition-minter-merkle-wl/src/helpers.rs b/contracts/minters/open-edition-minter-merkle-wl/src/helpers.rs
index b3bf68d8..f8773d74 100644
--- a/contracts/minters/open-edition-minter-merkle-wl/src/helpers.rs
+++ b/contracts/minters/open-edition-minter-merkle-wl/src/helpers.rs
@@ -1,12 +1,11 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Empty, Querier, QuerierWrapper,
-    StdError, StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Empty, Querier,
+    QuerierWrapper, StdError, StdResult, WasmMsg, WasmQuery,
 };
 use cw721_base::Extension;
 use sg721::ExecuteMsg as Sg721ExecuteMsg;
 use sg_metadata::Metadata;
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/open-edition-minter-wl-flex/src/contract.rs b/contracts/minters/open-edition-minter-wl-flex/src/contract.rs
index 8bcbca27..faa2c69e 100644
--- a/contracts/minters/open-edition-minter-wl-flex/src/contract.rs
+++ b/contracts/minters/open-edition-minter-wl-flex/src/contract.rs
@@ -14,7 +14,8 @@ use crate::state::{
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, Decimal, Deps, DepsMut, Empty, Env,
-    Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, WasmMsg,
+    Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg, Timestamp,
+    WasmMsg,
 };
 use cw2::set_contract_version;
 use cw_utils::{may_pay, maybe_addr, nonpayable, parse_reply_instantiate_data};
@@ -26,7 +27,6 @@ use sg1::distribute_mint_fees;
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::StargazeMsgWrapper;
 use sg_tiered_whitelist_flex::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist_flex::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, Member,
@@ -34,9 +34,6 @@ use sg_whitelist_flex::msg::{
 };
 use url::Url;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-open-edition-minter-flex";
 const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION");
diff --git a/contracts/minters/open-edition-minter-wl-flex/src/helpers.rs b/contracts/minters/open-edition-minter-wl-flex/src/helpers.rs
index b3bf68d8..f8773d74 100644
--- a/contracts/minters/open-edition-minter-wl-flex/src/helpers.rs
+++ b/contracts/minters/open-edition-minter-wl-flex/src/helpers.rs
@@ -1,12 +1,11 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Empty, Querier, QuerierWrapper,
-    StdError, StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Empty, Querier,
+    QuerierWrapper, StdError, StdResult, WasmMsg, WasmQuery,
 };
 use cw721_base::Extension;
 use sg721::ExecuteMsg as Sg721ExecuteMsg;
 use sg_metadata::Metadata;
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/open-edition-minter/src/contract.rs b/contracts/minters/open-edition-minter/src/contract.rs
index 4117a4da..dfd09069 100644
--- a/contracts/minters/open-edition-minter/src/contract.rs
+++ b/contracts/minters/open-edition-minter/src/contract.rs
@@ -14,7 +14,8 @@ use crate::state::{
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, Decimal, Deps, DepsMut, Empty, Env,
-    Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, WasmMsg,
+    Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg, Timestamp,
+    WasmMsg,
 };
 use cw2::set_contract_version;
 use cw_utils::{may_pay, maybe_addr, nonpayable, parse_reply_instantiate_data};
@@ -26,16 +27,12 @@ use sg1::distribute_mint_fees;
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::StargazeMsgWrapper;
 use sg_tiered_whitelist::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
 };
 use url::Url;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-open-edition-minter";
 const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION");
diff --git a/contracts/minters/open-edition-minter/src/helpers.rs b/contracts/minters/open-edition-minter/src/helpers.rs
index b3bf68d8..f8773d74 100644
--- a/contracts/minters/open-edition-minter/src/helpers.rs
+++ b/contracts/minters/open-edition-minter/src/helpers.rs
@@ -1,12 +1,11 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Empty, Querier, QuerierWrapper,
-    StdError, StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Empty, Querier,
+    QuerierWrapper, StdError, StdResult, WasmMsg, WasmQuery,
 };
 use cw721_base::Extension;
 use sg721::ExecuteMsg as Sg721ExecuteMsg;
 use sg_metadata::Metadata;
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/token-merge-minter/src/contract.rs b/contracts/minters/token-merge-minter/src/contract.rs
index 3e3d8583..41a5d16a 100644
--- a/contracts/minters/token-merge-minter/src/contract.rs
+++ b/contracts/minters/token-merge-minter/src/contract.rs
@@ -12,8 +12,8 @@ use crate::validation::{check_dynamic_per_address_limit, get_three_percent_of_to
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, from_json, to_json_binary, Addr, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721::Cw721ReceiveMsg;
@@ -25,15 +25,13 @@ use semver::Version;
 use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg4::{Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sha2::{Digest, Sha256};
 use shuffle::{fy::FisherYates, shuffler::Shuffler};
 use std::convert::TryInto;
 use token_merge_factory::msg::QueryMsg as FactoryQueryMsg;
 use token_merge_factory::msg::{MintToken, ParamsResponse, TokenMergeMinterCreateMsg};
 use url::Url;
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
 
 pub struct TokenPositionMapping {
     pub position: u32,
@@ -462,7 +460,7 @@ fn _execute_mint(
     is_admin: bool,
     recipient: Option<Addr>,
     token_id: Option<u32>,
-    burn_message: Option<CosmosMsg<StargazeMsgWrapper>>,
+    burn_message: Option<CosmosMsg>,
 ) -> Result<Response, ContractError> {
     let mut network_fee = Uint128::zero();
     let mintable_num_tokens = MINTABLE_NUM_TOKENS.load(deps.storage)?;
diff --git a/contracts/minters/token-merge-minter/src/helpers.rs b/contracts/minters/token-merge-minter/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/token-merge-minter/src/helpers.rs
+++ b/contracts/minters/token-merge-minter/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter-featured/src/contract.rs b/contracts/minters/vending-minter-featured/src/contract.rs
index 050dea81..1303246f 100644
--- a/contracts/minters/vending-minter-featured/src/contract.rs
+++ b/contracts/minters/vending-minter-featured/src/contract.rs
@@ -14,8 +14,8 @@ use crate::validation::{check_dynamic_per_address_limit, get_three_percent_of_to
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -27,7 +27,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_tiered_whitelist::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
@@ -39,9 +39,6 @@ use url::Url;
 use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter-featured/src/helpers.rs b/contracts/minters/vending-minter-featured/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter-featured/src/helpers.rs
+++ b/contracts/minters/vending-minter-featured/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter-merkle-wl-featured/src/contract.rs b/contracts/minters/vending-minter-merkle-wl-featured/src/contract.rs
index ea594631..dc89a6f4 100644
--- a/contracts/minters/vending-minter-merkle-wl-featured/src/contract.rs
+++ b/contracts/minters/vending-minter-merkle-wl-featured/src/contract.rs
@@ -14,8 +14,8 @@ use crate::validation::{check_dynamic_per_address_limit, get_three_percent_of_to
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -27,7 +27,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_whitelist::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
 };
@@ -40,9 +40,6 @@ use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 use whitelist_mtree::msg::QueryMsg as WhitelistMtreeQueryMsg;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter-merkle-wl-featured/src/helpers.rs b/contracts/minters/vending-minter-merkle-wl-featured/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter-merkle-wl-featured/src/helpers.rs
+++ b/contracts/minters/vending-minter-merkle-wl-featured/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter-merkle-wl/src/contract.rs b/contracts/minters/vending-minter-merkle-wl/src/contract.rs
index 0f497cc3..7d1dbac2 100644
--- a/contracts/minters/vending-minter-merkle-wl/src/contract.rs
+++ b/contracts/minters/vending-minter-merkle-wl/src/contract.rs
@@ -14,8 +14,8 @@ use crate::validation::{check_dynamic_per_address_limit, get_three_percent_of_to
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -27,7 +27,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_whitelist::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
 };
@@ -40,9 +40,6 @@ use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 use whitelist_mtree::msg::QueryMsg as WhitelistMtreeQueryMsg;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter-merkle-wl/src/helpers.rs b/contracts/minters/vending-minter-merkle-wl/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter-merkle-wl/src/helpers.rs
+++ b/contracts/minters/vending-minter-merkle-wl/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter-wl-flex-featured/src/contract.rs b/contracts/minters/vending-minter-wl-flex-featured/src/contract.rs
index e7873ad6..926e28a3 100644
--- a/contracts/minters/vending-minter-wl-flex-featured/src/contract.rs
+++ b/contracts/minters/vending-minter-wl-flex-featured/src/contract.rs
@@ -13,8 +13,8 @@ use crate::state::{
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -26,7 +26,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_tiered_whitelist_flex::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist_flex::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, Member,
@@ -40,9 +40,6 @@ use url::Url;
 use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter-wl-flex-featured/src/helpers.rs b/contracts/minters/vending-minter-wl-flex-featured/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter-wl-flex-featured/src/helpers.rs
+++ b/contracts/minters/vending-minter-wl-flex-featured/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter-wl-flex/src/contract.rs b/contracts/minters/vending-minter-wl-flex/src/contract.rs
index 546c23cb..3824855a 100644
--- a/contracts/minters/vending-minter-wl-flex/src/contract.rs
+++ b/contracts/minters/vending-minter-wl-flex/src/contract.rs
@@ -13,8 +13,8 @@ use crate::state::{
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -26,7 +26,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_tiered_whitelist_flex::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist_flex::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, Member,
@@ -40,9 +40,6 @@ use url::Url;
 use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter-wl-flex/src/helpers.rs b/contracts/minters/vending-minter-wl-flex/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter-wl-flex/src/helpers.rs
+++ b/contracts/minters/vending-minter-wl-flex/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/minters/vending-minter/src/contract.rs b/contracts/minters/vending-minter/src/contract.rs
index 3efdb083..dda4302a 100644
--- a/contracts/minters/vending-minter/src/contract.rs
+++ b/contracts/minters/vending-minter/src/contract.rs
@@ -14,8 +14,8 @@ use crate::validation::{check_dynamic_per_address_limit, get_three_percent_of_to
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
     coin, ensure, to_json_binary, Addr, BankMsg, Binary, Coin, CosmosMsg, Decimal, Deps, DepsMut,
-    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, StdError, StdResult, Timestamp, Uint128,
-    WasmMsg,
+    Empty, Env, Event, MessageInfo, Order, Reply, ReplyOn, Response, StdError, StdResult, SubMsg,
+    Timestamp, Uint128, WasmMsg,
 };
 use cw2::set_contract_version;
 use cw721_base::Extension;
@@ -27,7 +27,7 @@ use sg1::{checked_fair_burn, distribute_mint_fees};
 use sg2::query::Sg2QueryMsg;
 use sg4::{MinterConfig, Status, StatusResponse, SudoMsg};
 use sg721::{ExecuteMsg as Sg721ExecuteMsg, InstantiateMsg as Sg721InstantiateMsg};
-use sg_std::{StargazeMsgWrapper, GENESIS_MINT_START_TIME};
+use sg_std::GENESIS_MINT_START_TIME;
 use sg_tiered_whitelist::msg::{QueryMsg as TieredWhitelistQueryMsg, StageResponse};
 use sg_whitelist::msg::{
     ConfigResponse as WhitelistConfigResponse, HasMemberResponse, QueryMsg as WhitelistQueryMsg,
@@ -39,9 +39,6 @@ use url::Url;
 use vending_factory::msg::{ParamsResponse, VendingMinterCreateMsg};
 use vending_factory::state::VendingMinterParams;
 
-pub type Response = cosmwasm_std::Response<StargazeMsgWrapper>;
-pub type SubMsg = cosmwasm_std::SubMsg<StargazeMsgWrapper>;
-
 pub struct TokenPositionMapping {
     pub position: u32,
     pub token_id: u32,
diff --git a/contracts/minters/vending-minter/src/helpers.rs b/contracts/minters/vending-minter/src/helpers.rs
index 78c7ea19..47a9accb 100644
--- a/contracts/minters/vending-minter/src/helpers.rs
+++ b/contracts/minters/vending-minter/src/helpers.rs
@@ -1,9 +1,8 @@
 use cosmwasm_schema::cw_serde;
 use cosmwasm_std::{
-    to_json_binary, Addr, Coin, ContractInfoResponse, CustomQuery, Querier, QuerierWrapper,
-    StdResult, WasmMsg, WasmQuery,
+    to_json_binary, Addr, Coin, ContractInfoResponse, CosmosMsg, CustomQuery, Querier,
+    QuerierWrapper, StdResult, WasmMsg, WasmQuery,
 };
-use sg_std::CosmosMsg;
 
 use crate::msg::{ConfigResponse, ExecuteMsg, QueryMsg};
 
diff --git a/contracts/sg-eth-airdrop/src/claim_airdrop.rs b/contracts/sg-eth-airdrop/src/claim_airdrop.rs
index 7ac8d199..b2e91ddf 100644
--- a/contracts/sg-eth-airdrop/src/claim_airdrop.rs
+++ b/contracts/sg-eth-airdrop/src/claim_airdrop.rs
@@ -2,11 +2,10 @@ use crate::query::query_collection_whitelist;
 use crate::state::ADDRS_TO_MINT_COUNT;
 use crate::{state::CONFIG, ContractError};
 use build_messages::claim_and_whitelist_add;
-use cosmwasm_std::DepsMut;
-use cosmwasm_std::{coins, Addr, BankMsg, StdResult};
-use cosmwasm_std::{Env, MessageInfo};
-use sg_std::Response;
-use sg_std::{CosmosMsg, SubMsg};
+use cosmwasm_std::{
+    coins, Addr, BankMsg, CosmosMsg, DepsMut, Env, MessageInfo, Response, StdResult, SubMsg,
+};
+
 use sg_whitelist::msg::ExecuteMsg as CollectionWhitelistExecuteMsg;
 use sg_whitelist::{helpers::interface::CollectionWhitelistContract, msg::AddMembersMsg};
 use validation::validate_claim;
diff --git a/contracts/sg-eth-airdrop/src/contract.rs b/contracts/sg-eth-airdrop/src/contract.rs
index dee5d9d4..847d8686 100644
--- a/contracts/sg-eth-airdrop/src/contract.rs
+++ b/contracts/sg-eth-airdrop/src/contract.rs
@@ -5,10 +5,9 @@ use crate::msg::{ExecuteMsg, InstantiateMsg};
 use crate::state::CONFIG;
 
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{DepsMut, Env, MessageInfo};
+use cosmwasm_std::{DepsMut, Env, MessageInfo, Response};
 use cw2::set_contract_version;
 use sg1::fair_burn;
-use sg_std::Response;
 
 use build_message::{state_config, whitelist_instantiate};
 use validation::validate_instantiation_params;
@@ -27,7 +26,7 @@ pub fn instantiate(
     set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?;
     validate_instantiation_params(info.clone(), msg.clone())?;
     let mut res = Response::new();
-    fair_burn(INSTANTIATION_FEE, None, &mut res);
+    fair_burn(info.sender.to_string(), INSTANTIATION_FEE, None, &mut res);
     let cfg = state_config(deps.as_ref(), info.clone(), msg.clone())?;
     CONFIG.save(deps.storage, &cfg)?;
     Ok(res
@@ -56,8 +55,8 @@ pub fn execute(
 mod build_message {
     use super::*;
     use crate::state::Config;
-    use cosmwasm_std::{to_json_binary, Deps, WasmMsg};
-    use sg_std::{StargazeMsgWrapper, SubMsg};
+    use cosmwasm_std::{to_json_binary, Deps, SubMsg, WasmMsg};
+
     use validation::validate_airdrop_amount;
     use whitelist_immutable::msg::InstantiateMsg as WGInstantiateMsg;
 
@@ -67,7 +66,7 @@ mod build_message {
     pub fn whitelist_instantiate(
         env: Env,
         msg: InstantiateMsg,
-    ) -> Result<cosmwasm_std::SubMsg<StargazeMsgWrapper>, ContractError> {
+    ) -> Result<cosmwasm_std::SubMsg, ContractError> {
         let whitelist_instantiate_msg = WGInstantiateMsg {
             addresses: msg.addresses,
             mint_discount_bps: Some(0),
diff --git a/contracts/sg-eth-airdrop/src/reply.rs b/contracts/sg-eth-airdrop/src/reply.rs
index 90f98d77..30d7f5d6 100644
--- a/contracts/sg-eth-airdrop/src/reply.rs
+++ b/contracts/sg-eth-airdrop/src/reply.rs
@@ -2,9 +2,8 @@
 use crate::error::ContractError;
 use crate::state::CONFIG;
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{DepsMut, Env, Reply};
+use cosmwasm_std::{DepsMut, Env, Reply, Response};
 use cw_utils::{parse_reply_instantiate_data, MsgInstantiateContractResponse, ParseReplyError};
-use sg_std::Response;
 
 const INIT_WHITELIST_REPLY_ID: u64 = 1;
 
diff --git a/contracts/whitelists/tiered-whitelist-flex/src/admin.rs b/contracts/whitelists/tiered-whitelist-flex/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/tiered-whitelist-flex/src/admin.rs
+++ b/contracts/whitelists/tiered-whitelist-flex/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/tiered-whitelist-flex/src/contract.rs b/contracts/whitelists/tiered-whitelist-flex/src/contract.rs
index 1e4c9edc..d7b1b1e1 100644
--- a/contracts/whitelists/tiered-whitelist-flex/src/contract.rs
+++ b/contracts/whitelists/tiered-whitelist-flex/src/contract.rs
@@ -16,8 +16,8 @@ use crate::state::{AdminList, Config, Stage, ADMIN_LIST, CONFIG, MEMBER_COUNT, W
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, to_json_binary, Addr, Binary, Coin, Deps, DepsMut, Env, MessageInfo, StdResult,
-    Timestamp, Uint128,
+    ensure, to_json_binary, Addr, Binary, Coin, Deps, DepsMut, Env, MessageInfo, Response,
+    StdResult, Timestamp, Uint128,
 };
 use cosmwasm_std::{Order, StdError};
 use cw2::set_contract_version;
@@ -26,7 +26,7 @@ use cw_utils::{may_pay, maybe_addr, must_pay};
 use rust_decimal::prelude::ToPrimitive;
 use rust_decimal::Decimal;
 use sg1::checked_fair_burn;
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-tiered-whitelist-flex";
diff --git a/contracts/whitelists/tiered-whitelist-flex/src/helpers/interface.rs b/contracts/whitelists/tiered-whitelist-flex/src/helpers/interface.rs
index c63ddcbd..fc5a342f 100644
--- a/contracts/whitelists/tiered-whitelist-flex/src/helpers/interface.rs
+++ b/contracts/whitelists/tiered-whitelist-flex/src/helpers/interface.rs
@@ -1,8 +1,7 @@
 use schemars::JsonSchema;
 use serde::{Deserialize, Serialize};
 
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/whitelists/tiered-whitelist-merkletree/src/admin.rs b/contracts/whitelists/tiered-whitelist-merkletree/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/tiered-whitelist-merkletree/src/admin.rs
+++ b/contracts/whitelists/tiered-whitelist-merkletree/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/tiered-whitelist-merkletree/src/contract.rs b/contracts/whitelists/tiered-whitelist-merkletree/src/contract.rs
index 4806b8aa..589435db 100644
--- a/contracts/whitelists/tiered-whitelist-merkletree/src/contract.rs
+++ b/contracts/whitelists/tiered-whitelist-merkletree/src/contract.rs
@@ -16,12 +16,12 @@ use crate::state::{AdminList, Config, Stage, ADMIN_LIST, CONFIG, MERKLE_ROOTS, M
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, to_json_binary, Binary, Coin, Deps, DepsMut, Empty, Env, Event, MessageInfo, StdError,
-    StdResult, Timestamp, Uint128,
+    ensure, to_json_binary, Binary, Coin, Deps, DepsMut, Empty, Env, Event, MessageInfo, Response,
+    StdError, StdResult, Timestamp, Uint128,
 };
 use cw2::set_contract_version;
 use cw_utils::must_pay;
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 use rs_merkle::{algorithms::Sha256, Hasher};
 use semver::Version;
diff --git a/contracts/whitelists/tiered-whitelist-merkletree/src/helpers/interface.rs b/contracts/whitelists/tiered-whitelist-merkletree/src/helpers/interface.rs
index 6f09e831..86bbd718 100644
--- a/contracts/whitelists/tiered-whitelist-merkletree/src/helpers/interface.rs
+++ b/contracts/whitelists/tiered-whitelist-merkletree/src/helpers/interface.rs
@@ -1,6 +1,5 @@
 use cosmwasm_schema::cw_serde;
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/whitelists/tiered-whitelist/src/admin.rs b/contracts/whitelists/tiered-whitelist/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/tiered-whitelist/src/admin.rs
+++ b/contracts/whitelists/tiered-whitelist/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/tiered-whitelist/src/contract.rs b/contracts/whitelists/tiered-whitelist/src/contract.rs
index 32c784f1..e30e4aed 100644
--- a/contracts/whitelists/tiered-whitelist/src/contract.rs
+++ b/contracts/whitelists/tiered-whitelist/src/contract.rs
@@ -16,8 +16,8 @@ use crate::state::{AdminList, Config, Stage, ADMIN_LIST, CONFIG, MEMBER_COUNT, W
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    ensure, to_json_binary, Addr, Binary, Coin, Deps, DepsMut, Env, MessageInfo, StdResult,
-    Timestamp, Uint128,
+    ensure, to_json_binary, Addr, Binary, Coin, Deps, DepsMut, Env, MessageInfo, Response,
+    StdResult, Timestamp, Uint128,
 };
 use cosmwasm_std::{Order, StdError};
 use cw2::set_contract_version;
@@ -26,7 +26,7 @@ use cw_utils::{may_pay, maybe_addr, must_pay};
 use rust_decimal::prelude::ToPrimitive;
 use rust_decimal::Decimal;
 use sg1::checked_fair_burn;
-use sg_std::{Response, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-tiered-whitelist";
diff --git a/contracts/whitelists/tiered-whitelist/src/helpers/interface.rs b/contracts/whitelists/tiered-whitelist/src/helpers/interface.rs
index c63ddcbd..fc5a342f 100644
--- a/contracts/whitelists/tiered-whitelist/src/helpers/interface.rs
+++ b/contracts/whitelists/tiered-whitelist/src/helpers/interface.rs
@@ -1,8 +1,7 @@
 use schemars::JsonSchema;
 use serde::{Deserialize, Serialize};
 
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/whitelists/whitelist-flex/src/admin.rs b/contracts/whitelists/whitelist-flex/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/whitelist-flex/src/admin.rs
+++ b/contracts/whitelists/whitelist-flex/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/whitelist-flex/src/contract.rs b/contracts/whitelists/whitelist-flex/src/contract.rs
index dc6e56d8..a4075aef 100644
--- a/contracts/whitelists/whitelist-flex/src/contract.rs
+++ b/contracts/whitelists/whitelist-flex/src/contract.rs
@@ -11,15 +11,17 @@ use crate::msg::{
 use crate::state::{AdminList, Config, ADMIN_LIST, CONFIG, WHITELIST};
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{ensure, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
-use cosmwasm_std::{Order, Timestamp};
+use cosmwasm_std::{
+    ensure, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Order, Response, StdResult,
+    Timestamp,
+};
 use cw2::set_contract_version;
 use cw_storage_plus::Bound;
 use cw_utils::{may_pay, maybe_addr, must_pay};
 use rust_decimal::prelude::ToPrimitive;
 use rust_decimal::Decimal;
 use sg1::checked_fair_burn;
-use sg_std::{Response, GENESIS_MINT_START_TIME, NATIVE_DENOM};
+use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-whitelist-flex";
diff --git a/contracts/whitelists/whitelist-flex/src/helpers/interface.rs b/contracts/whitelists/whitelist-flex/src/helpers/interface.rs
index c63ddcbd..fc5a342f 100644
--- a/contracts/whitelists/whitelist-flex/src/helpers/interface.rs
+++ b/contracts/whitelists/whitelist-flex/src/helpers/interface.rs
@@ -1,8 +1,7 @@
 use schemars::JsonSchema;
 use serde::{Deserialize, Serialize};
 
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/whitelists/whitelist-immutable/src/contract.rs b/contracts/whitelists/whitelist-immutable/src/contract.rs
index dead0477..e5c6c17e 100644
--- a/contracts/whitelists/whitelist-immutable/src/contract.rs
+++ b/contracts/whitelists/whitelist-immutable/src/contract.rs
@@ -1,13 +1,12 @@
 use crate::state::{Config, CONFIG, TOTAL_ADDRESS_COUNT, WHITELIST};
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
+use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 use cw2::set_contract_version;
 
 use crate::error::ContractError;
 use crate::msg::{ConfigResponse, ExecuteMsg, InstantiateMsg, QueryMsg};
 use cw_utils::nonpayable;
-use sg_std::Response;
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:whitelist-immutable";
diff --git a/contracts/whitelists/whitelist-merkletree/src/admin.rs b/contracts/whitelists/whitelist-merkletree/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/whitelist-merkletree/src/admin.rs
+++ b/contracts/whitelists/whitelist-merkletree/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/whitelist-merkletree/src/contract.rs b/contracts/whitelists/whitelist-merkletree/src/contract.rs
index 30f5a4fe..eeff407c 100644
--- a/contracts/whitelists/whitelist-merkletree/src/contract.rs
+++ b/contracts/whitelists/whitelist-merkletree/src/contract.rs
@@ -13,12 +13,12 @@ use crate::state::{AdminList, Config, ADMIN_LIST, CONFIG, MERKLE_ROOT, MERKLE_TR
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    to_json_binary, Binary, Deps, DepsMut, Empty, Env, Event, MessageInfo, StdError, StdResult,
-    Timestamp,
+    to_json_binary, Binary, Deps, DepsMut, Empty, Env, Event, MessageInfo, Response, StdError,
+    StdResult, Timestamp,
 };
 use cw2::set_contract_version;
 use cw_utils::must_pay;
-use sg_std::{Response, GENESIS_MINT_START_TIME, NATIVE_DENOM};
+use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 use rs_merkle::{algorithms::Sha256, Hasher};
 use semver::Version;
diff --git a/contracts/whitelists/whitelist-merkletree/src/helpers/interface.rs b/contracts/whitelists/whitelist-merkletree/src/helpers/interface.rs
index 6f09e831..86bbd718 100644
--- a/contracts/whitelists/whitelist-merkletree/src/helpers/interface.rs
+++ b/contracts/whitelists/whitelist-merkletree/src/helpers/interface.rs
@@ -1,6 +1,5 @@
 use cosmwasm_schema::cw_serde;
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/contracts/whitelists/whitelist/src/admin.rs b/contracts/whitelists/whitelist/src/admin.rs
index f4c065b9..885b8f83 100644
--- a/contracts/whitelists/whitelist/src/admin.rs
+++ b/contracts/whitelists/whitelist/src/admin.rs
@@ -1,5 +1,4 @@
-use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, StdResult};
-use sg_std::Response;
+use cosmwasm_std::{Addr, Deps, DepsMut, Env, MessageInfo, Response, StdResult};
 
 use crate::{
     helpers::validators::map_validate,
diff --git a/contracts/whitelists/whitelist/src/contract.rs b/contracts/whitelists/whitelist/src/contract.rs
index b775674d..c54778ca 100644
--- a/contracts/whitelists/whitelist/src/contract.rs
+++ b/contracts/whitelists/whitelist/src/contract.rs
@@ -11,15 +11,17 @@ use crate::msg::{
 use crate::state::{AdminList, Config, ADMIN_LIST, CONFIG, WHITELIST};
 #[cfg(not(feature = "library"))]
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
-use cosmwasm_std::{Order, Timestamp};
+use cosmwasm_std::{
+    to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Order, Response, StdResult, Timestamp,
+};
+
 use cw2::set_contract_version;
 use cw_storage_plus::Bound;
 use cw_utils::{may_pay, maybe_addr, must_pay};
 use rust_decimal::prelude::ToPrimitive;
 use rust_decimal::Decimal;
 use sg1::checked_fair_burn;
-use sg_std::{Response, GENESIS_MINT_START_TIME, NATIVE_DENOM};
+use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 // version info for migration info
 const CONTRACT_NAME: &str = "crates.io:sg-whitelist";
diff --git a/contracts/whitelists/whitelist/src/helpers/interface.rs b/contracts/whitelists/whitelist/src/helpers/interface.rs
index c63ddcbd..fc5a342f 100644
--- a/contracts/whitelists/whitelist/src/helpers/interface.rs
+++ b/contracts/whitelists/whitelist/src/helpers/interface.rs
@@ -1,8 +1,7 @@
 use schemars::JsonSchema;
 use serde::{Deserialize, Serialize};
 
-use cosmwasm_std::{to_json_binary, Addr, StdResult, WasmMsg};
-use sg_std::CosmosMsg;
+use cosmwasm_std::{to_json_binary, Addr, CosmosMsg, StdResult, WasmMsg};
 
 use crate::msg::ExecuteMsg;
 
diff --git a/packages/sg1/Cargo.toml b/packages/sg1/Cargo.toml
index fb648803..aa071f00 100644
--- a/packages/sg1/Cargo.toml
+++ b/packages/sg1/Cargo.toml
@@ -9,8 +9,9 @@ repository  = { workspace = true }
 license     = { workspace = true }
 
 [dependencies]
-cosmwasm-std    = { workspace = true }
-cw-utils        = { workspace = true }
-serde           = { workspace = true }
-sg-std          = { workspace = true }
-thiserror       = { workspace = true }
+cosmwasm-std = { workspace = true, features = ["stargate"] }
+cw-utils     = { workspace = true }
+serde        = { workspace = true }
+sg-std       = { workspace = true }
+thiserror    = { workspace = true }
+anybuf       = { workspace = true }
diff --git a/packages/sg1/src/lib.rs b/packages/sg1/src/lib.rs
index c663a9d8..24149368 100644
--- a/packages/sg1/src/lib.rs
+++ b/packages/sg1/src/lib.rs
@@ -1,8 +1,10 @@
+use anybuf::Anybuf;
 use cosmwasm_std::{
-    coin, coins, ensure, Addr, BankMsg, Coin, Decimal, Event, MessageInfo, Uint128,
+    coin, coins, ensure, Addr, BankMsg, Coin, CosmosMsg, Decimal, Event, MessageInfo, Response,
+    SubMsg, Uint128,
 };
 use cw_utils::{may_pay, must_pay, PaymentError};
-use sg_std::{create_fund_fairburn_pool_msg, Response, SubMsg, NATIVE_DENOM};
+use sg_std::NATIVE_DENOM;
 use thiserror::Error;
 
 // governance parameters
@@ -27,7 +29,7 @@ pub fn checked_fair_burn(
     };
 
     if payment.u128() != 0u128 {
-        fair_burn(fee, developer, res);
+        fair_burn(info.sender.to_string(), fee, developer, res);
     }
 
     Ok(())
@@ -154,7 +156,7 @@ pub fn distribute_mint_fees(
 }
 
 /// Burn and distribute fees, assuming the right fee is passed in
-pub fn fair_burn(fee: u128, developer: Option<Addr>, res: &mut Response) {
+pub fn fair_burn(sender: String, fee: u128, developer: Option<Addr>, res: &mut Response) {
     let mut event = Event::new("fair-burn");
 
     // calculate the fair burn fee
@@ -175,17 +177,33 @@ pub fn fair_burn(fee: u128, developer: Option<Addr>, res: &mut Response) {
         event = event.add_attribute("dev", dev.to_string());
         event = event.add_attribute("dev_amount", Uint128::from(remainder).to_string());
     } else {
-        res.messages
-            .push(SubMsg::new(create_fund_fairburn_pool_msg(coins(
-                remainder,
-                NATIVE_DENOM,
-            ))));
+        let msg_fund_fairburn_pool =
+            create_fund_fairburn_pool_msg(sender, &coin(remainder, NATIVE_DENOM));
+        res.messages.push(SubMsg::new(msg_fund_fairburn_pool));
         event = event.add_attribute("dist_amount", Uint128::from(remainder).to_string());
     }
 
     res.events.push(event);
 }
 
+/// following the protobuf spec in
+/// https://github.com/public-awesome/stargaze/blob/efdb9212e037e05fc429c0cfbcf425ad11855e15/proto/publicawesome/stargaze/alloc/v1beta1/tx.proto#L49
+fn encode_msg_fund_fairburn_pool(sender: String, amount: &Coin) -> Vec<u8> {
+    let coin = Anybuf::new()
+        .append_string(1, &amount.denom)
+        .append_string(2, amount.amount.to_string());
+    Anybuf::new()
+        .append_string(1, sender)
+        .append_message(2, &coin)
+        .into_vec()
+}
+
+fn create_fund_fairburn_pool_msg(sender: String, amount: &Coin) -> CosmosMsg {
+    CosmosMsg::Stargate {
+        type_url: "/publicawesome.stargaze.alloc.v1beta1.MsgFundFairburnPool".to_string(),
+        value: encode_msg_fund_fairburn_pool(sender, amount).into(),
+    }
+}
 pub fn transfer_funds_to_launchpad_dao(
     info: &MessageInfo,
     fee: u128,
@@ -218,20 +236,23 @@ pub enum FeeError {
 
 #[cfg(test)]
 mod tests {
-    use cosmwasm_std::{coins, Addr, BankMsg};
-    use sg_std::{create_fund_fairburn_pool_msg, Response, NATIVE_DENOM};
+    use cosmwasm_std::{coin, coins, Addr, BankMsg, Response};
+    use sg_std::NATIVE_DENOM;
 
-    use crate::{fair_burn, SubMsg};
+    use crate::{create_fund_fairburn_pool_msg, fair_burn, SubMsg};
 
     #[test]
     fn check_fair_burn_no_dev_rewards() {
         let mut res = Response::new();
 
-        fair_burn(9u128, None, &mut res);
+        fair_burn(Addr::unchecked("sender").to_string(), 9u128, None, &mut res);
         let burn_msg = SubMsg::new(BankMsg::Burn {
             amount: coins(4, "ustars".to_string()),
         });
-        let dist_msg = SubMsg::new(create_fund_fairburn_pool_msg(coins(5, NATIVE_DENOM)));
+        let dist_msg = SubMsg::new(create_fund_fairburn_pool_msg(
+            Addr::unchecked("sender").to_string(),
+            &coin(5, NATIVE_DENOM),
+        ));
         assert_eq!(res.messages.len(), 2);
         assert_eq!(res.messages[0], burn_msg);
         assert_eq!(res.messages[1], dist_msg);
@@ -241,7 +262,12 @@ mod tests {
     fn check_fair_burn_with_dev_rewards() {
         let mut res = Response::new();
 
-        fair_burn(9u128, Some(Addr::unchecked("geordi")), &mut res);
+        fair_burn(
+            Addr::unchecked("sender").to_string(),
+            9u128,
+            Some(Addr::unchecked("geordi")),
+            &mut res,
+        );
         let bank_msg = SubMsg::new(BankMsg::Send {
             to_address: "geordi".to_string(),
             amount: coins(5, NATIVE_DENOM),
@@ -258,7 +284,12 @@ mod tests {
     fn check_fair_burn_with_dev_rewards_different_amount() {
         let mut res = Response::new();
 
-        fair_burn(1420u128, Some(Addr::unchecked("geordi")), &mut res);
+        fair_burn(
+            Addr::unchecked("sender").to_string(),
+            1420u128,
+            Some(Addr::unchecked("geordi")),
+            &mut res,
+        );
         let bank_msg = SubMsg::new(BankMsg::Send {
             to_address: "geordi".to_string(),
             amount: coins(710, NATIVE_DENOM),


Test patch:
diff --git a/test-suite/Cargo.toml b/test-suite/Cargo.toml
index 867d077f..805c67b7 100644
--- a/test-suite/Cargo.toml
+++ b/test-suite/Cargo.toml
@@ -9,9 +9,9 @@ repository  = { workspace = true }
 license     = { workspace = true }
 
 exclude = [
-    # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication.
-    "contract.wasm",
-    "hash.txt",
+  # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication.
+  "contract.wasm",
+  "hash.txt",
 ]
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -33,39 +33,41 @@ optimize = """docker run --rm -v "$(pwd)":/code \
 """
 
 [dependencies]
-cosmwasm-schema     = { workspace = true }
-sg-std              = { workspace = true }
-cosmwasm-std        = { workspace = true }
-cw4                 = { workspace = true }
-cw-multi-test       = { workspace = true }
-sg-multi-test       = { workspace = true }
-sg721-base          = { workspace = true }
-sg721-updatable     = { workspace = true }
-cw4-group           = { workspace = true }
-sg-splits           = { workspace = true }
-anyhow              = "1.0.57"
-sg-eth-airdrop      = { workspace = true }
-whitelist-immutable = { workspace = true, features = ["library"] }
-cw721               = { workspace = true }
-cw721-base          = { workspace = true, features = ["library"] }
-sg2                 = { workspace = true }
-sg721               = { workspace = true }
-sg-metadata              = { workspace = true }
-open-edition-factory     = { workspace = true, features = ["library"] }
-open-edition-minter      = { workspace = true, features = ["library"] }
-sg-whitelist        = { workspace = true, features = ["library"] }
-vending-factory     = { workspace = true, features = ["library"] }
-vending-minter      = { workspace = true, features = ["library"] }
-base-factory        = { workspace = true }
-base-minter         = { workspace = true }
-sg721-nt            = { workspace = true }
-sg-controllers      = { workspace = true }
-cw-ownable = "0.5.1"
+cosmwasm-schema      = { workspace = true }
+sg-std               = { workspace = true }
+cosmwasm-std         = { workspace = true }
+cw4                  = { workspace = true }
+cw-multi-test        = { workspace = true }
+sg-multi-test        = { workspace = true }
+sg721-base           = { workspace = true }
+sg721-updatable      = { workspace = true }
+cw4-group            = { workspace = true }
+sg-splits            = { workspace = true }
+anyhow               = "1.0.57"
+sg-eth-airdrop       = { workspace = true }
+whitelist-immutable  = { workspace = true, features = ["library"] }
+cw721                = { workspace = true }
+cw721-base           = { workspace = true, features = ["library"] }
+sg2                  = { workspace = true }
+sg721                = { workspace = true }
+sg-metadata          = { workspace = true }
+open-edition-factory = { workspace = true, features = ["library"] }
+open-edition-minter  = { workspace = true, features = ["library"] }
+sg-whitelist         = { workspace = true, features = ["library"] }
+vending-factory      = { workspace = true, features = ["library"] }
+vending-minter       = { workspace = true, features = ["library"] }
+base-factory         = { workspace = true }
+base-minter          = { workspace = true }
+sg721-nt             = { workspace = true }
+sg-controllers       = { workspace = true }
+cw-ownable           = "0.5.1"
 
-vending-minter-merkle-wl  = { workspace = true, features = ["library"] }
-whitelist-mtree           = { workspace = true, features = ["library"] }
-rs_merkle                 = { version = "1.4.1", default-features = false }
+vending-minter-merkle-wl = { workspace = true, features = ["library"] }
+whitelist-mtree          = { workspace = true, features = ["library"] }
+rs_merkle                = { version = "1.4.1", default-features = false }
 
+anybuf = { workspace = true }
+serde  = { workspace = true }
 [dev-dependencies]
 serde           = { workspace = true }
 thiserror       = { workspace = true }
diff --git a/test-suite/src/base_factory/tests/integration_tests.rs b/test-suite/src/base_factory/tests/integration_tests.rs
index 1047e1cb..5b44eb00 100644
--- a/test-suite/src/base_factory/tests/integration_tests.rs
+++ b/test-suite/src/base_factory/tests/integration_tests.rs
@@ -1,16 +1,15 @@
 #[cfg(test)]
 mod tests {
-    use crate::common_setup::contract_boxes::{contract_base_factory, custom_mock_app};
+    use crate::common_setup::contract_boxes::{contract_base_factory, custom_mock_app, App};
     use crate::common_setup::setup_minter::base_minter::mock_params::mock_params;
     use base_factory::helpers::FactoryContract;
     use base_factory::msg::InstantiateMsg;
     use cosmwasm_std::Addr;
     use cw_multi_test::Executor;
-    use sg_multi_test::StargazeApp;
 
     const GOVERNANCE: &str = "governance";
 
-    fn proper_instantiate() -> (StargazeApp, FactoryContract) {
+    fn proper_instantiate() -> (App, FactoryContract) {
         let mut app = custom_mock_app();
         let factory_id = app.store_code(contract_base_factory());
         let minter_id = 2;
diff --git a/test-suite/src/common_setup.rs b/test-suite/src/common_setup.rs
index cc10d810..5e2dc9ab 100644
--- a/test-suite/src/common_setup.rs
+++ b/test-suite/src/common_setup.rs
@@ -1,6 +1,7 @@
 pub mod contract_boxes;
 pub mod contract_boxes_empty;
 pub mod helpers;
+pub mod keeper;
 pub mod msg;
 pub mod setup_accounts_and_block;
 pub mod setup_collection_whitelist;
diff --git a/test-suite/src/common_setup/contract_boxes.rs b/test-suite/src/common_setup/contract_boxes.rs
index 65a9fd3d..ee8d8291 100644
--- a/test-suite/src/common_setup/contract_boxes.rs
+++ b/test-suite/src/common_setup/contract_boxes.rs
@@ -1,12 +1,28 @@
-use cw_multi_test::{Contract, ContractWrapper};
-use sg_multi_test::StargazeApp;
-use sg_std::StargazeMsgWrapper;
-
-pub fn custom_mock_app() -> StargazeApp {
-    StargazeApp::default()
-}
-
-pub fn contract_vending_factory() -> Box<dyn Contract<StargazeMsgWrapper>> {
+use crate::common_setup::keeper::StargazeStargateKeeper;
+use cosmwasm_std::testing::{MockApi, MockStorage};
+use cosmwasm_std::Empty;
+use cw_multi_test::{
+    no_init, AppBuilder, BankKeeper, Contract, ContractWrapper, FailingModule, WasmKeeper,
+};
+pub type App = cw_multi_test::App<
+    BankKeeper,
+    MockApi,
+    MockStorage,
+    FailingModule<Empty, Empty, Empty>,
+    WasmKeeper<Empty, Empty>,
+    cw_multi_test::StakeKeeper,
+    cw_multi_test::DistributionKeeper,
+    FailingModule<cosmwasm_std::IbcMsg, cosmwasm_std::IbcQuery, Empty>,
+    FailingModule<cosmwasm_std::GovMsg, Empty, Empty>,
+    StargazeStargateKeeper,
+>;
+
+pub fn custom_mock_app() -> App {
+    let stargate_keeper = StargazeStargateKeeper::new();
+    let app_builder = AppBuilder::default();
+    app_builder.with_stargate(stargate_keeper).build(no_init)
+}
+pub fn contract_vending_factory() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         vending_factory::contract::execute,
         vending_factory::contract::instantiate,
@@ -16,7 +32,7 @@ pub fn contract_vending_factory() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_open_edition_factory() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_open_edition_factory() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         open_edition_factory::contract::execute,
         open_edition_factory::contract::instantiate,
@@ -26,7 +42,7 @@ pub fn contract_open_edition_factory() -> Box<dyn Contract<StargazeMsgWrapper>>
     Box::new(contract)
 }
 
-pub fn contract_base_factory() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_base_factory() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         base_factory::contract::execute,
         base_factory::contract::instantiate,
@@ -36,7 +52,7 @@ pub fn contract_base_factory() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_base_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_base_minter() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         base_minter::contract::execute,
         base_minter::contract::instantiate,
@@ -46,7 +62,7 @@ pub fn contract_base_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_nt_collection() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_nt_collection() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         sg721_nt::entry::execute,
         sg721_nt::entry::instantiate,
@@ -55,7 +71,7 @@ pub fn contract_nt_collection() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_collection_whitelist() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_collection_whitelist() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         sg_whitelist::contract::execute,
         sg_whitelist::contract::instantiate,
@@ -64,7 +80,7 @@ pub fn contract_collection_whitelist() -> Box<dyn Contract<StargazeMsgWrapper>>
     Box::new(contract)
 }
 
-pub fn contract_open_edition_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_open_edition_minter() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         open_edition_minter::contract::execute,
         open_edition_minter::contract::instantiate,
@@ -74,7 +90,7 @@ pub fn contract_open_edition_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_vending_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_vending_minter() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         vending_minter::contract::execute,
         vending_minter::contract::instantiate,
@@ -84,7 +100,7 @@ pub fn contract_vending_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_sg721_base() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_sg721_base() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         sg721_base::entry::execute,
         sg721_base::entry::instantiate,
@@ -93,7 +109,7 @@ pub fn contract_sg721_base() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_sg721_updatable() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_sg721_updatable() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         sg721_updatable::entry::execute,
         sg721_updatable::entry::instantiate,
@@ -103,7 +119,7 @@ pub fn contract_sg721_updatable() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_splits() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_splits() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new_with_empty(
         sg_splits::contract::execute,
         sg_splits::contract::instantiate,
@@ -112,7 +128,7 @@ pub fn contract_splits() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_group() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_group() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new_with_empty(
         cw4_group::contract::execute,
         cw4_group::contract::instantiate,
@@ -121,7 +137,7 @@ pub fn contract_group() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_eth_airdrop() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_eth_airdrop() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         sg_eth_airdrop::contract::execute,
         sg_eth_airdrop::contract::instantiate,
@@ -131,7 +147,7 @@ pub fn contract_eth_airdrop() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_whitelist_immutable() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_whitelist_immutable() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         whitelist_immutable::contract::execute,
         whitelist_immutable::contract::instantiate,
@@ -140,7 +156,7 @@ pub fn contract_whitelist_immutable() -> Box<dyn Contract<StargazeMsgWrapper>> {
     Box::new(contract)
 }
 
-pub fn contract_whitelist_merkletree() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn contract_whitelist_merkletree() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(
         whitelist_mtree::contract::execute,
         whitelist_mtree::contract::instantiate,
diff --git a/test-suite/src/common_setup/keeper.rs b/test-suite/src/common_setup/keeper.rs
new file mode 100644
index 00000000..1d376ebc
--- /dev/null
+++ b/test-suite/src/common_setup/keeper.rs
@@ -0,0 +1,93 @@
+use anybuf::Bufany;
+use cosmwasm_std::{
+    coins, Addr, Api, BankMsg, Binary, BlockInfo, CustomMsg, CustomQuery, Empty, Querier, Storage,
+};
+use cw_multi_test::error::{bail, AnyResult};
+use cw_multi_test::{AppResponse, CosmosRouter, Module, Stargate, StargateMsg, StargateQuery};
+use serde::de::DeserializeOwned;
+use std::marker::PhantomData;
+
+pub struct StargazeKeeper<ExecT, QueryT, SudoT>(PhantomData<(ExecT, QueryT, SudoT)>);
+
+#[allow(clippy::new_without_default)]
+impl<ExecT, QueryT, SudoT> StargazeKeeper<ExecT, QueryT, SudoT> {
+    pub fn new() -> Self {
+        Self(Default::default())
+    }
+}
+
+pub type StargazeStargateKeeper = StargazeKeeper<StargateMsg, StargateQuery, Empty>;
+impl Stargate for StargazeStargateKeeper {}
+
+impl Module for StargazeStargateKeeper {
+    // These associated types must match your type alias.
+    type ExecT = StargateMsg;
+    type QueryT = StargateQuery;
+    type SudoT = Empty;
+
+    fn execute<ExecC, QueryC>(
+        &self,
+        api: &dyn Api,
+        storage: &mut dyn Storage,
+        router: &dyn CosmosRouter<ExecC = ExecC, QueryC = QueryC>,
+        block: &BlockInfo,
+        sender: Addr,
+        msg: Self::ExecT,
+    ) -> AnyResult<AppResponse>
+    where
+        ExecC: CustomMsg + DeserializeOwned + 'static,
+        QueryC: CustomQuery + DeserializeOwned + 'static,
+    {
+        match msg.type_url.as_str() {
+            "/publicawesome.stargaze.alloc.v1beta1.MsgFundFairburnPool" => {
+                let decoded = Bufany::deserialize(&msg.value).unwrap();
+                let amount_bytes = decoded.bytes(2).unwrap();
+
+                let decoded_amount = Bufany::deserialize(&amount_bytes).unwrap();
+
+                // field 1 is the denom
+                // field 2 is the amount
+                let denom = decoded_amount.string(1).unwrap();
+                assert_eq!("ustars", denom);
+                let amount = decoded_amount.string(2).unwrap();
+                let msg = BankMsg::Send {
+                    to_address: "fairburn_pool".to_owned(),
+                    amount: coins(amount.parse::<u128>()?, denom),
+                }
+                .into();
+                let resp = router.execute(api, storage, block, sender, msg);
+                match resp {
+                    Ok(_) => Ok(AppResponse::default()),
+                    Err(e) => bail!("Error executing fairburn pool funding: {}", e),
+                }
+            }
+            _ => bail!("stargate not implemented: {}", msg.type_url),
+        }
+    }
+
+    fn sudo<ExecC, QueryC>(
+        &self,
+        _api: &dyn Api,
+        _storage: &mut dyn Storage,
+        _router: &dyn CosmosRouter<ExecC = ExecC, QueryC = QueryC>,
+        _block: &BlockInfo,
+        _msg: Self::SudoT,
+    ) -> AnyResult<AppResponse>
+    where
+        ExecC: CustomMsg + DeserializeOwned + 'static,
+        QueryC: CustomQuery + DeserializeOwned + 'static,
+    {
+        Ok(AppResponse::default())
+    }
+
+    fn query(
+        &self,
+        _api: &dyn Api,
+        _storage: &dyn Storage,
+        _querier: &dyn Querier,
+        _block: &BlockInfo,
+        _request: Self::QueryT,
+    ) -> AnyResult<Binary> {
+        Ok(Binary::default())
+    }
+}
diff --git a/test-suite/src/common_setup/msg.rs b/test-suite/src/common_setup/msg.rs
index d27e6166..f0f95a94 100644
--- a/test-suite/src/common_setup/msg.rs
+++ b/test-suite/src/common_setup/msg.rs
@@ -1,14 +1,14 @@
 use anyhow::Error;
 use cosmwasm_std::{Addr, Timestamp};
 
+use crate::common_setup::contract_boxes::App;
 use cosmwasm_std::Uint128;
 use open_edition_factory::state::{OpenEditionMinterParams, ParamsExtension};
 use sg2::msg::CollectionParams;
-use sg_multi_test::StargazeApp;
 use vending_factory::msg::VendingMinterInitMsgExtension;
 
 pub struct MinterSetupParams<'a> {
-    pub router: &'a mut StargazeApp,
+    pub router: &'a mut App,
     pub minter_admin: Addr,
     pub num_tokens: u32,
     pub collection_params: CollectionParams,
@@ -46,13 +46,13 @@ pub struct CodeIds {
 
 pub struct MinterTemplateResponse<T> {
     pub collection_response_vec: Vec<MinterCollectionResponse>,
-    pub router: StargazeApp,
+    pub router: App,
     pub accts: T,
 }
 
 pub struct MinterTemplateResponseCodeIds<T> {
     pub collection_response_vec: Vec<MinterCollectionResponse>,
-    pub router: StargazeApp,
+    pub router: App,
     pub accts: T,
     pub code_ids: CodeIds,
 }
@@ -63,7 +63,7 @@ pub struct Accounts {
 }
 
 pub struct OpenEditionMinterSetupParams<'a> {
-    pub router: &'a mut StargazeApp,
+    pub router: &'a mut App,
     pub minter_admin: Addr,
     pub collection_params: CollectionParams,
     pub start_time: Option<Timestamp>,
diff --git a/test-suite/src/common_setup/setup_accounts_and_block.rs b/test-suite/src/common_setup/setup_accounts_and_block.rs
index 51a0dbdb..ffb9bdbe 100644
--- a/test-suite/src/common_setup/setup_accounts_and_block.rs
+++ b/test-suite/src/common_setup/setup_accounts_and_block.rs
@@ -1,10 +1,10 @@
 use cosmwasm_std::{coins, Addr, Coin, Timestamp, Uint128};
 use cw4::Member;
 use cw_multi_test::{BankSudo, Executor, SudoMsg};
-use sg_multi_test::StargazeApp;
+
 use sg_std::NATIVE_DENOM;
 
-use crate::common_setup::contract_boxes::contract_group;
+use crate::common_setup::contract_boxes::{contract_group, App};
 use crate::common_setup::setup_minter::common::constants::DEV_ADDRESS;
 
 const OWNER: &str = "admin0001";
@@ -13,7 +13,7 @@ pub const CREATION_FEE: u128 = 5_000_000_000;
 pub const INITIAL_BALANCE: u128 = 2_000_000_000;
 
 // uploads code and returns address of group contract
-pub fn instantiate_group(app: &mut StargazeApp, members: Vec<Member>) -> Addr {
+pub fn instantiate_group(app: &mut App, members: Vec<Member>) -> Addr {
     let group_id = app.store_code(contract_group());
     println!("group_id: {group_id}");
     let msg = cw4_group::msg::InstantiateMsg {
@@ -25,7 +25,7 @@ pub fn instantiate_group(app: &mut StargazeApp, members: Vec<Member>) -> Addr {
 }
 
 // Add a creator account with initial balances
-pub fn setup_accounts(router: &mut StargazeApp) -> (Addr, Addr) {
+pub fn setup_accounts(router: &mut App) -> (Addr, Addr) {
     let buyer = Addr::unchecked("buyer");
     let creator = Addr::unchecked("creator");
     let dev = Addr::unchecked(DEV_ADDRESS);
@@ -81,7 +81,7 @@ pub fn setup_accounts(router: &mut StargazeApp) -> (Addr, Addr) {
 }
 
 // Set blockchain time to after mint by default
-pub fn setup_block_time(router: &mut StargazeApp, nanos: u64, height: Option<u64>) {
+pub fn setup_block_time(router: &mut App, nanos: u64, height: Option<u64>) {
     let mut block = router.block_info();
     block.time = Timestamp::from_nanos(nanos);
     if let Some(h) = height {
diff --git a/test-suite/src/common_setup/setup_collection_whitelist.rs b/test-suite/src/common_setup/setup_collection_whitelist.rs
index 5e53b9fd..e7cf7880 100644
--- a/test-suite/src/common_setup/setup_collection_whitelist.rs
+++ b/test-suite/src/common_setup/setup_collection_whitelist.rs
@@ -1,19 +1,20 @@
 use cosmwasm_std::{coin, Addr, Timestamp};
-use cw_multi_test::Executor;
-use sg_multi_test::StargazeApp;
+
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 use sg_whitelist::msg::InstantiateMsg as WhitelistInstantiateMsg;
 
 use crate::common_setup::{
-    contract_boxes::contract_collection_whitelist, setup_accounts_and_block::setup_block_time,
+    contract_boxes::contract_collection_whitelist, contract_boxes::App,
+    setup_accounts_and_block::setup_block_time,
 };
+use cw_multi_test::Executor;
 
 pub const WHITELIST_AMOUNT: u128 = 66_000_000;
 const ZERO_FEE_WHITELIST: u128 = 0;
 const WL_PER_ADDRESS_LIMIT: u32 = 1;
 
 pub fn setup_whitelist_contract(
-    router: &mut StargazeApp,
+    router: &mut App,
     creator: &Addr,
     whitelist_code_id: Option<u64>,
     denom: Option<&str>,
@@ -50,7 +51,7 @@ pub fn setup_whitelist_contract(
 }
 
 pub fn setup_zero_fee_whitelist_contract(
-    router: &mut StargazeApp,
+    router: &mut App,
     creator: &Addr,
     whitelist_code_id: Option<u64>,
 ) -> Addr {
@@ -82,7 +83,7 @@ pub fn setup_zero_fee_whitelist_contract(
 }
 
 pub fn configure_collection_whitelist(
-    router: &mut StargazeApp,
+    router: &mut App,
     creator: Addr,
     buyer: Addr,
     minter_addr: Addr,
diff --git a/test-suite/src/common_setup/setup_minter/base_minter/setup.rs b/test-suite/src/common_setup/setup_minter/base_minter/setup.rs
index fca491fa..1c207a0d 100644
--- a/test-suite/src/common_setup/setup_minter/base_minter/setup.rs
+++ b/test-suite/src/common_setup/setup_minter/base_minter/setup.rs
@@ -2,6 +2,7 @@ use crate::common_setup::contract_boxes::contract_base_factory;
 use crate::common_setup::contract_boxes::contract_base_minter;
 use crate::common_setup::contract_boxes::contract_nt_collection;
 use crate::common_setup::contract_boxes::contract_sg721_base;
+use crate::common_setup::contract_boxes::App;
 use crate::common_setup::msg::MinterCollectionResponse;
 use crate::common_setup::msg::MinterSetupParams;
 use crate::common_setup::setup_minter::common::constants::MIN_MINT_PRICE;
@@ -11,10 +12,10 @@ use cosmwasm_std::to_json_binary;
 use cosmwasm_std::Coin;
 use cosmwasm_std::Empty;
 use cosmwasm_std::{coins, Addr};
-use cw_multi_test::AppResponse;
-use cw_multi_test::Executor;
+use cw_multi_test::{AppResponse, Executor};
+
 use sg2::msg::{CollectionParams, Sg2ExecuteMsg};
-use sg_multi_test::StargazeApp;
+
 use sg_std::NATIVE_DENOM;
 
 use crate::common_setup::msg::{CodeIds, MinterInstantiateParams};
@@ -23,7 +24,7 @@ use crate::common_setup::setup_minter::base_minter::mock_params::{
 };
 use crate::common_setup::setup_minter::common::constants::CREATION_FEE;
 
-pub fn base_minter_sg721_nt_code_ids(router: &mut StargazeApp) -> CodeIds {
+pub fn base_minter_sg721_nt_code_ids(router: &mut App) -> CodeIds {
     let minter_code_id = router.store_code(contract_base_minter());
     println!("base_minter_code_id: {minter_code_id}");
 
@@ -39,7 +40,7 @@ pub fn base_minter_sg721_nt_code_ids(router: &mut StargazeApp) -> CodeIds {
     }
 }
 
-pub fn base_minter_sg721_collection_code_ids(router: &mut StargazeApp) -> CodeIds {
+pub fn base_minter_sg721_collection_code_ids(router: &mut App) -> CodeIds {
     let minter_code_id = router.store_code(contract_base_minter());
     println!("base_minter_code_id: {minter_code_id}");
 
@@ -89,7 +90,7 @@ pub fn setup_minter_contract(setup_params: MinterSetupParams) -> MinterCollectio
 }
 
 pub fn sudo_update_params(
-    app: &mut StargazeApp,
+    app: &mut App,
     collection_responses: &Vec<MinterCollectionResponse>,
     code_ids: CodeIds,
     update_msg: Option<sg2::msg::UpdateMinterParamsMsg<Empty>>,
@@ -117,7 +118,7 @@ pub fn sudo_update_params(
 
         let sudo_res = app.sudo(cw_multi_test::SudoMsg::Wasm(cw_multi_test::WasmSudo {
             contract_addr: collection_response.factory.clone().unwrap(),
-            msg: to_json_binary(&sudo_update_msg).unwrap(),
+            message: to_json_binary(&sudo_update_msg).unwrap(),
         }));
         sudo_responses.push(sudo_res);
     }
@@ -125,7 +126,7 @@ pub fn sudo_update_params(
 }
 
 pub fn configure_base_minter(
-    app: &mut StargazeApp,
+    app: &mut App,
     minter_admin: Addr,
     collection_params_vec: Vec<CollectionParams>,
     minter_instantiate_params_vec: Vec<MinterInstantiateParams>,
diff --git a/test-suite/src/common_setup/setup_minter/common/parse_response.rs b/test-suite/src/common_setup/setup_minter/common/parse_response.rs
index 1c83bfbd..04e92c1e 100644
--- a/test-suite/src/common_setup/setup_minter/common/parse_response.rs
+++ b/test-suite/src/common_setup/setup_minter/common/parse_response.rs
@@ -11,10 +11,14 @@ pub fn parse_factory_response(res: &AppResponse) -> (Addr, Addr) {
         .filter(|e| e.ty == "instantiate")
         .map(|v| v.attributes.clone())
         .collect::<Vec<_>>();
+    println!(
+        "vector_of_attribute_vectors: {:?}",
+        vector_of_attribute_vectors
+    );
     for vector in vector_of_attribute_vectors {
         let contract_addr = vector
             .iter()
-            .filter(|a| a.key == "_contract_addr")
+            .filter(|a| a.key == "_contract_address")
             .map(|e| e.value.clone())
             .collect::<Vec<_>>();
         contract_addrs = [contract_addrs.clone(), contract_addr].concat();
diff --git a/test-suite/src/common_setup/setup_minter/open_edition_minter/setup.rs b/test-suite/src/common_setup/setup_minter/open_edition_minter/setup.rs
index 6b2e9aea..05d69281 100644
--- a/test-suite/src/common_setup/setup_minter/open_edition_minter/setup.rs
+++ b/test-suite/src/common_setup/setup_minter/open_edition_minter/setup.rs
@@ -1,5 +1,5 @@
 use crate::common_setup::contract_boxes::{
-    contract_open_edition_factory, contract_open_edition_minter, contract_sg721_base,
+    contract_open_edition_factory, contract_open_edition_minter, contract_sg721_base, App,
 };
 use crate::common_setup::msg::{
     MinterCollectionResponse, OpenEditionMinterInstantiateParams, OpenEditionMinterSetupParams,
@@ -14,7 +14,7 @@ use open_edition_factory::msg::{
 };
 use open_edition_factory::types::NftData;
 use sg2::msg::{CollectionParams, Sg2ExecuteMsg};
-use sg_multi_test::StargazeApp;
+
 use sg_std::NATIVE_DENOM;
 
 use crate::common_setup::msg::CodeIds;
@@ -128,7 +128,7 @@ pub fn setup_open_edition_minter_contract(
     }
 }
 
-pub fn open_edition_minter_code_ids(router: &mut StargazeApp) -> CodeIds {
+pub fn open_edition_minter_code_ids(router: &mut App) -> CodeIds {
     let minter_code_id = router.store_code(contract_open_edition_minter());
 
     let factory_code_id = router.store_code(contract_open_edition_factory());
@@ -143,7 +143,7 @@ pub fn open_edition_minter_code_ids(router: &mut StargazeApp) -> CodeIds {
 }
 
 pub fn sudo_update_params(
-    app: &mut StargazeApp,
+    app: &mut App,
     collection_responses: &Vec<MinterCollectionResponse>,
     code_ids: CodeIds,
     update_msg: Option<OpenEditionUpdateParamsMsg>,
@@ -179,7 +179,7 @@ pub fn sudo_update_params(
 
         let sudo_res = app.sudo(cw_multi_test::SudoMsg::Wasm(cw_multi_test::WasmSudo {
             contract_addr: collection_response.factory.clone().unwrap(),
-            msg: to_json_binary(&sudo_update_msg).unwrap(),
+            message: to_json_binary(&sudo_update_msg).unwrap(),
         }));
         sudo_responses.push(sudo_res);
     }
@@ -187,7 +187,7 @@ pub fn sudo_update_params(
 }
 
 pub fn configure_open_edition_minter(
-    app: &mut StargazeApp,
+    app: &mut App,
     minter_admin: Addr,
     collection_params_vec: Vec<CollectionParams>,
     minter_instantiate_params_vec: Vec<OpenEditionMinterInstantiateParams>,
diff --git a/test-suite/src/common_setup/setup_minter/vending_minter/setup.rs b/test-suite/src/common_setup/setup_minter/vending_minter/setup.rs
index 696e7dbf..2eac7653 100644
--- a/test-suite/src/common_setup/setup_minter/vending_minter/setup.rs
+++ b/test-suite/src/common_setup/setup_minter/vending_minter/setup.rs
@@ -1,6 +1,6 @@
 use crate::common_setup::contract_boxes::{
     contract_sg721_base, contract_sg721_updatable, contract_vending_factory,
-    contract_vending_minter,
+    contract_vending_minter, App,
 };
 use crate::common_setup::msg::MinterCollectionResponse;
 use crate::common_setup::msg::MinterSetupParams;
@@ -10,7 +10,6 @@ use cosmwasm_std::{coin, coins, to_json_binary, Addr};
 use cw_multi_test::{AppResponse, Executor};
 use sg2::msg::CreateMinterMsg;
 use sg2::msg::{CollectionParams, Sg2ExecuteMsg};
-use sg_multi_test::StargazeApp;
 use sg_std::NATIVE_DENOM;
 use vending_factory::msg::{VendingMinterInitMsgExtension, VendingUpdateParamsExtension};
 
@@ -77,7 +76,7 @@ pub fn setup_minter_contract(setup_params: MinterSetupParams) -> MinterCollectio
     build_collection_response(res, factory_addr)
 }
 
-pub fn vending_minter_code_ids(router: &mut StargazeApp) -> CodeIds {
+pub fn vending_minter_code_ids(router: &mut App) -> CodeIds {
     let minter_code_id = router.store_code(contract_vending_minter());
     println!("minter_code_id: {minter_code_id}");
 
@@ -93,7 +92,7 @@ pub fn vending_minter_code_ids(router: &mut StargazeApp) -> CodeIds {
     }
 }
 
-pub fn vending_minter_updatable_code_ids(router: &mut StargazeApp) -> CodeIds {
+pub fn vending_minter_updatable_code_ids(router: &mut App) -> CodeIds {
     let minter_code_id = router.store_code(contract_vending_minter());
     println!("minter_code_id: {minter_code_id}");
 
@@ -110,7 +109,7 @@ pub fn vending_minter_updatable_code_ids(router: &mut StargazeApp) -> CodeIds {
 }
 
 pub fn configure_minter(
-    app: &mut StargazeApp,
+    app: &mut App,
     minter_admin: Addr,
     collection_params_vec: Vec<CollectionParams>,
     minter_instantiate_params_vec: Vec<MinterInstantiateParams>,
@@ -137,7 +136,7 @@ pub fn configure_minter(
 }
 
 pub fn sudo_update_params(
-    app: &mut StargazeApp,
+    app: &mut App,
     collection_responses: &Vec<MinterCollectionResponse>,
     code_ids: CodeIds,
     update_msg: Option<sg2::msg::UpdateMinterParamsMsg<VendingUpdateParamsExtension>>,
@@ -168,7 +167,7 @@ pub fn sudo_update_params(
 
         let sudo_res = app.sudo(cw_multi_test::SudoMsg::Wasm(cw_multi_test::WasmSudo {
             contract_addr: collection_response.factory.clone().unwrap(),
-            msg: to_json_binary(&sudo_update_msg).unwrap(),
+            message: to_json_binary(&sudo_update_msg).unwrap(),
         }));
         sudo_responses.push(sudo_res);
     }
diff --git a/test-suite/src/common_setup/setup_whitelist_merkletree.rs b/test-suite/src/common_setup/setup_whitelist_merkletree.rs
index 1b1ed476..380f96be 100644
--- a/test-suite/src/common_setup/setup_whitelist_merkletree.rs
+++ b/test-suite/src/common_setup/setup_whitelist_merkletree.rs
@@ -1,16 +1,15 @@
 use cosmwasm_std::{coin, Addr, Timestamp};
-use cw_multi_test::Executor;
-use sg_multi_test::StargazeApp;
+
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 use whitelist_mtree::msg::InstantiateMsg as WhitelistInstantiateMsg;
 
-use crate::common_setup::contract_boxes::contract_whitelist_merkletree;
-
+use crate::common_setup::contract_boxes::{contract_whitelist_merkletree, App};
+use cw_multi_test::Executor;
 pub const WHITELIST_AMOUNT: u128 = 66_000_000;
 const WL_PER_ADDRESS_LIMIT: u32 = 1;
 
 pub fn setup_whitelist_mtree_contract(
-    router: &mut StargazeApp,
+    router: &mut App,
     creator: &Addr,
     whitelist_code_id: Option<u64>,
     denom: Option<&str>,
diff --git a/test-suite/src/common_setup/templates.rs b/test-suite/src/common_setup/templates.rs
index 13016a33..28517c77 100644
--- a/test-suite/src/common_setup/templates.rs
+++ b/test-suite/src/common_setup/templates.rs
@@ -1,4 +1,4 @@
-use crate::common_setup::contract_boxes::custom_mock_app;
+use crate::common_setup::contract_boxes::{custom_mock_app, App};
 use crate::common_setup::msg::MinterTemplateResponse;
 use crate::common_setup::{
     msg::MinterCollectionResponse,
@@ -24,7 +24,7 @@ use open_edition_factory::msg::OpenEditionMinterInitMsgExtension;
 use open_edition_factory::state::{OpenEditionMinterParams, ParamsExtension};
 use open_edition_factory::types::NftData;
 use sg2::tests::{mock_collection_params_1, mock_collection_two};
-use sg_multi_test::StargazeApp;
+
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 pub fn vending_minter_template(num_tokens: u32) -> MinterTemplateResponse<Accounts> {
@@ -140,10 +140,7 @@ pub fn vending_minter_with_start_time(
     }
 }
 
-pub fn vending_minter_with_app(
-    num_tokens: u32,
-    mut app: StargazeApp,
-) -> MinterTemplateResponse<Accounts> {
+pub fn vending_minter_with_app(num_tokens: u32, mut app: App) -> MinterTemplateResponse<Accounts> {
     let start_time = Timestamp::from_nanos(GENESIS_MINT_START_TIME);
     let (creator, buyer) = setup_accounts(&mut app);
     let collection_params = mock_collection_params_1(Some(start_time));
@@ -211,7 +208,7 @@ pub fn vending_minter_with_sg721_updatable(num_tokens: u32) -> MinterTemplateRes
 
 pub fn vending_minter_updatable_with_app(
     num_tokens: u32,
-    mut app: StargazeApp,
+    mut app: App,
 ) -> MinterTemplateResponse<Accounts> {
     let start_time = Timestamp::from_nanos(GENESIS_MINT_START_TIME);
     let (creator, buyer) = setup_accounts(&mut app);
@@ -420,7 +417,7 @@ pub fn open_edition_minter_start_and_end_time(
 }
 
 pub fn open_edition_minter_custom_code_ids(
-    app: StargazeApp,
+    app: App,
     params_extension: ParamsExtension,
     init_msg: OpenEditionMinterInitMsgExtension,
     code_ids: CodeIds,
diff --git a/test-suite/src/open_edition_factory/tests/common.rs b/test-suite/src/open_edition_factory/tests/common.rs
index 0b98d8df..6f6c122a 100644
--- a/test-suite/src/open_edition_factory/tests/common.rs
+++ b/test-suite/src/open_edition_factory/tests/common.rs
@@ -1,14 +1,13 @@
-use crate::common_setup::contract_boxes::{contract_open_edition_factory, custom_mock_app};
+use crate::common_setup::contract_boxes::{contract_open_edition_factory, custom_mock_app, App};
 use crate::common_setup::setup_minter::open_edition_minter::mock_params::mock_params_proper;
 use cosmwasm_std::Addr;
 use cw_multi_test::Executor;
 use open_edition_factory::helpers::FactoryContract;
 use open_edition_factory::msg::InstantiateMsg;
-use sg_multi_test::StargazeApp;
 
 const GOVERNANCE: &str = "governance";
 
-pub fn proper_instantiate() -> (StargazeApp, FactoryContract) {
+pub fn proper_instantiate() -> (App, FactoryContract) {
     let mut app = custom_mock_app();
     let factory_id = app.store_code(contract_open_edition_factory());
     let minter_id = 2;
diff --git a/test-suite/src/open_edition_factory/tests/queries.rs b/test-suite/src/open_edition_factory/tests/queries.rs
index 32e927f0..3d5c3273 100644
--- a/test-suite/src/open_edition_factory/tests/queries.rs
+++ b/test-suite/src/open_edition_factory/tests/queries.rs
@@ -6,14 +6,15 @@ mod tests {
     use open_edition_factory::helpers::FactoryContract;
     use open_edition_factory::msg::InstantiateMsg;
     use open_edition_factory::state::OpenEditionMinterParams;
-    use sg_multi_test::StargazeApp;
 
-    use crate::common_setup::contract_boxes::{contract_open_edition_factory, custom_mock_app};
+    use crate::common_setup::contract_boxes::{
+        contract_open_edition_factory, custom_mock_app, App,
+    };
     use crate::common_setup::setup_minter::open_edition_minter::mock_params::mock_params_proper;
 
     const GOVERNANCE: &str = "governance";
 
-    fn proper_instantiate() -> (StargazeApp, FactoryContract, OpenEditionMinterParams) {
+    fn proper_instantiate() -> (App, FactoryContract, OpenEditionMinterParams) {
         let mut app = custom_mock_app();
         let factory_id = app.store_code(contract_open_edition_factory());
         let minter_id = 2;
diff --git a/test-suite/src/sg721_base/tests/integration_tests.rs b/test-suite/src/sg721_base/tests/integration_tests.rs
index 454b24e0..cd0daadf 100644
--- a/test-suite/src/sg721_base/tests/integration_tests.rs
+++ b/test-suite/src/sg721_base/tests/integration_tests.rs
@@ -8,7 +8,6 @@ mod tests {
     use sg2::tests::mock_collection_params;
     use sg721::ExecuteMsg as Sg721ExecuteMsg;
     use sg721::{CollectionInfo, InstantiateMsg};
-    use sg_multi_test::StargazeApp;
     use vending_factory::helpers::FactoryContract;
     use vending_factory::msg::{
         ExecuteMsg, InstantiateMsg as FactoryInstantiateMsg, VendingMinterInitMsgExtension,
@@ -16,6 +15,7 @@ mod tests {
 
     use crate::common_setup::contract_boxes::{
         contract_sg721_base, contract_vending_factory, contract_vending_minter, custom_mock_app,
+        App,
     };
     use crate::common_setup::setup_minter::common::constants::CREATION_FEE;
     use crate::common_setup::setup_minter::vending_minter::mock_params::{
@@ -33,7 +33,7 @@ mod tests {
         assert_eq!(res.unwrap_err().source().unwrap().to_string(), expected);
     }
 
-    fn proper_instantiate_factory() -> (StargazeApp, FactoryContract) {
+    fn proper_instantiate_factory() -> (App, FactoryContract) {
         let mut app = custom_mock_app();
         let factory_id = app.store_code(contract_vending_factory());
         let minter_id = app.store_code(contract_vending_minter());
@@ -58,7 +58,7 @@ mod tests {
         (app, factory_contract)
     }
 
-    fn proper_instantiate() -> (StargazeApp, Addr) {
+    fn proper_instantiate() -> (App, Addr) {
         let (mut app, factory_contract) = proper_instantiate_factory();
         let sg721_id = app.store_code(contract_sg721_base());
 
@@ -89,7 +89,7 @@ mod tests {
 
     fn custom_proper_instantiate(
         custom_create_minter_msg: CreateMinterMsg<VendingMinterInitMsgExtension>,
-    ) -> (StargazeApp, Addr) {
+    ) -> (App, Addr) {
         let (mut app, factory_contract) = proper_instantiate_factory();
         let sg721_id = app.store_code(contract_sg721_base());
 
@@ -808,9 +808,10 @@ mod tests {
         use cw_multi_test::{BankSudo, Executor, SudoMsg};
         use sg2::tests::mock_collection_params;
         use sg721_updatable::msg::QueryMsg;
-        use sg_multi_test::StargazeApp;
+
         use sg_std::NATIVE_DENOM;
         const ADMIN: &str = "admin";
+        use crate::common_setup::contract_boxes::App;
 
         use crate::common_setup::setup_minter::common::constants::CREATION_FEE;
         use crate::{
@@ -822,7 +823,7 @@ mod tests {
         };
         use vending_factory::msg::ExecuteMsg;
 
-        fn proper_instantiate() -> (StargazeApp, Addr) {
+        fn proper_instantiate() -> (App, Addr) {
             let (mut app, factory_contract) = proper_instantiate_factory();
             let sg721_id = app.store_code(contract_sg721_updatable());
 
diff --git a/test-suite/src/sg_eth_airdrop/setup/collection_whitelist_helpers.rs b/test-suite/src/sg_eth_airdrop/setup/collection_whitelist_helpers.rs
index 7f6674cf..58baa211 100644
--- a/test-suite/src/sg_eth_airdrop/setup/collection_whitelist_helpers.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/collection_whitelist_helpers.rs
@@ -1,15 +1,14 @@
 use crate::sg_eth_airdrop::constants::claim_constants::{NATIVE_DENOM, STARGAZE_WALLET_01};
 use crate::sg_eth_airdrop::constants::collection_constants::{MINT_PRICE, WHITELIST_AMOUNT};
 
+use crate::common_setup::contract_boxes::App;
 use crate::sg_eth_airdrop::setup::execute_msg::execute_contract_with_msg;
 use cosmwasm_std::{coins, Addr};
 use cw_multi_test::{BankSudo, Executor, SudoMsg};
-use sg_multi_test::StargazeApp;
-
 extern crate whitelist_immutable;
 
 pub fn update_admin_for_whitelist(
-    app: &mut StargazeApp,
+    app: &mut App,
     sender: Addr,
     target_admin: Addr,
     target_contract: Addr,
@@ -21,7 +20,7 @@ pub fn update_admin_for_whitelist(
     let _ = app.execute_contract(sender, target_contract, &update_admin_message, &[]);
 }
 
-pub fn send_funds_to_address(app: &mut StargazeApp, target_address_str: &str, amount: u128) {
+pub fn send_funds_to_address(app: &mut App, target_address_str: &str, amount: u128) {
     app.sudo(SudoMsg::Bank({
         BankSudo::Mint {
             to_address: target_address_str.to_string(),
@@ -32,7 +31,7 @@ pub fn send_funds_to_address(app: &mut StargazeApp, target_address_str: &str, am
     .ok();
 }
 
-pub fn execute_mint_fail_not_on_whitelist(app: &mut StargazeApp, minter_addr: Addr) {
+pub fn execute_mint_fail_not_on_whitelist(app: &mut App, minter_addr: Addr) {
     //before mintlist add, fail
     let stargaze_wallet_01 = Addr::unchecked(STARGAZE_WALLET_01);
     let mint_msg = vending_minter::msg::ExecuteMsg::Mint {};
@@ -48,7 +47,7 @@ pub fn execute_mint_fail_not_on_whitelist(app: &mut StargazeApp, minter_addr: Ad
 }
 
 pub fn execute_airdrop_claim(
-    app: &mut StargazeApp,
+    app: &mut App,
     eth_addr_str: String,
     eth_sig_str: String,
     target_wallet: Addr,
@@ -61,7 +60,7 @@ pub fn execute_airdrop_claim(
     let _ = execute_contract_with_msg(claim_message, app, target_wallet, airdrop_contract).unwrap();
 }
 
-pub fn execute_mint_success(app: &mut StargazeApp, sender: Addr, minter_addr: Addr) {
+pub fn execute_mint_success(app: &mut App, sender: Addr, minter_addr: Addr) {
     //execute the mint
     let mint_msg = vending_minter::msg::ExecuteMsg::Mint {};
     let res = app.execute_contract(
diff --git a/test-suite/src/sg_eth_airdrop/setup/configure_mock_minter.rs b/test-suite/src/sg_eth_airdrop/setup/configure_mock_minter.rs
index 516c9913..c96e0e24 100644
--- a/test-suite/src/sg_eth_airdrop/setup/configure_mock_minter.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/configure_mock_minter.rs
@@ -1,7 +1,7 @@
 use crate::common_setup::setup_accounts_and_block::setup_accounts;
 use crate::common_setup::setup_collection_whitelist::setup_whitelist_contract;
 
-use crate::common_setup::contract_boxes::contract_vending_factory;
+use crate::common_setup::contract_boxes::{contract_vending_factory, App};
 use crate::common_setup::setup_minter::vending_minter::mock_params::{
     mock_create_minter, mock_params,
 };
@@ -11,12 +11,12 @@ use cosmwasm_std::{coins, Addr, Timestamp};
 use cw_multi_test::Executor;
 use sg2::msg::Sg2ExecuteMsg;
 use sg2::tests::mock_collection_params_1;
-use sg_multi_test::StargazeApp;
+
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 use crate::sg_eth_airdrop::setup::mock_whitelist_contract::mock_whitelist;
 
-fn configure_mock_minter(app: &mut StargazeApp, creator: Addr) {
+fn configure_mock_minter(app: &mut App, creator: Addr) {
     let minter_code_id = app.store_code(mock_minter());
 
     println!("minter_code_id: {minter_code_id}");
@@ -45,7 +45,7 @@ fn configure_mock_minter(app: &mut StargazeApp, creator: Addr) {
     let res = app.execute_contract(creator, factory_addr, &msg, &creation_fee);
     assert!(res.is_ok());
 }
-pub fn configure_mock_minter_with_mock_whitelist(app: &mut StargazeApp) {
+pub fn configure_mock_minter_with_mock_whitelist(app: &mut App) {
     let (creator, _) = setup_accounts(app);
     configure_mock_minter(app, creator.clone());
     let whitelist_code_id = app.store_code(mock_whitelist());
diff --git a/test-suite/src/sg_eth_airdrop/setup/execute_msg.rs b/test-suite/src/sg_eth_airdrop/setup/execute_msg.rs
index 5a1a105e..4c5cee7f 100644
--- a/test-suite/src/sg_eth_airdrop/setup/execute_msg.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/execute_msg.rs
@@ -1,3 +1,4 @@
+use crate::common_setup::contract_boxes::App;
 use crate::sg_eth_airdrop::constants::claim_constants::OWNER;
 use crate::sg_eth_airdrop::constants::collection_constants::WHITELIST_AMOUNT;
 use crate::{
@@ -10,7 +11,6 @@ use cw_multi_test::error::Error;
 use cw_multi_test::{AppResponse, BankSudo, Executor, SudoMsg};
 use eyre::Result;
 use sg_eth_airdrop::msg::{ExecuteMsg, InstantiateMsg};
-use sg_multi_test::StargazeApp;
 use sg_std::NATIVE_DENOM;
 
 pub fn instantiate_contract(params: InstantiateParams) -> Result<cosmwasm_std::Addr, anyhow_error> {
@@ -56,7 +56,7 @@ pub fn instantiate_contract(params: InstantiateParams) -> Result<cosmwasm_std::A
 
 pub fn execute_contract_with_msg(
     msg: ExecuteMsg,
-    app: &mut StargazeApp,
+    app: &mut App,
     user: Addr,
     target_address: Addr,
 ) -> Result<AppResponse, Error> {
@@ -66,7 +66,7 @@ pub fn execute_contract_with_msg(
 
 pub fn execute_contract_error_with_msg(
     msg: ExecuteMsg,
-    app: &mut StargazeApp,
+    app: &mut App,
     user: Addr,
     target_address: Addr,
 ) -> String {
diff --git a/test-suite/src/sg_eth_airdrop/setup/mock_minter_contract.rs b/test-suite/src/sg_eth_airdrop/setup/mock_minter_contract.rs
index ee38b537..3127a9ae 100644
--- a/test-suite/src/sg_eth_airdrop/setup/mock_minter_contract.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/mock_minter_contract.rs
@@ -1,10 +1,10 @@
 use cosmwasm_std::entry_point;
 use cosmwasm_std::{
-    to_json_binary, Binary, Coin, Deps, DepsMut, Env, MessageInfo, StdResult, Timestamp,
+    to_json_binary, Binary, Coin, Deps, DepsMut, Empty, Env, MessageInfo, Response, StdResult,
+    Timestamp,
 };
 use cw_multi_test::{Contract, ContractWrapper};
 use sg_eth_airdrop::error::ContractError;
-use sg_std::{Response, StargazeMsgWrapper};
 use vending_factory::msg::VendingMinterCreateMsg;
 use vending_minter::msg::{ExecuteMsg, QueryMsg};
 
@@ -66,7 +66,7 @@ fn query_config() -> ConfigResponse {
     }
 }
 
-pub fn mock_minter() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn mock_minter() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(execute, instantiate, query);
     Box::new(contract)
 }
diff --git a/test-suite/src/sg_eth_airdrop/setup/mock_whitelist_contract.rs b/test-suite/src/sg_eth_airdrop/setup/mock_whitelist_contract.rs
index 45353a9b..5c99594b 100644
--- a/test-suite/src/sg_eth_airdrop/setup/mock_whitelist_contract.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/mock_whitelist_contract.rs
@@ -1,8 +1,9 @@
 use cosmwasm_std::entry_point;
-use cosmwasm_std::{to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, StdResult};
+use cosmwasm_std::{
+    to_json_binary, Binary, Deps, DepsMut, Empty, Env, MessageInfo, Response, StdResult,
+};
 use cw_multi_test::{Contract, ContractWrapper};
 use sg_eth_airdrop::error::ContractError;
-use sg_std::{Response, StargazeMsgWrapper};
 use sg_whitelist::msg::{ExecuteMsg, InstantiateMsg, QueryMsg};
 
 #[cfg_attr(not(feature = "library"), entry_point)]
@@ -39,7 +40,7 @@ fn execute_add_members() -> Result<Response, ContractError> {
     Ok(res)
 }
 
-pub fn mock_whitelist() -> Box<dyn Contract<StargazeMsgWrapper>> {
+pub fn mock_whitelist() -> Box<dyn Contract<Empty>> {
     let contract = ContractWrapper::new(execute, instantiate, query);
     Box::new(contract)
 }
diff --git a/test-suite/src/sg_eth_airdrop/setup/test_msgs.rs b/test-suite/src/sg_eth_airdrop/setup/test_msgs.rs
index 87e62135..3d0271be 100644
--- a/test-suite/src/sg_eth_airdrop/setup/test_msgs.rs
+++ b/test-suite/src/sg_eth_airdrop/setup/test_msgs.rs
@@ -1,13 +1,12 @@
+use crate::common_setup::contract_boxes::App;
 use cosmwasm_std::Addr;
-use sg_multi_test::StargazeApp;
-
 pub struct InstantiateParams<'a> {
     pub addresses: Vec<String>,
     pub funds_amount: u128,
     pub expected_airdrop_contract_id: u64,
     pub minter_address: Addr,
     pub admin_account: Addr,
-    pub app: &'a mut StargazeApp,
+    pub app: &'a mut App,
     pub per_address_limit: u32,
     pub claim_msg_plaintext: String,
 }
diff --git a/test-suite/src/sg_eth_airdrop/tests/test_claim.rs b/test-suite/src/sg_eth_airdrop/tests/test_claim.rs
index 4c93c543..04f62ae0 100644
--- a/test-suite/src/sg_eth_airdrop/tests/test_claim.rs
+++ b/test-suite/src/sg_eth_airdrop/tests/test_claim.rs
@@ -1,4 +1,4 @@
-use crate::common_setup::contract_boxes::custom_mock_app;
+use crate::common_setup::contract_boxes::{custom_mock_app, App};
 use crate::sg_eth_airdrop::constants::collection_constants::WHITELIST_AMOUNT;
 use crate::sg_eth_airdrop::setup::configure_mock_minter::configure_mock_minter_with_mock_whitelist;
 use crate::sg_eth_airdrop::setup::setup_signatures::{
@@ -11,7 +11,6 @@ use sg_eth_airdrop::msg::{ExecuteMsg, QueryMsg};
 
 use ethers_core::rand::thread_rng;
 use ethers_signers::{LocalWallet, Signer};
-use sg_multi_test::StargazeApp;
 
 use crate::sg_eth_airdrop::constants::claim_constants::{
     CONFIG_PLAINTEXT, MOCK_AIRDROP_ADDR_STR, MOCK_MINTER_ADDR_STR, NATIVE_DENOM, OWNER,
@@ -24,7 +23,7 @@ use crate::sg_eth_airdrop::setup::execute_msg::{
 
 use sg_eth_airdrop::contract::INSTANTIATION_FEE;
 
-fn query_minter_as_expected(app: &mut StargazeApp, airdrop_contract: Addr, minter_addr: Addr) {
+fn query_minter_as_expected(app: &mut App, airdrop_contract: Addr, minter_addr: Addr) {
     let query_msg = QueryMsg::GetMinter {};
     let result: Addr = app
         .wrap()
@@ -176,7 +175,7 @@ fn test_valid_eth_sig_claim() {
     .unwrap();
     let expected_attributes = [
         Attribute {
-            key: "_contract_addr".to_string(),
+            key: "_contract_address".to_string(),
             value: airdrop_contract.to_string(),
         },
         Attribute {
@@ -261,7 +260,7 @@ fn test_can_not_claim_twice() {
 
     let expected_attributes = [
         Attribute {
-            key: "_contract_addr".to_string(),
+            key: "_contract_address".to_string(),
             value: airdrop_contract.to_string(),
         },
         Attribute {
@@ -491,7 +490,7 @@ fn test_one_eth_claim_two_stargaze_addresses_invalid() {
 
     let expected_attributes = [
         Attribute {
-            key: "_contract_addr".to_string(),
+            key: "_contract_address".to_string(),
             value: airdrop_contract.to_string(),
         },
         Attribute {
diff --git a/test-suite/src/vending_factory/tests/integration_tests.rs b/test-suite/src/vending_factory/tests/integration_tests.rs
index 41f1e5f7..2ebdf4cc 100644
--- a/test-suite/src/vending_factory/tests/integration_tests.rs
+++ b/test-suite/src/vending_factory/tests/integration_tests.rs
@@ -2,16 +2,16 @@
 mod tests {
     use cosmwasm_std::Addr;
     use cw_multi_test::Executor;
-    use sg_multi_test::StargazeApp;
+
     use vending_factory::helpers::FactoryContract;
     use vending_factory::msg::InstantiateMsg;
 
-    use crate::common_setup::contract_boxes::{contract_vending_factory, custom_mock_app};
+    use crate::common_setup::contract_boxes::{contract_vending_factory, custom_mock_app, App};
     use crate::common_setup::setup_minter::vending_minter::mock_params::mock_params;
 
     const GOVERNANCE: &str = "governance";
 
-    fn proper_instantiate() -> (StargazeApp, FactoryContract) {
+    fn proper_instantiate() -> (App, FactoryContract) {
         let mut app = custom_mock_app();
         let factory_id = app.store_code(contract_vending_factory());
         let minter_id = 2;
diff --git a/test-suite/src/vending_minter/tests/splits.rs b/test-suite/src/vending_minter/tests/splits.rs
index 1a002c11..709a889f 100644
--- a/test-suite/src/vending_minter/tests/splits.rs
+++ b/test-suite/src/vending_minter/tests/splits.rs
@@ -1,5 +1,5 @@
 use crate::common_setup::{
-    contract_boxes::{contract_splits, custom_mock_app},
+    contract_boxes::{contract_splits, custom_mock_app, App},
     msg::MinterCollectionResponse,
     setup_accounts_and_block::{instantiate_group, setup_accounts, setup_block_time},
     setup_minter::{
@@ -11,7 +11,7 @@ use cosmwasm_std::{coins, Addr, Coin, Timestamp};
 use cw4::Member;
 use cw_multi_test::{next_block, Executor};
 use sg2::tests::mock_collection_params_1;
-use sg_multi_test::StargazeApp;
+
 use sg_splits::msg::{ExecuteMsg as SplitsExecuteMsg, Group};
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
@@ -30,7 +30,7 @@ pub fn member<T: Into<String>>(addr: T, weight: u64) -> Member {
 }
 
 #[track_caller]
-fn instantiate_splits(app: &mut StargazeApp, group_addr: Addr) -> Addr {
+fn instantiate_splits(app: &mut App, group_addr: Addr) -> Addr {
     let splits_id = app.store_code(contract_splits());
     println!("splits_id: {splits_id}");
     let msg = sg_splits::msg::InstantiateMsg {
@@ -42,7 +42,7 @@ fn instantiate_splits(app: &mut StargazeApp, group_addr: Addr) -> Addr {
 }
 
 #[track_caller]
-fn setup_splits_test_case(app: &mut StargazeApp, init_funds: Vec<Coin>) -> (Addr, Addr) {
+fn setup_splits_test_case(app: &mut App, init_funds: Vec<Coin>) -> (Addr, Addr) {
     // 1. Instantiate group contract with members (and OWNER as admin)
     let members = vec![
         member(OWNER, 50),
diff --git a/test-suite/src/vending_minter/tests/whitelist.rs b/test-suite/src/vending_minter/tests/whitelist.rs
index 43672572..c3452504 100644
--- a/test-suite/src/vending_minter/tests/whitelist.rs
+++ b/test-suite/src/vending_minter/tests/whitelist.rs
@@ -111,13 +111,7 @@ fn set_invalid_whitelist() {
             &[],
         )
         .unwrap_err();
-    assert!(err
-        .source()
-        .unwrap()
-        .source()
-        .unwrap()
-        .to_string()
-        .contains("not found"));
+    assert!(err.source().unwrap().to_string().contains("not found"));
 
     // move time to make wl start
     setup_block_time(&mut router, GENESIS_MINT_START_TIME + 201, Some(11));
diff --git a/test-suite/src/whitelist/tests/integration_tests.rs b/test-suite/src/whitelist/tests/integration_tests.rs
index 393f2a12..c605aacc 100644
--- a/test-suite/src/whitelist/tests/integration_tests.rs
+++ b/test-suite/src/whitelist/tests/integration_tests.rs
@@ -1,6 +1,6 @@
 use cosmwasm_std::{coin, coins, Addr, Timestamp};
 use cw_multi_test::{BankSudo, Executor, SudoMsg as CWSudoMsg};
-use sg_multi_test::StargazeApp;
+
 use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
 use sg_whitelist::{
@@ -8,7 +8,7 @@ use sg_whitelist::{
     state::AdminList,
 };
 
-use crate::common_setup::contract_boxes::{contract_collection_whitelist, custom_mock_app};
+use crate::common_setup::contract_boxes::{contract_collection_whitelist, custom_mock_app, App};
 
 const COLLECTION_WHITELIST_ADDR: &str = "contract0";
 const ADMIN: &str = "admin";
@@ -18,7 +18,7 @@ const UNIT_AMOUNT: u128 = 0;
 const GENESIS_START_TIME: Timestamp = Timestamp::from_nanos(GENESIS_MINT_START_TIME);
 const END_TIME: Timestamp = Timestamp::from_nanos(GENESIS_MINT_START_TIME + 1000);
 
-fn instantiate_contract(admin_account: &str, app: &mut StargazeApp) {
+fn instantiate_contract(admin_account: &str, app: &mut App) {
     let admin = Addr::unchecked(admin_account);
     let funds_amount = 100000000;
 
@@ -53,7 +53,7 @@ fn instantiate_contract(admin_account: &str, app: &mut StargazeApp) {
     );
 }
 
-fn add_members_with_specified_admin(admin: &str, members: Vec<String>, app: &mut StargazeApp) {
+fn add_members_with_specified_admin(admin: &str, members: Vec<String>, app: &mut App) {
     let admin_addr = Addr::unchecked(admin);
     let collection_whitelist_contract = Addr::unchecked("contract0");
     let initial_members = vec!["member0".to_string()];
@@ -92,7 +92,7 @@ fn add_members_with_specified_admin(admin: &str, members: Vec<String>, app: &mut
     assert_eq!(query_result, expected_result);
 }
 
-fn remove_members_with_specified_admin(admin: &str, members: Vec<String>, app: &mut StargazeApp) {
+fn remove_members_with_specified_admin(admin: &str, members: Vec<String>, app: &mut App) {
     let admin_addr = Addr::unchecked(admin);
     let collection_whitelist_contract = Addr::unchecked("contract0");
     let initial_members = vec![
@@ -133,7 +133,7 @@ fn remove_members_with_specified_admin(admin: &str, members: Vec<String>, app: &
     assert_eq!(query_result, expected_result);
 }
 
-fn add_members_blocked(admin: &str, members: Vec<String>, app: &mut StargazeApp) {
+fn add_members_blocked(admin: &str, members: Vec<String>, app: &mut App) {
     let admin_addr = Addr::unchecked(admin);
     let collection_whitelist_contract = Addr::unchecked("contract0");
     let initial_members = vec!["member0".to_string()];
diff --git a/test-suite/src/whitelist_immutable/tests/integration_tests.rs b/test-suite/src/whitelist_immutable/tests/integration_tests.rs
index 306284e6..b6bba6e7 100644
--- a/test-suite/src/whitelist_immutable/tests/integration_tests.rs
+++ b/test-suite/src/whitelist_immutable/tests/integration_tests.rs
@@ -2,11 +2,11 @@
 mod tests {
     use cosmwasm_std::Addr;
     use cw_multi_test::Executor;
-    use sg_multi_test::StargazeApp;
+
     use whitelist_immutable::msg::*;
     use whitelist_immutable::{helpers::WhitelistImmutableContract, state::Config};
 
-    use crate::common_setup::contract_boxes::{contract_whitelist_immutable, custom_mock_app};
+    use crate::common_setup::contract_boxes::{contract_whitelist_immutable, custom_mock_app, App};
 
     const CREATOR: &str = "creator";
 
@@ -35,7 +35,7 @@ mod tests {
     }
 
     pub fn instantiate_with_addresses(
-        app: &mut StargazeApp,
+        app: &mut App,
         addrs: Vec<String>,
         per_address_limit: u32,
     ) -> Addr {
@@ -56,7 +56,7 @@ mod tests {
         .unwrap()
     }
 
-    pub fn query_address_count(app: &mut StargazeApp, addrs: Vec<String>, wl_addr: Addr) {
+    pub fn query_address_count(app: &mut App, addrs: Vec<String>, wl_addr: Addr) {
         let count: u64 = app
             .wrap()
             .query_wasm_smart(wl_addr, &QueryMsg::AddressCount {})
@@ -64,7 +64,7 @@ mod tests {
         assert_eq!(count, addrs.len() as u64);
     }
 
-    pub fn query_admin(app: &mut StargazeApp, wl_addr: Addr) {
+    pub fn query_admin(app: &mut App, wl_addr: Addr) {
         let admin: String = app
             .wrap()
             .query_wasm_smart(wl_addr, &QueryMsg::Admin {})
@@ -72,7 +72,7 @@ mod tests {
         assert_eq!(admin, CREATOR.to_string());
     }
 
-    pub fn query_includes_address(app: &mut StargazeApp, wl_addr: Addr, addr_to_check: String) {
+    pub fn query_includes_address(app: &mut App, wl_addr: Addr, addr_to_check: String) {
         let includes: bool = app
             .wrap()
             .query_wasm_smart(
@@ -85,7 +85,7 @@ mod tests {
         assert!(includes);
     }
 
-    pub fn query_per_address_limit(app: &mut StargazeApp, wl_addr: Addr, per_address_limit: u32) {
+    pub fn query_per_address_limit(app: &mut App, wl_addr: Addr, per_address_limit: u32) {
         let limit: u32 = app
             .wrap()
             .query_wasm_smart(wl_addr, &QueryMsg::PerAddressLimit {})
diff --git a/test-suite/src/whitelist_merkletree/tests/integration_tests.rs b/test-suite/src/whitelist_merkletree/tests/integration_tests.rs
index 837030d2..fb60640a 100644
--- a/test-suite/src/whitelist_merkletree/tests/integration_tests.rs
+++ b/test-suite/src/whitelist_merkletree/tests/integration_tests.rs
@@ -1,9 +1,10 @@
 #[cfg(test)]
 mod tests {
     use cosmwasm_std::{coin, coins, Addr, Timestamp};
-    use cw_multi_test::{BankSudo, Executor, SudoMsg as CWSudoMsg};
+    use cw_multi_test::Executor;
+    use cw_multi_test::{BankSudo, SudoMsg as CWSudoMsg};
     use rs_merkle::MerkleTree;
-    use sg_multi_test::StargazeApp;
+
     use sg_std::{GENESIS_MINT_START_TIME, NATIVE_DENOM};
 
     use whitelist_mtree::{
@@ -11,7 +12,9 @@ mod tests {
         tests::{hasher::SortingSha256Hasher, test_helpers::hash_and_build_tree},
     };
 
-    use crate::common_setup::contract_boxes::{contract_whitelist_merkletree, custom_mock_app};
+    use crate::common_setup::contract_boxes::{
+        contract_whitelist_merkletree, custom_mock_app, App,
+    };
 
     type Tree = MerkleTree<SortingSha256Hasher>;
 
@@ -44,7 +47,7 @@ mod tests {
     }
 
     pub fn instantiate_with_root(
-        app: &mut StargazeApp,
+        app: &mut App,
         per_address_limit: u32,
         merkle_root: String,
     ) -> Addr {
@@ -78,7 +81,7 @@ mod tests {
         .unwrap()
     }
 
-    pub fn query_admin_list(app: &mut StargazeApp, wl_addr: Addr) {
+    pub fn query_admin_list(app: &mut App, wl_addr: Addr) {
         let res: AdminListResponse = app
             .wrap()
             .query_wasm_smart(wl_addr, &QueryMsg::AdminList {})
@@ -88,7 +91,7 @@ mod tests {
     }
 
     pub fn query_includes_address(
-        app: &mut StargazeApp,
+        app: &mut App,
         wl_addr: Addr,
         addr_to_check: String,
         proof_hashes: Vec<String>,
@@ -106,7 +109,7 @@ mod tests {
         assert!(res.has_member);
     }
 
-    pub fn query_per_address_limit(app: &mut StargazeApp, wl_addr: Addr, per_address_limit: u32) {
+    pub fn query_per_address_limit(app: &mut App, wl_addr: Addr, per_address_limit: u32) {
         let config: ConfigResponse = app
             .wrap()
             .query_wasm_smart(wl_addr, &QueryMsg::Config {})