QuadrigaCX Contract Error

From Quadriga Initiative Cryptocurrency Hacks, Scams, and Frauds Repository
Jump to navigation Jump to search

Notice: This page is a new case study and some aspects have not been fully researched. Some sections may be incomplete or reflect inaccuracies present in initial sources. Please check the References at the bottom for further information and perform your own additional assessment. Please feel free to contribute by adding any missing information or sources you come across. If you are new here, please read General Tutorial on Wikis or Anatomy of a Case Study for help getting started.

QuadrigaCX Website/Founder

Quadriga Coin Exchange was Canada's leading cryptocurrency exchange. In 2017, the platform suffered an issue where Ethereum deposited into the smart contract hot wallet was unable to be accessed. The issue was caused by an upgrade in the Ethereum protocol, which required the prefix "0x" prior to addresses. The funds remain frozen in the smart contract. The Quadriga platform ultimately collapsed, however it is unclear the extent to which the lost Ethereum contributed.

For logo:[1]

About QuadrigaCX

QuadrigaCX was widely considered to be the Canadian exchange with the highest liquidity. At the time of the smart contract incident, QuadrigaCX was even described as "the only exchange in Canada"[2].

Early Interview With Gerald Cotten

In an early interview by The Georgia Straight, QuadrigaCX CEO Gerald Cotten discussed various aspects of the cryptocurrency industry. He describes Bitcoin as a decentralized, peer-to-peer payment system that allows users to send payments without the need for a central authority. The easiest way to get bitcoins in Vancouver is through the company's Bitcoin ATM, which charges no fees and allows for instant funding through Interac Online. The company plans to spread its ATMs across Canada and make buying bitcoins easier for Canadians. The CEO would like to see more clarity from the government on cryptocurrency regulation, and mentions Litecoin and Dogecoin as other cryptocurrencies that have caught his attention. The company is adding Dogecoin to its website in the coming weeks due to its popularity and strong community support[3].

How would you explain, very briefly, Bitcoin to a newbie?

To a newbie, I would describe it as a decentralized, peer-to-peer payment system. It basically allows you to send payments from one user to another without the need of a central authority, such as a bank.

What’s the easiest way to get bitcoins in Vancouver?

The easiest way to get bitcoins in Vancouver is, in my opinion, our ATM, because you just walk up to it, scan your QR code, and within five seconds you’ll have the bitcoins in your Bitcoin wallet.

What sets your online currency exchange apart from the others in Canada?

There’s a few other Bitcoin exchanges in Canada. What mainly sets ours apart is the fact that we charge no fees right now. It’s a promotional thing. In addition to that, we have more account funding options and withdrawal options than any exchange in the country.

One of our main features is Interac Online. It allows any user to fund their account instantly. So, you can actually, from the comfort of your own home, fund your Quadriga CX account through your online banking with Interac Online and buy bitcoins instantly. It’s the fastest way to get bitcoins in Canada.

What are your plans for your Bitcoin ATMs in Vancouver?

The plan with the ATMs is they’re going to be hooked up to our exchange. So, if someone makes a purchase from our ATM, it makes an equivalent trade on our exchange, which basically refills the ATM instantly. Our plan is to spread our ATMs around Vancouver and not just Vancouver—around the country. Because in addition to those three that are coming in about a week, we have an additional large order with Lamassu, where we’ll be spreading the ATMs basically across Canada. We want to spread Bitcoin across the country and basically make buying bitcoins easier for the average Canadian.

The federal government mentioned Bitcoin in its budget this week. How would you like to see cryptocurrencies regulated in Canada?

At this point, I’d like to see a little more clarity from our governmental institutions. Right now, if you contact FINTRAC [Financial Transactions and Reports Analysis Centre of Canada] and ask them about Bitcoin, they’ll basically tell you that Bitcoin is not currently regulated by the government and that they’re unable to provide you with any additional information.

From an exchange point of view, this is quite frustrating, because you’re trying to figure out what the regulations are. We’re quite proactive when it comes to regulations. We don’t want to break the law. We want to fully comply, and we actually more than comply with what the current laws are. So, a bit more clarification from FINTRAC and from the federal government would be very useful—just in terms of planning our business for the future.

