Cookbook
Issue a SAFE
Post-money SAFE with cap and discount, signed via the dashboard, recorded against the convertibles ledger.
Last updated
Post-money SAFE with cap and discount, signed via the dashboard, recorded against the convertibles ledger.
Trigger
A bridge investor wants to write a check before the priced round.
Call sequence
1. Issue the convertible
POST /v1/convertibles { entity, holder, kind: 'safe_post_money', amount, cap, discount }2. Generate SAFE document
POST /v1/documents { template: 'tpl_safe_postmoney_v1.2', subject: convertible }3. Send for signature
POST /v1/signing_envelopes { document }Idempotency
Convertible idempotent on `(entity, holder, kind, amount, cap, discount)`.
Webhooks
| Event | Description |
|---|---|
convertible.created | SAFE on the books. |
document.signed | SAFE executed. |
Errors
| Status | Code | Description |
|---|---|---|
422 | mfn_clause_in_use | Existing MFN clause may need to be invoked. |
Related
Variations
YC post-money SAFE, no cap, 20% discount. Common for friends-and-family rounds.
{
"template": "yc_safe_postmoney_discount",
"parameters": {
"investor": { /* … */ },
"investment": {"amount": 5000000, "currency": "usd"},
"discount_rate": 20,
"pro_rata_rights": false,
"governing_law": "DE"
}
}Most-favored-nation SAFE — no cap, no discount, but the investor inherits the best terms of any subsequent SAFE. Useful for lead investors timing the round.
{
"template": "yc_safe_postmoney_mfn",
"parameters": {
"investor": { /* … */ },
"investment": {"amount": 10000000, "currency": "usd"},
"governing_law": "DE"
}
}Both cap and discount — the investor gets whichever produces the better price at conversion.
{
"template": "yc_safe_postmoney_cap_discount",
"parameters": {
"investor": { /* … */ },
"investment": {"amount": 50000000, "currency": "usd"},
"post_money_valuation_cap": {"amount": 800000000, "currency": "usd"},
"discount_rate": 15,
"governing_law": "DE"
}
}Some investors negotiate side letters (information rights, observer seat). Issue them as separate documents with the standard SAFE first; chain via metadata.
# Step 1: Issue the SAFE.
# Step 2: Issue the side letter linked to the SAFE.
curl -X POST https://api.mattermode.com/v1/documents \
-H "Authorization: Bearer $MATTER_KEY" \
-d '{
"entity_id": "ent_Nq3KcAbc",
"template": "side_letter_information_rights",
"metadata": {"linked_safe": "doc_SafeAcme"},
"parameters": { /* … */ }
}'A solo founder rarely raises from one angel. Three or four SAFEs at $50K–$125K
each over six to nine months is the normal shape. The mechanics are
issue-one-at-a-time — each SAFE is its own Document, its own Convertible,
its own signing event — but the cap-table math compounds across the stack.
Sequencing. Issue each SAFE the moment its cheque clears. Don't batch:
investors number two and three want their executed copy on file before they
wire, and the entity's cap_table.convertibles[] view updates per-issuance
so any new investor can see what's already on the stack.
MFN scoping when SAFE 2 is tighter than SAFE 1. If SAFE 1 has an MFN clause and SAFE 2 has a tighter cap (or a discount that's better than SAFE 1 had), the MFN cascade fires automatically and amends SAFE 1 to match the better terms. Two scope choices on the side letter that holds the MFN:
mfn.scope | What it means | When to use |
|---|---|---|
economic_terms | MFN inherits cap and discount only. | The default — the investor wanted price protection. |
all_terms | MFN inherits everything (cap, discount, pro rata, information rights, board observer). | Lead investor at SAFE 1 who wants their full package preserved. |
Set on the SAFE 1 side letter:
{
"template": "side_letter_pro_rata_mfn",
"metadata": {"linked_safe": "doc_safe1_acme"},
"parameters": {
"mfn": {"scope": "economic_terms"},
"pro_rata_rights": true
}
}When SAFE 2 lands with tighter terms, the MFN cascade fires
POST /v1/entities/{id}/convertibles/{id}/amend
on SAFE 1, signed via a fresh envelope.
Cap-table projection across the stack. Project conversion math at any post-money valuation:
curl "https://api.mattermode.com/v1/entities/ent_Nq3KcAbc/cap_table?as_of=projected&trigger=priced_round&pre_money=2500000000&new_money=1500000000" \
-H "Authorization: Bearer $MATTER_KEY" \
-H "Matter-Version: 2026-05-01"The response shows post-conversion ownership for each stacked SAFE — the cap or discount wins per-SAFE, and the founder's diluted percentage assumes every SAFE converts on the same close.
FAQ
Related
- Documents endpoint — primitive
- Issue a priced round — conversion mechanics
- Cap table — how convertibles surface pre-conversion
- Run a board consent — for board approval if your bylaws require it