This is basically what USDC is, and Circle is the organization that controls it. It is not a decentralized currency, it's a centralized digital currency. If Circle blacklists you and your funds, you won't be able to trade it for USD in the traditional exchanges, you'd only be able to do it P2P. This has happened already, with Tornado Cash, so it has precedent, not something I'm making up.
> USDC is issued and redeemed in accordance with Centre policies including the Centre Blacklisting Policy. Centre reserves the right to block the transfer of USDC to and from an address on chain as permitted under the Centre Blacklisting Policy.
https://www.circle.com/en/legal/usdc-terms & https://www.centre.io/hubfs/PDF/Centre_Blacklisting_Policy_2...
If Circle says you cannot exchange your USDC for USD, then that's the rule. If you don't want that possibility, you wouldn't use USDC in the first place.
It inherits from Blacklistable which allows a blacklister to blacklist accounts, and almost all functions on the contract have the notBlacklisted modifier which prevents them from being called by blacklisted accounts.
/**
* @title Blacklistable Token
* @dev Allows accounts to be blacklisted by a "blacklister" role
*/
contract Blacklistable is Ownable {
address public blacklister;
mapping(address => bool) internal blacklisted;
event Blacklisted(address indexed _account);
event UnBlacklisted(address indexed _account);
event BlacklisterChanged(address indexed newBlacklister);
/**
* @dev Throws if called by any account other than the blacklister
*/
modifier onlyBlacklister() {
require(
msg.sender == blacklister,
"Blacklistable: caller is not the blacklister"
);
_;
}
/**
* @dev Throws if argument account is blacklisted
* @param _account The address to check
*/
modifier notBlacklisted(address _account) {
require(
!blacklisted[_account],
"Blacklistable: account is blacklisted"
);
_;
}
/**
* @dev Checks if account is blacklisted
* @param _account The address to check
*/
function isBlacklisted(address _account) external view returns (bool) {
return blacklisted[_account];
}
/**
* @dev Adds account to blacklist
* @param _account The address to blacklist
*/
function blacklist(address _account) external onlyBlacklister {
blacklisted[_account] = true;
emit Blacklisted(_account);
}
/**
* @dev Removes account from blacklist
* @param _account The address to remove from the blacklist
*/
function unBlacklist(address _account) external onlyBlacklister {
blacklisted[_account] = false;
emit UnBlacklisted(_account);
}
function updateBlacklister(address _newBlacklister) external onlyOwner {
require(
_newBlacklister != address(0),
"Blacklistable: new blacklister is the zero address"
);
blacklister = _newBlacklister;
emit BlacklisterChanged(blacklister);
}
}Some risks arise mostly out of urgency, and not having countermeasures could have catastrophic results which otherwise would have been avoided by pausing the process. If Circle were operating as a fractional reserve bank where it borrowed from you by virtue of a positive bank balance, lent me 80% of that, and only kept 20%; pausing honouring withdrawals would likely be illegal.
My view of this is that it's unrealistic to expect a company to store 100% of its assets in immediately avaialable deposits whereas international regulations that apply to banks require ~30 days of liquid supply.
In this case, the legal contract between Circle and its depositors (holders of USDC) is that it'll exchange 1:1.
intrinsically, Circle seems to demonstrate that this contract isn't yet broken, but they can't continue to honour that agreement over a weekend when there's uncertainty of which avenue those funds will come from.
The selling pressure is purely from the secondary market where you're selling me USDC and I'm giving you 0.95 USD.
> Also, if they’ve got many billions in cash, why would losing access to a sliver of it justify shutting down withdrawals?
Because those billions are in T-bills that have to first be sold. And the "cash on hand" is ultimately with banks that are holding a fraction of it.
> “Trust us, it’s worth a dollar! Or don’t trust us! It doesn’t matter because you don’t have any choice but to hold USDC until we deem it advantageous to us to allow you to exchange them for real money!”
Well, "we're enabling redemption on Monday" doesn't equate to the above.
If my pastry shop runs out of already baked goods during the AM peak, I can only ask my customers to wait for me to finish baking more. If there was a pastry regulation, its review would say that I should start baking more pastries in future.
If your pastry shop had 40 billion donuts, and you claim that 10 billion of those donuts are available for sale immediately, do you close your shop when you lose 3.3 billion of them, leaving you with only 6.7 billion donuts that are still sitting there?
If you had 1 billion USD with your favorite US bank, that would be paused too right now.
It seems like they’re simply forcing people to hold USDC, full stop, and are blaming banks for their decision to do so.
That would be the fault of Coinbase, not Circle or USDC. On other exchanges, like Bitstamp, you can freely buy/sell your USDC to crypto/fiat.
If I move USDC from one wallet to another, and someone else moves bitcoin from one wallet to another in exchange for that USDC, that transaction happens entirely on the blockchain and at no point involves a bank or a peg.
The only reason to disable that function is to force people to hold USDC.
However, other exchanges actually do have USDC markets. If you deposit your USDC with them, then you can directly trade order books on USDC/USD, BTC/USDC, and ETH/USDC, which function regardless of the lack of redemption and regardless of the actual market price of USDC.
If Coinbase had USDC trading pairs like other exchanges do, it would avoid the issue you outlined in your comment, but it would also fragment liquidity across two markets that are effectively identical during business-as-usual periods where redemptions function properly.
"Trust us, you can withdraw your money! Or don't trust us! It doesn't matter because you have no choice but to look at your bank balance until we deem it advantageous to allow you to withdraw to real money!"
How is pausing withdrawals not blatant currency manipulation? If I had USDC and lost all faith in it yesterday, shouldn’t I be allowed to cash out today?
Also, if they’ve got many billions in cash, why would losing access to a sliver of it justify shutting down withdrawals?
“Trust us, it’s worth a dollar! Or don’t trust us! It doesn’t matter because you don’t have any choice but to hold USDC until we deem it advantageous to us to allow you to exchange them for real money!”