What other cryptocurrencies aside from Bitcoin have your attention?

Litecoin is interesting—just because it seems to be pretty much the second largest cryptocurrency.

In addition to that, Dogecoin has been getting a lot of media attention. So, we’re actually adding Dogecoin to our website within the coming weeks. It seems to have a huge amount of community support. It’s very popular on Reddit, and because of that reason it’s caught my attention.

Regular SEDAR Released Documents

QuadrigaCX regularly released documents through SEDAR (the System for Electronic Document Analysis and Retrieval), a system overseen by the Canadian Securities Administrators[4]. In documents released on SEDAR, QuadrigaCX described itself as a leader in the digital currency space, providing innovative products and services such as Canada's longest-running Bitcoin trading platform, merchant payment processing platform, and the country's first R&D lab for Blockchain technology. The company is regulated by FINTRAC as a Money Services Business and is driving innovation in the rapidly-expanding Blockchain and digital currency services sector[5][6].

Quadriga FinTech Solutions Corp. is a leading pioneer in the digital currency space. The company

provides a wide range of innovative products and services, including Canada’s longest-running Bitcoin

trading platform, merchant payment processing platform and Canada’s first R&D lab for Blockchain

technology. Quadriga is regulated by the Financial Transactions and Reports Analysis Centre of Canada

(FINTRAC) as a Money Services Business. FINTRAC is the main supervisory body that oversees and

regulates Canada’s financial services industry. With industry-leading security and ease of use, Quadriga

is driving innovation in the rapidly-expanding Blockchain and digital currency services sector.

The Reality

While QuadrigaCX was still Canada's leading cryptocurrency exchange platform at this time, there were many cracks and warning signs which started to develop prior to the smart contract loss and ultimate collapse of the platform.

Directors Anthony Milewski and Lovie Horner Resignations

On February 29, 2016, Quadriga FinTech Solutions Corp. announced that two of its directors, Anthony Milewski and Lovie Horner, had resigned from their positions. The company stated it was currently searching for new directors to fill the vacancies[5].

TORONTO – (February 29, 2016) Quadriga FinTech Solutions Corp. (the “Company”) announces that

Anthony Milewski and Lovie Horner have resigned as Directors of the Company effective immediately.

The board of directors is currently conducting a search to fill the vacant roles and would like to thank both

Mr. Milewski and Ms. Horner for their efforts and contributions to the Company.

British Columbia Securities Commission Cease Trade Order

The British Columbia Securities Commission (BCSC) issued a cease trade order on March 8th, 2016 for several reporting issuers, including Quadriga Fintech Solutions Corp., due to their failure to file annual audited financial statements and management's discussion and analysis for the period ended October 31, 2015. The order prohibited all trading in their securities until the required records were filed and the Executive Director revoked the order. The order was issued by Allan Lim, the Manager Corporate Finance at BCSC[7].

The Reporting Issuer has not filed:

1. annual audited financial statements for the year ended October 31, 2015, as required under Part 4 of National Instrument 51-102 Continuous Disclosure Obligations  (NI 51-102), and

2. a Form 51-102F1 Management's Discussion and Analysis for the period ended October 31, 2015, as required under Part 5 of NI 51-102

(the required records).


Under section 164(1) of the Act, the Executive Director orders that all trading in the securities of the Reporting Issuer cease until:

1. it files the required records, completed in accordance with the Act and rules, and

2. the Executive Director revokes this order as it applies to the Reporting Issuer.

Director Bill Filtness and CFO Natasha Tsai Resignations

On March 18th, 2016, Quadriga FinTech Solutions Corp. announced that one more of its directors, Bill Filtness, and CFO Natasha Tsai, had resigned from their positions. The company stated it was currently searching for new directors to fill the vacancies[6].

TORONTO – (March 18, 2016) Quadriga FinTech Solutions Corp. (the “Company”) announces that as Bill Filtness and Natasha Tsai have resigned as Director and Chief Financial Officer of the Company.  The board of directors is currently conducting a search to fill the vacant roles and would like to thank both Mr. Filtness and Ms. Tsai for their efforts and contributions to the Company.

