Delete Wallet Whitelists
Overview
You can delete a wallet whitelist if the wallet policy is unlocked. Polices lock 48 hours from creation. If you need to delete a whitelist once the policy locks, request to unlock it by contacting [email protected].
Prerequisites
1. Delete Whitelist
Endpoint: Delete Wallet-Policy Rule
export COIN="<ASSET_ID>"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ID="<NAME_OF_WHITELIST>"
curl -X DELETE \
"https://app.bitgo-test.com/api/v2/$COIN/wallet/$WALLET_ID/policy/rule" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"coin": "'"$COIN"'",
"id": "'"$ID"'",
"type": "advancedWhitelist",
"condition": {
"add": {
"type": "address",
"item": [
"2N6CWMMYXdufJyBa16KNorHs8AakXcqyHhf",
"2N4MTidamwHgzcgVnvWeSSW2s7jfszB7SNu"
]
}
},
"action": {
"type": "deny"
}
}'
const BitGoJS = require('bitgo');
const bitgo = new BitGoJS.BitGo({ env: 'test' });
const promise = require('bluebird');
// Set your access token here
const accessToken = '<YOUR_ACCESS_TOKEN>';
// Set your coin of choice here
const coin = '<ASSET_ID>';
// Set your wallet Id here
const walletId ='<YOUR_WALLET_ID>';
promise.coroutine(function *() {
bitgo.authenticateWithAccessToken({ accessToken });
const wallet = yield bitgo.coin(coin).wallets().get({ id: walletId });
const policy = {
action: {
type: 'getApproval'
},
condition: {
remove: {
item: '<ADDRESS_TO_WHITELIST>',
type: 'address',
},
},
id: '<NAME_OF_WHITELIST>',
type: 'advancedWhitelist'
};
const result = yield wallet.removePolicyRule(policy);
console.dir(result);
})();
Step Result
If deleting the whitelist doesn't require approval, it's now removed. However, the wallet policy still exists and triggers anytime a transaction initiates to a non-whitelisted address.
{
"id": "66e9f4bb549f6c3957f8977fe3ed6ab4",
"users": [
{
"user": "62ab90e06dfda30007974f0a52a12995",
"permissions": ["admin", "spend", "view"]
}
],
"coin": "tbtc4",
"label": "Policy Wallet 2",
"m": 2,
"n": 3,
"keys": [
"66e9f4ac6bfc0956265268311208afd7",
"66e9f4ac9231837dc9c945a6c4a725d0",
"66e9f4adbfe06bac12b54a93d22b6dfc"
],
"keySignatures": {},
"enterprise": "62c5ae8174ac860007aff138a2d74df7",
"bitgoOrg": "BitGo Trust",
"tags": [
"66e9f4bb549f6c3957f8977fe3ed6ab4",
"62c5ae8174ac860007aff138a2d74df7"
],
"disableTransactionNotifications": false,
"freeze": {},
"deleted": false,
"approvalsRequired": 1,
"isCold": false,
"coinSpecific": {},
"admin": {
"policy": {
"date": "2024-09-18T22:27:17.509Z",
"id": "66e9f4bb549f6c3957f897824915d45f",
"label": "default",
"rules": [],
"version": 7,
"latest": true
}
},
"clientFlags": [],
"walletFlags": [],
"allowBackupKeySigning": false,
"startDate": "2024-09-17T21:29:31.000Z",
"type": "hot",
"buildDefaults": {},
"customChangeKeySignatures": {},
"hasLargeNumberOfAddresses": false,
"multisigType": "onchain",
"hasReceiveTransferPolicy": false,
"config": {}
}
{
"pendingApproval": {
"id": "66edb74b5c68723ded0cca89f2be239a", # admin who approves the wallet policy needs this ID
"coin": "tbtc4",
"wallet": "66e9aba320e050e4334b23285bfe3b2e",
"wallets": [],
"enterprise": "62c5ae8174ac860007aff138a2d74df7",
"bitgoOrg": "BitGo Trust",
"creator": "62ab90e06dfda30007974f0a52a12995",
"createDate": "2024-09-20T17:56:27.950Z",
"info": {
"type": "policyRuleRequest",
"policyRuleRequest": {
"action": "remove",
"update": {
"id": "My First Wallet Policy for a Whitelist",
"type": "advancedWhitelist",
"action": { "type": "deny", "userIds": [] },
"condition": {
"add": {
"type": "address",
"item": [
"2N6CWMMYXdufJyBa16KNorHs8AakXcqyHhf",
"2N4MTidamwHgzcgVnvWeSSW2s7jfszB7SNu"
]
}
},
"coin": "tbtc4"
}
}
},
"approvers": [],
"state": "pending",
"scope": "wallet",
"userIds": [
"62ab90e06dfda30007974f0a52a12995",
"627ff9325a5c1b0007c05a40d15e1522"
],
"approvalsRequired": 1,
"singleRunResults": [],
"resolvers": [],
"actions": [],
"resolutionOrder": []
}
}
2. Approve Whitelist (Optional)
Note: If deleting your wallet policy requires approval, another admin must approve it.
Endpoint: Update Pending Approval
export APPROVAL_ID="<APPROVAL_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export OTP="<YOUR_OTP>"
curl -X PUT \
https://app.bitgo-test.com/api/v2/pendingApprovals/$APPROVAL_ID \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"state": "approved",
"otp": "'"$OTP"'"
}'
const baseCoin = this.bitgoSDK.coin(initialPendingApproval.coin);
const pendingApproval = await baseCoin.pendingApprovals().get({ id: initialPendingApproval.id });
const result = await pendingApproval.approve(params);
Step Result
Deleting your wallet whitelist is approved and is now in removed.
{
"id": "66edb74b5c68723ded0cca89f2be239a",
"coin": "tbtc4",
"wallet": "66e9aba320e050e4334b23285bfe3b2e",
"wallets": [],
"enterprise": "62c5ae8174ac860007aff138a2d74df7",
"bitgoOrg": "BitGo Trust",
"creator": "62ab90e06dfda30007974f0a52a12995",
"createDate": "2024-09-20T17:56:27.950Z",
"approvedDate": "2024-09-20T17:58:47.976Z",
"info": {
"type": "policyRuleRequest",
"policyRuleRequest": {
"action": "remove",
"update": {
"id": "My First Wallet Policy for a Whitelist",
"type": "advancedWhitelist",
"action": { "type": "deny", "userIds": [] },
"condition": {
"add": {
"type": "address",
"item": [
"2N6CWMMYXdufJyBa16KNorHs8AakXcqyHhf",
"2N4MTidamwHgzcgVnvWeSSW2s7jfszB7SNu"
]
}
},
"coin": "tbtc4"
}
}
},
"approvers": [],
"state": "approved",
"scope": "wallet",
"userIds": [
"62ab90e06dfda30007974f0a52a12995",
"627ff9325a5c1b0007c05a40d15e1522"
],
"approvalsRequired": 1,
"singleRunResults": [],
"resolvers": [
{
"user": "627ff9325a5c1b0007c05a40d15e1522",
"date": "2024-09-20T17:58:47.898Z",
"resolutionType": "pending",
"resolutionAction": "approve"
}
],
"actions": [],
"resolutionOrder": []
}
Next Steps
After deleting the whitelist, if you want to remove the wallet policy, see Deactivate Policy Rules.
See Also
Updated 22 days ago