diff --git a/Cargo.lock b/Cargo.lock
index b1e0d8adc6..7d4ed2ccf5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -333,6 +333,7 @@ dependencies = [
"ic-cdk",
"ic-representation-independent-hash",
"ic-test-state-machine-client",
+ "identity_jose",
"internet_identity_interface",
"lazy_static",
"regex",
@@ -340,6 +341,7 @@ dependencies = [
"serde_bytes",
"serde_cbor",
"sha2 0.10.8",
+ "vc_util",
]
[[package]]
@@ -2042,6 +2044,9 @@ dependencies = [
"ic-response-verification",
"ic-stable-structures",
"ic-test-state-machine-client",
+ "identity_core",
+ "identity_credential",
+ "identity_jose",
"include_dir",
"internet_identity_interface",
"lazy_static",
@@ -2053,7 +2058,9 @@ dependencies = [
"serde",
"serde_bytes",
"serde_cbor",
+ "serde_json",
"sha2 0.10.8",
+ "vc_util",
]
[[package]]
diff --git a/src/canister_tests/Cargo.toml b/src/canister_tests/Cargo.toml
index 22b5355dd0..21853c0241 100644
--- a/src/canister_tests/Cargo.toml
+++ b/src/canister_tests/Cargo.toml
@@ -16,6 +16,8 @@ serde_bytes = "0.11"
sha2 = "0.10"
internet_identity_interface = { path = "../internet_identity_interface" }
+vc_util = { path = "../vc_util"}
+identity_jose = { git = "https://github.com/frederikrothenberger/identity.rs.git", branch = "frederik/wasm-test", default-features = false, features = ["iccs"]}
# All IC deps
candid = "0.9"
diff --git a/src/canister_tests/src/api/internet_identity.rs b/src/canister_tests/src/api/internet_identity.rs
index 507a46dbcd..d955245aa8 100644
--- a/src/canister_tests/src/api/internet_identity.rs
+++ b/src/canister_tests/src/api/internet_identity.rs
@@ -9,6 +9,9 @@ use internet_identity_interface::internet_identity::types;
/// The experimental v2 API
pub mod api_v2;
+// API of verifiable credentials MVP.
+pub mod vc_mvp;
+
/** The functions here are derived (manually) from Internet Identity's Candid file */
/// A fake "health check" method that just checks the canister is alive a well.
diff --git a/src/canister_tests/src/api/internet_identity/vc_mvp.rs b/src/canister_tests/src/api/internet_identity/vc_mvp.rs
new file mode 100644
index 0000000000..87877a0837
--- /dev/null
+++ b/src/canister_tests/src/api/internet_identity/vc_mvp.rs
@@ -0,0 +1,38 @@
+use candid::Principal;
+use ic_cdk::api::management_canister::main::CanisterId;
+use ic_test_state_machine_client::{call_candid_as, query_candid_as, CallError, StateMachine};
+use internet_identity_interface::internet_identity::types::vc_mvp::{
+ GetIdAliasRequest, GetIdAliasResponse, PrepareIdAliasRequest, PrepareIdAliasResponse,
+};
+
+pub fn prepare_id_alias(
+ env: &StateMachine,
+ canister_id: CanisterId,
+ sender: Principal,
+ prepare_id_alias_req: PrepareIdAliasRequest,
+) -> Result