Smart Contract Security Flaws

The issue with the smart contract was described in the statement which was released by QuadrigaCX[8].

In order to call a function in an Ethereum contract, we need to work out its signature. For that we take the HEX form of the function name and feed it to Web3 SHA3. The Web3 SHA3 implementation requires the Hex value to be prefixed with 0x - optional until Geth 1.5.6.

Our code didn't prefix the Hex string with 0x and when we upgraded Geth from 1.5.3 to 1.5.9 on the 24th of May, the SHA3 function call failed and our sweeper process then called the contract with an invalid data payload resulting in the ETH becoming trapped.

As far as recoverability is concerned, EIP 156 (https://github.com/ethereum/EIPs/issues/156) could be amended to cover the situation where a contract holds funds and has no ability to move them.

What Happened

A large quantity of Ethereum was locked in the QuadrigaCX smart contract.

Key Event Timeline - QuadrigaCX Contract Error
Date Event Description
November 2013 QuadrigaCX Founded The company is founded[9]. The exchange first starts with conducting local trades of cash for bitcoin[3]
December 2013 Exchange Launches The Quadriga coin exchange itself launches[9][10] with a staff of just 5[3].
January 30th, 2014 QuadrigaCX Launches Vancouver Bitcoin ATM QuadrigaCX launches a bitcoin ATM in Vancouver, which is only Vancouver's second bitcoin ATM, which is a Lamassu Bitcoin Machine that cost $5,000[3]. The exchange leaves "beta"[3].
February 14th, 2014 10:10:00 AM MST The Georgia Straight Article The Georgia Straight (Vancouver Free Press) publishes an interview with Gerald Cotten. The article highlights the recent bitcoin ATM launched. It states the company is expecting to receive 3 more ATMs "in a week or so". It provides an address of 332 Water Street in Gastown for the exchange headquarters, and indicates that Gerald Cotten will be at an art and trade show on Saturday and a currency and commodity exchange which is part of an event called CoinFest[3].
February 15th, 2014 4:00:00 PM MST Gerald Cotten At CoinFest Gerald Cotten is attending the CoinFest in Vancouver, first an art and trade show at the Vancouver English Centre, followed by the currency and commodity exchange at the Doolin's Irish Pub[3][11].
March 14th, 2015 5:05:37 PM MDT Quadriga Fintech Solutions Website Live The first capture is taken of the Quadriga Fintech Solutions website, which provides a glimpse of the corporate entity public face. It provides details on the trading platform, merchant services, and remittance solutions they offer as "the leader in cryptocurrency solutions"[12].
March 2015 Move To Go Public The parent company Quadriga Fintech looks at taking QuadrigaCX public, but nothing materializes[9].
March 15th, 2015 7:59:33 PM MDT Quadriga Fintech Solutions Corporate Profile The corporate profile of Quadriga Fintech Solutions is captured. It highlights the online trading platform, the "first bitcoin exchange in Canada to be licensed by FinTRAC". According to this description, the exchange also supported "gold bullion", Quadriga is offering merchant payment processing systems for businesses to accept bitcoin, and they are in negotiations with two online casinos to become their "sole bitcoin processing merchant platform". Finally, Quadriga utilizes "the technologyy of the bitcoin blockchain" to provide a remittance service for Mexico and the Carribbean[10].
February 29th, 2016 Anthony Milewski and Lovie Horner Resign Anthony Milewski and Lovie Horner resign[9]. "The board of directors is currently conducting a search to fill the vacant roles and would like to thank both Mr. Milewski and Ms. Horner for their efforts and contributions to the Company."[5]
March 8th, 2016 BCSC Cease Trade Order The British Columbia Securities Commission issues a cease trade order, since no audited financial statements were recieved[9]. The order was issued against several reporting issuers, including Quadriga Fintech Solutions Corp., due to their failure to file annual audited financial statements and management's discussion and analysis for the period ended October 31, 2015. The order prohibited all trading in their securities until the required records were filed and the Executive Director revoked the order[7].
March 18th, 2016 Bill Filtness and Natasha Tsai Resign Director Bill Filtness and CFO Natasha Tsai both resign[6]. This leaves Gerald Cotten as the sole executive[9].
May 30th, 2017 3:15:18 AM MDT Failed Deposit Transaction Example An example transaction occurs which attempts to deposit 4.382119011569663172 ETH, which gets stuck in the smart contract[13].
June 2nd, 2017 1:16:32 AM MDT Community Asking About Loss A thread is posted to Reddit reporting that user ethereum deposits are being "sent to an address that's unrecoverable"[14]. (TBD expand further.)
June 2nd, 2017 5:36:48 AM MDT QuadrigaCX Posts Detailed Reddit Post The QuadrigaCX platform posts details about the incident to Reddit. They report an issue with their sweeping process for incoming Ether, causing a significant amount of Ether to be trapped in a splitter contract due to a failed transfer to the hot wallet. The problem occurred after upgrading from Geth 1.5.3 to 1.5.9. The issue was related to the prefixing of the Hex string in the Web3 SHA3 implementation. The contract was called with an invalid data payload, resulting in the trapped ETH. The problem has been resolved, and recoverability could be addressed through an amendment to EIP 156. While this setback has impacted QuadrigaCX's profits, it does not affect account funding, withdrawals, or the exchange's day-to-day operations. All withdrawals, including Ether, are being processed normally, and client balances remain unaffected[8].
June 2nd, 2017 6:20:35 AM MDT Post Praising Transparency A response to the incident praises QuadrigaCX for their high level of transparency and explains the technical details of what happened[15].
June 2nd, 2017 6:47:38 PM MDT Successful Withdrawal Reports User canadense1 reports successfully completing an Ethereum withdrawal[16].
June 2nd, 2017 12:00:01 PM MDT CoinDesk Article CoinDesk publishes an article on the incident. They report a loss of up to $14 million worth of ether due to an issue with a splitter contract used to separate incoming ethers. The problem arose after an upgrade to the ethereum client software, which caused the contract to fail in executing the transfer to the hot wallet for several days in May. As a result, a significant amount of ether became trapped in the contract. The issue has been resolved, but it has impacted the exchange's profits. QuadrigaCX emphasized that the incident did not affect its solvency or operations, and all withdrawals, including ether, are being processed normally without affecting client balances. Representatives from QuadrigaCX have not provided further comments at the moment[17].
June 2nd, 2017 Date In Timelines The date is widely reported as June 2nd, 2017[18][19].
February 6th, 2019 Verdict Timeline The smart contract loss is referenced in a timeline published by Verdict[20]. (TBD add more timeline information.)
February 22nd, 2019 CoinRivet Article The contract incident is referenced in a CoinRivet article on CoinBase CEO Brian Armstrong's reactions to the collapse of the QuadrigaCX coin exchange[21].

Technical Details

[8]

In order to call a function in an Ethereum contract, we need to work out its signature. For that we take the HEX form of the function name and feed it to Web3 SHA3. The Web3 SHA3 implementation requires the Hex value to be prefixed with 0x - optional until Geth 1.5.6.

Our code didn't prefix the Hex string with 0x and when we upgraded Geth from 1.5.3 to 1.5.9 on the 24th of May, the SHA3 function call failed and our sweeper process then called the contract with an invalid data payload resulting in the ETH becoming trapped.

As far as recoverability is concerned, EIP 156 (https://github.com/ethereum/EIPs/issues/156) could be amended to cover the situation where a contract holds funds and has no ability to move them.

[14]

All over the ETH reddit says you guys screwed up your SafeConditionalHFTransfer without a function and users keep deposit ETH which is sent to an address that's unrecoverable.

Total Amount Lost

The Crypto Theft Timeline reports the total loss as 60000 "Crypto", which likely indicates 60,000 ethereum[18]. The BitcoinExchangeGuide also lists the amount of the loss as 60,000 ethereum[19].

The total amount lost has been estimated at $14,700,000 USD.

Immediate Reactions

It’s easy to forget the level of trust that Quadriga had in the market. The top upvoted comment reads “thank you for the statement and transparency and sharing all details”. Given failures and many hacking incidents, smart contracts should in general not be relied upon, and an exchange should always have redundancy and auditing checks built in for every single system. While some issues may be seen as inevitable, having an issue persist for 3 days without being noticed is troubling. While there are many steps which could have been taken to prevent or notice the issue sooner, and this incident did contribute to the depletion of reserves, it’s not the reason anyone ultimately lost their funds. This type of failure is very challenging to regulate, already in the best interest of the exchange to avoid, and rare compared to other types of failures which can occur. The exchange needs to transparently cover this shortfall, with the assistance of any hot wallet insurance.

Community Reactions Prior To Announcement

Multiple posts on Reddit reference an issue with Ethereum deposits into the QuadrigaCX coin exchange[14].

All over the ETH reddit says you guys screwed up your SafeConditionalHFTransfer without a function and users keep deposit ETH which is sent to an address that's unrecoverable.

For example https://etherscan.io/tx/0x7e86b05eac756b1062e7420bcefe581a2e906197a8fc87832e7783905b2d88cf

client deposit to 0xf8cf56df660b655cb913931ddb10fbd25ec5df82 and the exchange redirects to 0x027BEEFcBaD782faF69FAD12DeE97Ed894c68549 but due to an error in their code they did not call the right function and the 4 ether is trapped in the contract

there are many such tx in the last few days from many addresses but with this same error

Prior to QuadrigaCX posting an update, some users on Reddit described their anxiety[22].

The silence is deafening...

QuadrigaCX Posts Reddit Announcement

Ultimately, QuadrigaCX posted a detailed announcement about the situation to Reddit[8].

Earlier this week, we noticed an irregularity with regards to the sweeping process of incoming Ether to the exchange. The usual process involved sweeping the ether into a ETH/ETC splitter contract, before forwarding the ether to our hot wallet. Due to an issue when we upgraded from Geth 1.5.3 to 1.5.9, this contract failed to execute the hot wallet transfer for a few days in May. As a result, a significant sum of Ether has effectively been trapped in the splitter contract. The issue that caused this situation has since been resolved.

While this issue poses a setback to QuadrigaCX, and has unfortunately eaten into our profits substantially, it will have no impact on account funding or withdrawals and will have no impact on the day to day operation of the exchange.

All withdrawals, including Ether, are being processed as per usual and client balances are unaffected.

"Earlier this week, we noticed an irregularity with regards to the sweeping process of incoming Ether to the exchange. The usual process involved sweeping the ether into a ETH/ETC splitter contract, before forwarding the ether to our hot wallet. Due to an issue when we upgraded from Geth 1.5.3 to 1.5.9, this contract failed to execute the hot wallet transfer for a few days in May. As a result, a significant sum of Ether has effectively been trapped in the splitter contract. The issue that caused this situation has since been resolved." “In order to call a function in an Ethereum contract, we need to work out its signature. For that we take the HEX form of the function name and feed it to Web3 SHA3. The Web3 SHA3 implementation requires the Hex value to be prefixed with 0x - optional until Geth 1.5.6. Our code didn't prefix the Hex string with 0x and when we upgraded Geth from 1.5.3 to 1.5.9 on the 24th of May, the SHA3 function call failed and our sweeper process then called the contract with an invalid data payload resulting in the ETH becoming trapped.” “While this issue poses a setback to QuadrigaCX, and has unfortunately eaten into our profits substantially, it will have no impact on account funding or withdrawals and will have no impact on the day to day operation of the exchange. All withdrawals, including Ether, are being processed as per usual and client balances are unaffected.” “Data from EtherScan shows that the contract in question currently holds 67,317.25 ETH – an amount worth roughly $14.7m at current ether prices.”

Community Reactions Following Announcement

While many in the community had concerns about the lost funds, there was generally an attitude of support for the platform: The Reddit community was largely supportive of the situation and the level of transparency provided was praised[2][15][23].

thank you for the statement and transparency and sharing all details.

I really hope you guys recover from this. Hopefully maybe ETH will go back to $50ETH/USD and you'll be able to buy back all the trapped ETH. You being the only exchange in Canada and going under is not a good thing.

QuadrigaCX has always worked well for me. I hope that they can recover from this.

Ultimate Outcome

The smart contract incident did not cause any noted losses at the time, however it did reduce the amount of Ethereum on the QuadrigaCX balance sheet, and could be argued to contribute towards the ultimate collapse of the platform in 2019.

Users Reported Successful Withdrawals

Users started reporting successful withdrawals[16]

Some Users Remove Funds From Platform As A Precaution

A few users announced they were removing funds from the platform as a result of the incident, and others recommended to do so.

Total Amount Recovered

According to BitcoinExchangeGuide, "QuadrigaCX resolved the issue, and customers were not penalized"[19].

There do not appear to have been any funds recovered in this case.

Ongoing Developments

There have been some proposals to modify the Ethereum protocol to allow the Ethereum to be extracted from the smart contract, however as of yet nothing has been implemented.

Individual Prevention Policies

While individuals did not directly interact with the Quadriga Coin Exchange smart contract, they directly had control over the amount of funds that they transacted at any given time. In this particular case, no individual funds were lost, as the Quadriga platform officially covered the losses.

When using any third party custodial platform (such as for trading), it is important to verify that the platform has a full backing of all assets, and that assets have been secured in a proper multi-signature wallet held by several trusted and trained individuals. If this can't be validated, then users should avoid using that platform. Unfortunately, most centralized platforms today still do not provide the level of transparency and third party validation which would be necessary to ensure that assets have been kept secure and properly backed. Therefore, the most effective strategy at present remains to learn proper self custody practices and avoid using any third party custodial platforms whenever possible.

Every approval on Web3 is an opportunity to lose all of the funds present in your wallet. Take the time to review the transaction in full. Fully check over the balance, permissions, and entire address which you are interacting with. Do not trust that your clipboard or any website front-end is guaranteed to provide an accurate address or transaction status. Always perform a test transaction prior to the first high-value transaction in any session.

Store the majority of funds offline. By offline, it means that the private key and/or seed phrase is exclusively held by you and not connected to any networked device. Examples of offline storage include paper wallets (seed phrase or key written down and deleted from all electronic media), hardware wallets, steel wallet devices, etc...

For the full list of how to protect your funds as an individual, check our Prevention Policies for Individuals guide.

Platform Prevention Policies

Smart contracts should be avoided unless necessary, and any smart contracts used should be subject to multiple third party security audits. Given failures and many hacking incidents, smart contracts should in general not be relied upon, and an exchange should always have redundancy and auditing checks built in for every single system. While some issues may be seen as inevitable, systems should be in place to ensure that issues are detected within 3 days.

All aspects of any platform should undergo a regular validation/inspection by experts. This validation should include a security audit of any smart contracts, reporting any risks to the backing (of any customer assets, ensuring treasuries or minting functions are properly secured under the control of a multi-signature wallet, and finding any inadequacies in the level of training or integrity of the team. The recommended interval is twice prior to launch or significant system upgrade, once after 3 months, and every 6 months thereafter. It is recommended that the third party performing the inspection not be repeated within a 14 month period.

Work with other industry platforms to set up a multi-signature wallet with private keys held separately by delegate signatories from seven prominent platforms and services within the industry. Establish requirements for contributions by all platforms and services, designed to be affordable for small platforms yet large enough to cover anticipated breach events. Any breach event can be brought forth by a member platform or a petition of 100 signatures for consideration by the delegate signatories. A vote of 4 or more delegate signatures is required to release any funds, which could partially or fully restore lost funds based on their assessment.

For the full list of how to protect your funds as a financial service, check our Prevention Policies for Platforms guide.

Regulatory Prevention Policies

All aspects of any platform should undergo a regular validation/inspection by experts. This validation should include a security audit of any smart contracts, reporting any risks to the backing (of any customer assets, ensuring treasuries or minting functions are properly secured under the control of a multi-signature wallet, and finding any inadequacies in the level of training or integrity of the team. The recommended interval is twice prior to launch or significant system upgrade, once after 3 months, and every 6 months thereafter. It is recommended that the third party performing the inspection not be repeated within a 14 month period.

Set up a multi-signature wallet with private keys held separately by delegate signatories from seven prominent platforms and services within the industry. Establish requirements for contributions by all platforms and services within the country, designed to be affordable for small platforms yet large enough to cover anticipated breach events. Any breach event can be brought forth by a member platform or a petition of 100 signatures for consideration by the delegate signatories. A vote of 4 or more delegate signatures is required to release any funds, which could partially or fully restore lost funds based on their assessment.

For the full list of regulatory policies that can prevent loss, check our Prevention Policies for Regulators guide.

References

  1. https://blockonomi.com/dead-quadrigacx-founder-lost-80-million-bitcoin/ (Nov 29, 2023)
  2. 2.0 2.1 Sebastian Livermore - "I really hope you guys recover from this... You being the only exchange in Canada and going under is not a good thing." - Reddit (Apr 5, 2023)
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Geek Speak: Gerald Cotten, CEO of Quadriga CX - The Georgia Straight (Apr 27, 2023)
  4. SEDAR Homepage (May 5, 2023)
  5. 5.0 5.1 5.2 Quadriga Announces Resignation of Directors - SEDAR Filing (Apr 28, 2023)
  6. 6.0 6.1 6.2 Quadriga Announces Resignation of Director and Officer - InvestorX (May 5, 2023)
  7. 7.0 7.1 Cease Trade Order - BCSC (May 5, 2023)
  8. 8.0 8.1 8.2 8.3 Statement on QuadrigaCX Ether contract error : ethereum (Mar 6, 2020)
  9. 9.0 9.1 9.2 9.3 9.4 9.5 QuadrigaCX timeline: Every twist and turn in the bizarre crypto scandal (Mar 7, 2020)
  10. 10.0 10.1 Quadriga Fintech Solutions Corporate Profile Archive - March 15th, 2015 7:59:33 PM MDT (Apr 28, 2023)
  11. CoinFest 2014 to celebrate Bitcoin in Vancouver - The Georgia Straight (Apr 27, 2023)
  12. Quadriga Fintech Solutions Website - Archive March 14th, 2015 5:05:37 PM MDT (Apr 28, 2023)
  13. Example of Failing Deposit Transaction - Etherscan (Apr 5, 2023)
  14. 14.0 14.1 14.2 "QuadrigaCX, did you just lose $17 million CAD?" - BitcoinCA - Reddit (Mar 6, 2020)
  15. 15.0 15.1 MyCrypto Taylor - "First thank you for the statement and transparency and sharing all details." - Reddit (Apr 5, 2023)
  16. 16.0 16.1 Canadense1 - "We did a 0.3 BTC withdrawal from QuadrigaCX at 1755h EST today (2 June 2017) and it cleared through in good time with multiple confirmations." - Reddit (May 8, 2023)
  17. Ethereum Client Update Issue Costs Cryptocurrency Exchange $14 Million - CoinDesk (Mar 6, 2020)
  18. 18.0 18.1 100 Crypto Thefts: A Timeline of Hacks, Glitches, Exit Scams, and other Lost Cryptocurrency Incidents (Jan 25, 2020)
  19. 19.0 19.1 19.2 Bitcoin Scams and Cryptocurrency Hacks List - BitcoinExchangeGuide.com (Mar 5, 2020)
  20. QuadrigaCX timeline: Every twist and turn in the bizarre crypto scandal - Verdict (Mar 6, 2020)
  21. Brian Armstrong believes the QuadrigaCX fiasco may have been an accidental exit scam - Coin Rivet (Mar 6, 2020)
  22. James Willett - "The silence is deafening..." - Reddit (May 8, 2023)
  23. Primander - "QuadrigaCX has always worked well for me. I hope that they can recover from this." - Reddit (May 8, 2023)