Delete Wallet Whitelists
Delete a wallet whitelist if the wallet policy is unlocked. See the Guide.
-
You can delete a wallet whitelist if the wallet policy remains unlocked. Whitelist policies for self-custody wallets lock 48 hours after creation. If you need to delete a locked whitelist, request to unlock it by contacting support@bitgo.com.
If deleting the whitelist does not require approval, BitGo removes it immediately. However, the wallet policy still exists and triggers anytime a transaction initiates to a non-whitelisted address.
Prerequisites:
- Complete Get Started
- Create a wallet
- Create a whitelist
-
If deleting your wallet policy requires approval, another admin must approve it using the pending approval ID returned in the previous step response. The approving admin calls the Update Pending Approval endpoint with the
stateset toapprovedand a valid OTP.The approver approves your wallet whitelist deletion, and BitGo removes it.
// 1. Delete Whitelist
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"
}
}'
// 2. Approve Whitelist (Optional)
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"'"
}'
// 1. Delete Whitelist
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);
})();
// 2. Approve Whitelist (Optional)
const baseCoin = this.bitgoSDK.coin(initialPendingApproval.coin);
const pendingApproval = await baseCoin.pendingApprovals().get({ id: initialPendingApproval.id });
const result = await pendingApproval.approve(params);
// 1. Delete Whitelist Response
{
"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": {}
}
// 2. Approve Whitelist (Optional) Response
{
"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": []
}