Semi Custodial Wallet
A simple in-app crypto wallet to securely and quickly onboard non-native crypto users to web3 dApps.
postman API collection: https://documenter.getpostman.com/view/18419720/UzQvt5Kf#e58b4757-05ad-45aa-b8fc-82a0f3a66f88
Create Semi Custodial Wallet (Deprecated)
A type of wallet where Shyft holds half of your private keys while the other half is with the client or the end user.
POST /sol/v1/wallet/create_semi_wallet
We create a standard Solana wallet using keypair.generate(). The private key is then encrypted with the provided password and random encryption parameters. In order to decrypt the key, we need the same password and the same encryption parameters.
So, password and encryption parameters act as 2 keys to unlock your wallet.
Shyft never ever stores or logs your password at any time. This can be confirmed with our open source code.
const myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify({
"password": "Ishkaran"
});
const requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/wallet/create_semi_wallet/", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Decrypt Semi Custodial Wallet (Deprecated)
Decrypt a semi-custodial wallet and get an encrypted private key and decryption key.
You can only get decryption data for semi-custodial wallets created by you.
GET /sol/v1/wallet/decrypt_semi_wallet
const myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify({
"wallet": "VtkQHQt6GFggoNiWT7Tvafce6cJvCZbzEU8gBTez5rz",
"password": "Ishkaran"
});
const requestOptions = {
method: 'GET',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/wallet/decrypt_semi_wallet", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Create Semi Custodial Wallet
A type of wallet where Shyft holds half of your private keys while the other half is with the client or the end user.
POST /sol/v1/semi_wallet/create
We create a standard Solana wallet using keypair.generate(). The private key is then encrypted with the provided password and random encryption parameters. In order to decrypt the key, we need the same password and the same encryption parameters.
So, password and encryption parameters act as 2 keys to unlock your wallet.
Shyft never ever stores or logs your password at any time. This can be confirmed with our open source code.
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"password": "Qwerrty@z2"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/semi_wallet/create", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Decrypt Semi Custodial Wallet
Decrypt a semi-custodial wallet and get an encrypted private key and decryption key.
You can only get decryption data for semi-custodial wallets created by you.
Query Params
password: Current password of your wallet
wallet: Wallet address
GET /sol/v1/semi_wallet/decrypt
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/semi_wallet/decrypt?password=Qwerrty@z2&wallet=7pu5mcx2N9bQwqfEe8aQkTzG6zrd9rsFArcvbeY93RkN", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Get Keypair of Semi Custodial Wallet
Query Params
password: Current password of your wallet
wallet: Wallet address
GET /sol/v1/semi_wallet/get_keypair
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/semi_wallet/get_keypair?wallet=7pu5mcx2N9bQwqfEe8aQkTzG6zrd9rsFArcvbeY93RkN&password=Qwerrty@z2", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Change password of Semi Custodial Wallet
BODY (raw)
current_password: Current password of your wallet
new_password: New password of your wallet
wallet: Wallet address
POST /sol/v1/semi_wallet/change_password
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"current_password": "Qwerrty@z2",
"new_password": "nothingto",
"wallet": "7pu5mcx2N9bQwqfEe8aQkTzG6zrd9rsFArcvbeY93RkN"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.shyft.to/sol/v1/semi_wallet/change_password", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Last updated
Was this helpful?