91³Ô¹ÏÍø

Watch CBS News

Sam Bankman-Fried's lawyer struggles to poke holes in Caroline Ellison's testimony

Sam Bankman-Fried's lawyer on Thursday offered a meandering cross-examination of his client's former girlfriend, the government's key witness in the criminal fraud trial of the FTX co-founder.

Caroline Ellison had testified on Tuesday and Wednesday that Bankman-Fried directed her to siphon  money from FTX customer accounts to fund investments and trading strategies at Bankman-Fried's cryptocurrency hedge fund, Alameda Research. Ellison was the CEO of Alameda when it and FTX collapsed in November of last year.

Ellison spent much of her testimony walking the jury through how she repeatedly had to tap into the customer deposits at FTX to solve problems at the hedge fund or at the exchange. FTX deposits would be withdrawn to pay for new investments or political donations, or to hide steep losses on Alameda's balance sheet, she testified. All of this was done at the direction of Bankman-Fried, she said.

When the losses at Alameda became so big in November 2022, it became necessary to shut down the trading firm and sell FTX to potentially save the two entities from bankruptcy. Ellison held a all-hands meeting that week, which was recorded by an Alameda employee and given to government investigators.

In those audio tapes played for the jury, Alameda employees asked Ellison whether the decision to borrow FTX customer funds was a "YOLO" decision, an acronym meaning "you only live once," implying that it had been done impulsively.

No, Ellison told employees, on those tapes. It was done over a period of years.

Ellison, 28, pleaded guilty to fraud charges in December, when Bankman-Fried was extradited to the United States from the Bahamas. Bankman-Fried, 31, was the majority owner and CEO of FTX until the crypto exchange filed for bankruptcy on Nov. 11. He has pleaded not guilty to fraud charges.

Bankman-Fried's lead defense attorney, Mark Cohen, has argued Bankman-Fried didn't commit fraud and instead was trying to clean up a mess largely created by others, including Ellison.

Witness testifies Sam Bankman-Fried directed her to commit fraud 05:04

Cohen, however, seemed to struggle in his questioning of Ellison, repeatedly changing topics and dates of discussion. At one point, Cohen apologized for referencing a wrong document. Another time he paused because he "lost my place." 

Several times Judge Lewis A. Kaplan admonished Cohen, asking the attorney where he was going with his questions or what exactly he was talking about.

"Maybe this is a good time for a break," Cohen said after an hour of his cross-examination of Ellison.

Initially confined to is parents' Palo Alto, California, home under terms of a $250 million bond, Bankman-Fried has been jailed since August after Judge Kaplan concluded he had tried to imporperly influence potential witnesses, including Ellison.

—CBS News' Cassandra Gauthier contributed to this report.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });