For the complete documentation index, see llms.txt. This page is also available as Markdown.

Convert SAFEs to equity

The intended SafeCertificateConverter flow for converting SAFE LETs into equity in a priced round; the converter is a stub

When a cyberCORP runs a priced round, its outstanding SAFEs convert to equity. Each SAFE is recorded as a Ledger Entry Token (LET) on the company's SAFE LET contract, and SafeCertificateConverter is meant to compute each one's conversion plan from the round's data.

Compute the conversion plan

import {ICertificateConverter} from "src/interfaces/ICertificateConverter.sol";

ConversionPlan memory plan = ICertificateConverter(CONVERTER).computeConversion(
    roundManager,   // the RoundManager running the priced round
    roundId,        // bytes32, the priced round
    certPrinter,    // the SAFE LET contract
    tokenId         // the SAFE LET to convert
);

The converter is designed to read the SAFE LET's investmentAmountUSD and issuerUSDValuationAtTimeOfInvestment, the round's price and cap table snapshot, and apply the round's rounding policy to produce a share count and a target class and series.

Execute the plan

Issue the new equity LETs through the IssuanceManager (see Issue a LET) and void the SAFE LETs with voidCert on the SAFE LET contract.

Function-level detail is in SafeCertificateConverter and RoundManager.

Last updated

Was this helpful?