dApp
Sign in — Email step
app.zivoe.com/sign-in — first screen for a signed-out visitor
One combined sign-up / sign-in screen: entering any email either creates an account or signs into an existing one. The user is never told which happened.
Sign Up or Sign In
Visible copy
Heading on load.
app/(auth)/sign-in/_components/sign-in-form.tsx:69
Enter your email to sign in to your account. If you don't have an account yet, one will be created for you.
Visible copy
Subheading under the title.
sign-in-form.tsx:70
Email
Visible copy
Field label.
sign-in-form.tsx:209
Enter Your Email
Visible copy
Field placeholder.
sign-in-form.tsx:210
Continue
Visible copy
Submit button, resting state.
sign-in-form.tsx:228
Sending code...
Loading state
Replaces “Continue” while the OTP request is in flight.
sign-in-form.tsx:226
Or
Visible copy
Divider between email and social sign-in.
sign-in-form.tsx:232
Sign in with Google
Visible copy
Screen-reader label on the Google button — the button itself shows only a logo.
sign-in-form.tsx:236
Sign in with X
Visible copy
Screen-reader label on the X button — logo only, no visible text.
sign-in-form.tsx:249
Email is required
Validation
Submit with the field empty.
sign-in-form.tsx:115
Please enter a valid email address
Validation
Submit with text that fails email validation.
sign-in-form.tsx:115
Sign In Failed
Error
Toast. Two paths: returning to /sign-in with an ?error param (a failed social callback), or a Google/X sign-in throwing. The provider message appears underneath when present.
sign-in-form.tsx:54, 144
Failed to Send Verification Code
Error
Toast when the OTP send request fails. The auth provider's raw message is shown as the description.
sign-in-form.tsx:184
Verify You Are Human to Continue
Error
Warning toast when the Turnstile bot check needs interaction before it will issue a token.
sign-in-form.tsx:105
Human Verification Failed
Error
Toast when the Turnstile bot check fails to produce a token. Blocks submission. Description reads “Please try again.”
sign-in-form.tsx:169, 332
By clicking continue, you agree to our Terms of Use & Privacy Policy, comply with our Reg S Compliance Policy, and consent to receive communications from Zivoe.
Visible copy
Legal footer, email step only. “Terms of Use & Privacy Policy” and “Reg S Compliance Policy” are outbound links.
app/(auth)/_components/common.tsx:93
dApp
Sign in — Verification code step
app.zivoe.com/sign-in — after an email is submitted
Six-digit code entry. The code verifies automatically on the sixth digit; there is no submit button.
Verify Your Email
Visible copy
Heading once the code step opens.
sign-in-form.tsx:78
We've sent an OTP code to {email}.
Visible copy
Subheading. The address is echoed back from what the user typed.
sign-in-form.tsx:81
Back
Visible copy
Returns to the email step.
sign-in-form.tsx:87
Didn't receive an email?
Visible copy
Shown next to the resend control, until resend attempts are exhausted.
sign-in-form.tsx:404
Resend code
Visible copy
Resend control, resting state with attempts remaining.
sign-in-form.tsx:412
Resending code...
Loading state
While a resend request is in flight.
sign-in-form.tsx:407
Resend code ({n}s)
Loading state
Cooldown countdown after a resend. Counts down in seconds.
sign-in-form.tsx:409
Resend code ({n} left)
Loading state
Shown once fewer than 3 resend attempts remain — a rationing warning.
sign-in-form.tsx:411
Verifying Code...
Loading state
Pending toast, dismissed when verification resolves either way.
sign-in-form.tsx:294
Verification code is required
Validation
Submit with no code entered.
sign-in-form.tsx:269
Please enter the complete verification code
Validation
Fewer than six digits entered.
sign-in-form.tsx:270
Invalid Verification Code
Error
Toast title when the code is wrong or expired — the most common failure on this screen. The auth provider's message is the description.
sign-in-form.tsx:304
Failed to Resend Code
Error
Toast when a resend request fails. The auth provider's message is the description.
sign-in-form.tsx:348
Code Sent
Visible copy
Success toast title after a resend.
sign-in-form.tsx:358
A new verification code has been sent to your email
Visible copy
Success toast description after a resend.
sign-in-form.tsx:359
Need help? Contact us at investors@zivoe.com
Visible copy
Footer, code step only — replaces the legal terms line from the email step.
common.tsx:106
dApp
Onboarding — Step 2 — Individual details
app.zivoe.com/onboarding — Individual branch
Tell Us About Yourself
Visible copy
Heading.
individual-form.tsx:47
Please fill out the fields below.
Visible copy
Subheading.
individual-form.tsx:47
Step 2 of 2
Visible copy
Step indicator.
individual-form.tsx:48
First Name
Visible copy
Field label.
individual-form.tsx:60
Johnny
Visible copy
First name placeholder — a sample value, not an instruction.
individual-form.tsx:61
Last Name
Visible copy
Field label.
individual-form.tsx:74
Appleseed
Visible copy
Last name placeholder.
individual-form.tsx:75
Country Of Residence
Visible copy
Select label.
individual-form.tsx:89
Amount Of Interest
Visible copy
Select label — how much the user intends to deposit.
individual-form.tsx:141
How'd You Find Zivoe?
Visible copy
Attribution select label.
individual-form.tsx:173
Select
Visible copy
Placeholder on all three selects.
individual-form.tsx:92, 144, 176
Continue
Visible copy
Submit.
individual-form.tsx:201
Onboarding...
Loading state
Submit button while the profile is being saved.
individual-form.tsx:200
First name is required
Validation
Empty first name on submit.
lib/schemas/onboarding.ts:34
Last name is required
Validation
Empty last name on submit.
onboarding.ts:35
Please select a country
Validation
No country chosen.
onboarding.ts:36
Please select an amount of interest
Validation
No deposit range chosen.
onboarding.ts:13
Please select how you found Zivoe
Validation
No attribution source chosen.
onboarding.ts:20
dApp
Onboarding — Steps 2–3 — Organization details
app.zivoe.com/onboarding — Organization branch
Splits personal details (step 2) from company details (step 3). The “Amount Of Interest” options differ from the individual set — they start at “< $10k” and go up to “> $5M”.
Your Information
Visible copy
Step 2 heading.
organization-form.tsx:80
Tell us about the person managing this account.
Visible copy
Step 2 subheading.
organization-form.tsx:80
Step 2 of 3
Visible copy
Step 2 indicator.
organization-form.tsx:81
Job Title
Visible copy
Field label, organization branch only.
organization-form.tsx:123
e.g., CEO, Investment Manager
Visible copy
Job title placeholder.
organization-form.tsx:124
Organization Details
Visible copy
Step 3 heading.
organization-form.tsx:198
Tell us about your organization.
Visible copy
Step 3 subheading.
organization-form.tsx:198
Step 3 of 3
Visible copy
Step 3 indicator.
organization-form.tsx:199
Entity Name
Visible copy
Field label.
organization-form.tsx:210
Legal name of your organization
Visible copy
Entity name placeholder.
organization-form.tsx:211
Country Of Incorporation
Visible copy
Select label.
organization-form.tsx:224
Job title is required
Validation
Empty job title on submit.
onboarding.ts:46
Entity name is required
Validation
Empty entity name on submit.
onboarding.ts:53
dApp
Onboarding — Completion
Fires on successful submission of the final onboarding step
Welcome to Zivoe!
Visible copy
Success toast title. The user is redirected to the offerings list immediately after.
onboarding/_hooks/useCompleteOnboarding.ts:26
Your account has been set up successfully.
Visible copy
Success toast description.
useCompleteOnboarding.ts:27
Onboarding Failed
Error
Error toast title when the server action rejects.
useCompleteOnboarding.ts:20
An unexpected error occurred. Please try again.
Error
Fallback description when the server returns no specific message.
useCompleteOnboarding.ts:36
Failed to complete onboarding. Please try again.
Error
Returned by the server action when the profile write fails.
server/actions/onboarding.ts:66
Invalid form data
Error
Server-side schema rejection — should be unreachable, since the client validates the same schema first.
server/actions/onboarding.ts:30
dApp
App shell — Navigation and wallet
Persistent header on every signed-in page
Offerings
Visible copy
The only top-level nav item. Links to the dashboard root.
app/(dashboard)/_components/layout.tsx:60
Connect Wallet
Visible copy
Wallet button, desktop width.
layout.tsx:74
Connect
Visible copy
Wallet button, mobile width — same control, shortened.
layout.tsx:75
Pending
Loading state
Wallet button while a wallet connection is resolving.
components/connected-account.tsx:47
Loading...
Loading state
Wallet button during the initial account fetch.
connected-account.tsx:46
Disconnect
Visible copy
Menu item under the connected wallet address.
connected-account.tsx:62
Settings
Visible copy
User menu item.
layout.tsx:163
Logout
Visible copy
User menu item.
layout.tsx:175
Logging out...
Loading state
Replaces “Logout” while the sign-out request is in flight.
layout.tsx:172
User menu
Visible copy
Screen-reader label on the avatar button.
layout.tsx:143
Zivoe home
Visible copy
Screen-reader label on the logo link.
app/(dashboard)/layout.tsx:40
Open navigation menu
Visible copy
Screen-reader label on the mobile hamburger.
app/(dashboard)/layout.tsx:79
Navigation menu
Visible copy
Screen-reader label on the mobile drawer itself.
packages/ui/src/components/navigation-mobile-dialog.tsx:7
Error Disconnecting Wallet
Error
Toast when wallet disconnection throws.
connected-account.tsx:38
Error signing out
Error
Toast when the sign-out server action fails.
layout.tsx:128; server/actions/auth.ts:21
Unexpected error signing out
Error
Fallback when sign-out throws without a message.
layout.tsx:133
dApp
Error pages — Failure and not-found screens
Rendered when a route throws or a URL doesn't resolve
Something went wrong
Error
Dashboard error boundary — any uncaught render or data error inside the signed-in area.
app/(dashboard)/error.tsx:20
Try again
Error
Retry button on the error boundary. Re-runs the failed segment.
error.tsx:29
404 Error
Visible copy
Not-found page eyebrow.
app/(dashboard)/not-found.tsx:26
Page not found
Visible copy
Not-found page heading.
not-found.tsx:27
Go Home
Visible copy
Not-found page action.
not-found.tsx:32
An Error Occurred
Error
Default toast title for any unhandled React Query mutation error that supplies no message of its own.
lib/get-query-client.ts:27
dApp
Offerings list — Dashboard home
app.zivoe.com/ — the landing screen after sign-in
One offering exists today. The registry throws at import time if a second is added before the data layer is parameterised, so this list is effectively single-item.
Offerings
Visible copy
Page heading.
app/(dashboard)/page.tsx:20
Assets Under Management
Visible copy
Label above the protocol-wide AUM figure. Deliberately not “NAV” — that word is internal only.
app/(dashboard)/_offerings/aum-header.tsx:13
Global MCA Offerings Fund
Visible copy
Offering name on the card and the detail page.
offerings/index.ts:58
Merchant Cash Advance
Visible copy
Category label on the offering card.
offerings/index.ts:60
Short-duration, revenue-based financing for small businesses, diversified across thousands of merchants in the US, UK, Europe and APAC with daily repayment.
Visible copy
Offering description on the card.
offerings/index.ts:62
Issuer
Visible copy
Card row label. Value is “Zivoe”.
_offerings/offering-card.tsx:40
Target APY
Visible copy
Card row label. Value is a hardcoded 14%, not a live read.
offering-card.tsx:41; offerings/index.ts:53
Accepted stablecoins
Visible copy
Card row label. Value is USDC only.
offering-card.tsx:52
Available on
Visible copy
Card row label. Value is Ethereum only.
offering-card.tsx:71
Invest now
Visible copy
Card call-to-action, bottom right.
offering-card.tsx:88
dApp
Offering detail · Deposit — Deposit failure messages
Inline above the submit button — decoded from a failed transaction simulation, before the wallet is asked to sign
These are the hardest strings in the product to see. Each maps a specific on-chain revert to plain English. They only appear when simulation catches the condition.
You don't have enough USDC for this deposit.
Error
Balance fell below the entered amount between typing and submitting.
centrifuge/use-deposit.ts:14, 24
Your USDC approval is no longer sufficient. Approve the amount again and retry.
Error
Allowance was spent or reduced after approval — the deposit would revert on the transfer.
use-deposit.ts:15
This vault can't accept that deposit right now. Try a smaller amount or try again later.
Error
Vault reserve is insufficient for the deposit size.
use-deposit.ts:16, 17
The current deposit price is unavailable. Try again later.
Error
The share price read reverted — the pool has no valid price to issue against.
use-deposit.ts:18
This deposit can't be completed for this wallet right now.
Error
The transfer-restriction hook blocked the wallet — the real-world case is an address not cleared to hold zMCA.
use-deposit.ts:19, 20, 25
Enter an amount greater than zero.
Error
The SDK rejected a zero-value order.
use-deposit.ts:26
Enter a valid USDC amount.
Error
The entered amount has more decimal places than USDC supports.
use-deposit.ts:27
Deposit Successful
Visible copy
Dialog title once the deposit transaction confirms.
use-deposit.ts:84
zMCA has been transferred to your wallet.
Visible copy
Success dialog description.
use-deposit.ts:85
Deposit Failed
Error
Dialog title when the deposit transaction reverts on-chain.
use-deposit.ts:76
Your deposit could not be completed.
Error
Failure dialog description.
use-deposit.ts:77
Depositing USDC...
Loading state
Pending toast, distinct from the button state.
use-deposit.ts:68
Error Depositing USDC
Error
Error toast title.
use-deposit.ts:69
dApp
Offering detail · Redeem — Claiming and cancellation
Redeem tab — appears above the form once the user has an in-flight position
When a cancellation lands after partial fulfilment, both claims appear at once and the USDC claim is gated behind the zMCA claim.
USDC ready to claim
Visible copy
Shown when the pool has fulfilled some or all of a request.
redeem-flow.tsx:202
Claim USDC
Visible copy
Claims fulfilled redemption proceeds.
redeem-flow.tsx:227
Claiming USDC...
Loading state
While the USDC claim confirms.
redeem-flow.tsx:221
Claim zMCA
Visible copy
Claims shares handed back by a cancellation.
redeem-flow.tsx:191
Claiming zMCA...
Loading state
While the returned-shares claim confirms.
redeem-flow.tsx:185
Claim your returned zMCA first.
Visible copy
Explains why the USDC claim is disabled — the protocol empties the returned-shares bucket first, so the claims must happen in order.
redeem-flow.tsx:232
Cancel request
Visible copy
Cancels a pending redemption request.
redeem-flow.tsx:396
Cancelling...
Loading state
While the cancellation confirms.
redeem-flow.tsx:393
Cancellation in progress
Loading state
Submit button text while the pool unwinds the cancellation. The whole form is locked — a new request would revert on-chain until the unwind lands.
redeem-flow.tsx:336
Cancelling redemption request
Visible copy
Callout heading during the unwind window.
redeem-flow.tsx:407
Your zMCA will be available to claim once the cancellation is processed. Any portion already approved still executes as USDC.
Visible copy
Callout body during the unwind. The success dialog states the same fact in more words.
redeem-flow.tsx:414
dApp
Offering detail · Redeem — Redemption request failure messages
Inline above the submit button — decoded from a failed simulation before signing
You don't have enough shares for this redemption request.
Error
zMCA balance is below the requested amount. Note “shares” — flagged below as inconsistent with the zMCA vocabulary used elsewhere.
centrifuge/use-request-redeem.ts:12, 23
Wait for your cancellation to complete before requesting another redemption.
Error
A cancellation is still unwinding. The form is normally locked in this state, so this is the backstop.
use-request-redeem.ts:13
Enter an amount greater than zero.
Error
Zero-value order rejected.
use-request-redeem.ts:14, 25
Redemption requests are temporarily unavailable for this vault.
Error
The vault is not linked to the pool — an operational state, not a user error.
use-request-redeem.ts:15
This redemption request can't be submitted from this wallet right now.
Error
The transfer-restriction hook blocked the wallet.
use-request-redeem.ts:16, 17, 24
Redemptions are temporarily paused. Try again later.
Error
Redemptions are paused pool-wide by the hub.
use-request-redeem.ts:18
The network fee estimate changed. Try again.
Error
Gas estimate went stale between simulation and submission.
use-request-redeem.ts:19
Enter a valid zMCA amount.
Error
Too many decimal places for the share token.
use-request-redeem.ts:26
Requesting Redemption...
Loading state
Pending toast.
use-request-redeem.ts:63
Error Requesting Redemption
Error
Error toast title.
use-request-redeem.ts:64
Redemption Requested
Visible copy
Success dialog title once the request confirms.
use-request-redeem.ts:78
Your final USDC amount is determined when your request is processed.
Visible copy
Success dialog description — repeats the estimate caveat at the moment of commitment.
use-request-redeem.ts:79
Redemption Request Failed
Error
Failure dialog title.
use-request-redeem.ts:71
Your redemption request could not be completed.
Error
Failure dialog description.
use-request-redeem.ts:72
dApp
Offering detail · Redeem — Cancellation failure messages
Inline — decoded from a failed cancellation simulation
There is no redemption request to cancel.
Error
The pending request was fulfilled or already cancelled before the cancel landed.
centrifuge/use-cancel-redeem.ts:10, 20
Your cancellation is already being processed.
Error
A cancellation is already unwinding.
use-cancel-redeem.ts:11
Cancellations are temporarily unavailable for this vault.
Error
The vault is not linked to the pool.
use-cancel-redeem.ts:12
This cancellation can't be submitted from this wallet right now.
Error
Blocked by the transfer-restriction hook.
use-cancel-redeem.ts:13, 14
Redemptions are temporarily paused. Try again later.
Error
Paused pool-wide.
use-cancel-redeem.ts:15
The network fee estimate changed. Try again.
Error
Stale gas estimate.
use-cancel-redeem.ts:16
Cancelling Redemption Request...
Loading state
Pending toast.
use-cancel-redeem.ts:58
Error Cancelling Redemption
Error
Error toast title.
use-cancel-redeem.ts:59
Cancellation Requested
Visible copy
Success dialog title.
use-cancel-redeem.ts:73
Your zMCA will be available to claim once the cancellation is processed. Any portion already approved by the pool manager still executes and arrives as USDC.
Visible copy
Success dialog description. The in-form callout says the same thing in fewer words.
use-cancel-redeem.ts:75
Cancellation Failed
Error
Failure dialog title.
use-cancel-redeem.ts:66
Your redemption request could not be cancelled.
Error
Failure dialog description.
use-cancel-redeem.ts:67
dApp
Offering detail · Redeem — Claim failure messages
Inline — decoded from failed claim simulations (USDC proceeds and returned zMCA)
The “Could Not Be Verified” pair is unusual: the transaction confirmed on-chain, but the receipt couldn't be decoded, so the UI refuses to claim success it can't prove.
There are no redemption proceeds available to claim yet.
Error
Claim attempted with nothing fulfilled.
centrifuge/use-claim-redeem.ts:25
Claims are temporarily unavailable for this vault.
Error
Vault not linked to the pool. Same string on both claim types.
use-claim-redeem.ts:15; use-claim-returned-shares.ts:15
These proceeds can't be claimed to this wallet right now.
Error
USDC claim blocked by the transfer-restriction hook.
use-claim-redeem.ts:16, 17
Your claimable amount changed. Refresh and try again.
Error
The claimable balance moved between simulation and submission.
use-claim-redeem.ts:18, 19
Redemption proceeds are temporarily unavailable. Try again later.
Error
Claims paused pool-wide.
use-claim-redeem.ts:20, 21
Claimable balances changed. Claim your returned zMCA first.
Error
Returned shares appeared between load and submit — the ordering rule now applies.
use-claim-redeem.ts:53
There is no returned zMCA available to claim yet.
Error
Returned-shares claim attempted with an empty bucket.
use-claim-returned-shares.ts:23
These shares can't be claimed to this wallet right now.
Error
Returned-shares claim blocked by the transfer-restriction hook.
use-claim-returned-shares.ts:16, 17
Returned zMCA is temporarily unavailable. Try again later.
Error
Returned-shares claims paused.
use-claim-returned-shares.ts:18
Claimable balances changed. Refresh and try again.
Error
Returned-shares balance moved before submission.
use-claim-returned-shares.ts:56
Claiming USDC...
Loading state
Pending toast for the proceeds claim.
use-claim-redeem.ts:74
Error Claiming USDC
Error
Error toast title.
use-claim-redeem.ts:75
USDC Claimed
Visible copy
Success dialog title.
use-claim-redeem.ts:99
USDC has been transferred to your wallet.
Visible copy
Success dialog description.
use-claim-redeem.ts:100
Claiming zMCA...
Loading state
Pending toast for the returned-shares claim.
use-claim-returned-shares.ts:76
Error Claiming zMCA
Error
Error toast title.
use-claim-returned-shares.ts:77
zMCA Claimed
Visible copy
Success dialog title.
use-claim-returned-shares.ts:101
Your zMCA has been returned to your wallet.
Visible copy
Success dialog description.
use-claim-returned-shares.ts:102
Claim Failed
Error
Failure dialog title. Same string for both claim types.
use-claim-redeem.ts:82; use-claim-returned-shares.ts:84
Your USDC claim could not be completed.
Error
Failure dialog description, proceeds claim.
use-claim-redeem.ts:83
Your zMCA claim could not be completed.
Error
Failure dialog description, returned-shares claim.
use-claim-returned-shares.ts:85
Claim Could Not Be Verified
Error
The transaction confirmed but its receipt could not be decoded. Deliberately not shown as a failure — the funds may well have moved.
use-claim-redeem.ts:91; use-claim-returned-shares.ts:93
The transaction was confirmed, but the USDC claim could not be verified. Refresh your balances.
Error
Description of the above, proceeds claim.
use-claim-redeem.ts:93
The transaction was confirmed, but the zMCA claim could not be verified. Refresh your balances.
Error
Description of the above, returned-shares claim.
use-claim-returned-shares.ts:95
dApp
Offering detail — Shared transaction copy
Applies to every on-chain action in the product
These strings sit above the per-flow messages — they fire regardless of which transaction was attempted.
See transaction details
Visible copy
Link in every transaction dialog, opening the block explorer at the transaction hash.
deposit/_components/transaction-dialog.tsx:72
Close
Visible copy
Dismisses the transaction dialog.
transaction-dialog.tsx:173
Approving {token}...
Loading state
Pending toast during any ERC-20 approval. Token name is interpolated.
hooks/useApproveSpending.ts:52
Error Approving {token}
Error
Error toast for a failed approval.
useApproveSpending.ts:53
Approval Successful
Visible copy
Dialog title once an approval confirms.
useApproveSpending.ts:77
Approval Failed
Error
Dialog title when an approval reverts.
useApproveSpending.ts:84
Transaction rejected
Error
The user dismissed the wallet's signature prompt. Treated as a distinct outcome, not an error.
centrifuge/useCentrifugeTx.ts:274; hooks/useTx.tsx:124
Your wallet is connected to the wrong network. Switch networks and try again.
Error
The wallet's chain doesn't match the deployment's. Submission is refused rather than risking funds on the wrong network.
useCentrifugeTx.ts:285
Your wallet did not respond. If you approved the transaction in your wallet, wait for it to land before trying again.
Error
The wallet never returned a result. Deliberately does not tell the user to retry — a duplicate transaction is the worse outcome.
useCentrifugeTx.ts:130
Wallet not connected
Error
A transaction was attempted with no connected wallet. Should be unreachable through the UI.
useCentrifugeTx.ts:75, 102
Another transaction is already in progress
Error
A second transaction was started while one was still running.
centrifuge/client.ts:45
Error checking transaction receipt
Error
Receipt polling failed after submission.
hooks/useTx.tsx:156
dApp
Offering detail · Earn — Stats, details and documents
Info panel beside the form on desktop; the “Earn” tab on mobile
Stats
Visible copy
Section heading.
deposit-info/deposit-stats.tsx:13
Target APY
Visible copy
Stat label. Value is the hardcoded 14%.
deposit-stats.tsx:17
Token Price
Visible copy
Stat label and chart series name. Deliberately not “Share Price” — that stays internal.
deposit-stats.tsx:19
About
Visible copy
Section heading over the offering description.
deposit-info/deposit-about.tsx:15
Show More / Show Less
Visible copy
Expands and collapses the About text, which is clamped to two lines.
deposit-about.tsx:37
Details
Visible copy
Section heading over the fact table.
deposit-info/deposit-details.tsx:11
Eligibility — Institutions & Non-US Retail
Visible copy
Details row.
deposit-details.tsx:35
Underlying Assets — Business & Consumer Loans
Visible copy
Details row.
deposit-details.tsx:36
Geography — Americas and EU
Visible copy
Details row. Note the landing page writes this as “Americas & EU”.
deposit-details.tsx:37
Legal Structure — SPV
Visible copy
Details row.
deposit-details.tsx:38
Regulatory Compliance — Reg S Compliant Offering
Visible copy
Details row.
deposit-details.tsx:39
Management Fee — 2.5% APR
Visible copy
Details row. Note the landing FAQ separately states a 15% protocol fee on interest income — two different fees, stated in two different places.
deposit-details.tsx:40
Liquidity — Available upon request
Visible copy
Details row.
deposit-details.tsx:41
Audits — View Reports
Visible copy
Details row linking to the audits page in docs.
deposit-details.tsx:48
Available Networks — Ethereum
Visible copy
Details row.
deposit-details.tsx:51
Documents
Visible copy
Section heading.
deposit-info/deposit-documents.tsx:9
Protocol Documentation
Visible copy
Document link to docs.zivoe.com.
deposit-documents.tsx:40
Reg S Compliance
Visible copy
Document link to the Reg S terms page.
deposit-documents.tsx:41
Contact Us
Visible copy
Section heading over the investor relations email link.
deposit-info/deposit-contact.tsx:10
Select a chart view
Visible copy
Screen-reader label on the chart series picker.
deposit-info/deposit-charts.tsx:49
dApp
Offering detail · Earn — Highlights
Info panel — three selling points above the fact table
Highlights
Visible copy
Section heading.
deposit-info/deposit-highlights/index.tsx:15
Flexible Liquidity
Visible copy
First highlight title.
deposit-highlights/index.tsx:19
Contact us at investors@zivoe.com to initiate a redemption or with any questions about liquidity before depositing.
Visible copy
First highlight body. Worth reviewing against the Redeem tab, which lets users request a redemption directly without contacting anyone.
deposit-highlights/index.tsx:20
Autocompounding
Visible copy
Second highlight title.
deposit-highlights/index.tsx:26
As borrowers make interest payments, the proceeds are automatically redeployed into new loans, maximizing returns.
Visible copy
Second highlight body.
deposit-highlights/index.tsx:27
Decades of Experience
Visible copy
Third highlight title.
deposit-highlights/index.tsx:33
Our team has over 40 years of combined experience managing credit risk at leading financial institutions and DeFi protocols including JP Morgan Chase, Wells Fargo, Capital One, and Maple Finance.
Visible copy
Third highlight body. The landing page makes a similar claim with a different institution list — worth aligning.
deposit-highlights/index.tsx:34
Meet the Team
Visible copy
Link out to the landing site's team page.
deposit-highlights/index.tsx:38
dApp
Wallet screening — Connection denied dialog
Blocks the whole app when Chainalysis flags a connected wallet
The most consequential dialog in the product — it ends the session. There is no path forward except a different wallet or an email.
Wallet Connection Denied
Visible copy
Dialog title. Fires when the risk assessment returns a flagged result for the connected address.
app/(dashboard)/_components/chainalysis-assessment-dialog.tsx:49
We've detected irregular or sanctioned activity associated with the wallet you attempted to connect.
Visible copy
Dialog body, first paragraph.
chainalysis-assessment-dialog.tsx:52
This may affect your ability to interact with our services. If you believe this is a mistake, please contact inquire@zivoe.com
Visible copy
Dialog body, second paragraph, with the appeal address as a mailto link.
chainalysis-assessment-dialog.tsx:53
Denial reason
Visible copy
Label above the risk reason returned by the screening provider. The reason itself is third-party text we don't author.
chainalysis-assessment-dialog.tsx:71
Back to Homepage
Visible copy
Primary action — leaves for the landing site.
chainalysis-assessment-dialog.tsx:78
Disconnect
Visible copy
Secondary action — disconnects the wallet so another can be tried.
chainalysis-assessment-dialog.tsx:82
Wallet connection denied
Visible copy
Screen-reader label on the dialog.
chainalysis-assessment-dialog.tsx:41
Error Assessing Account Risk!
Error
Toast when the screening request itself fails. The user is not blocked, but the check did not complete.
hooks/useChainalysis.ts:43
The request has been rate limited.
Error
API response when screening is called too often from one address — 10-minute window.
app/api/chainalysis/assessment/route.ts:54
Address is not valid
Error
API response for a malformed address.
api/chainalysis/assessment/route.ts:63
dApp
Email preferences — Manage notifications
app.zivoe.com/unsubscribe — reached from a link in any Zivoe email
Works signed-out via a signed token in the link. An expired or malformed token shows the invalid-link state instead of the form.
Manage Notifications
Visible copy
Page heading.
app/unsubscribe/page.tsx:90
Choose the emails you'd like to receive from Zivoe. You can update your preferences anytime you'd like.
Visible copy
Page subheading on the valid-token path.
unsubscribe/page.tsx:72
Transaction Receipts
Visible copy
First toggle label.
unsubscribe/_components/email-preferences-form.tsx:54
Receive email confirmations for deposits and redemptions
Visible copy
First toggle description.
email-preferences-form.tsx:55
Product Tips
Visible copy
Second toggle label.
email-preferences-form.tsx:60
Reminders and helpful product tips
Visible copy
Second toggle description.
email-preferences-form.tsx:61
Newsletter
Visible copy
Third toggle label.
email-preferences-form.tsx:66
Product updates, announcements, and market insights
Visible copy
Third toggle description, normal state.
email-preferences-form.tsx:70
Newsletter preference is temporarily unavailable. Please try again later.
Error
Replaces the newsletter description when the Beehiiv subscription state can't be read. The toggle is disabled.
email-preferences-form.tsx:69
Save
Visible copy
Submit button.
email-preferences-form.tsx:109
Saving...
Loading state
Submit button while preferences are being written.
email-preferences-form.tsx:105
Looking to unsubscribe from all email notifications? Turn off every available toggle above and click save.
Visible copy
Standing note under the form — there is no single “unsubscribe from everything” control.
email-preferences-form.tsx:117
Preferences Saved
Visible copy
Success toast title.
unsubscribe/_hooks/useSaveEmailPreferences.ts:47
Your email preferences have been updated.
Visible copy
Success toast description.
useSaveEmailPreferences.ts:48
Failed to save preferences.
Error
Toast when the save action rejects.
useSaveEmailPreferences.ts:37
Failed to update preferences. Please try again.
Error
Returned by the server action when the write fails.
server/actions/email-preferences.ts:78
Newsletter preference could not be updated right now. Please try again.
Error
Returned when the newsletter provider specifically fails, while other toggles saved fine.
server/actions/email-preferences.ts:100
At least one preference change is required.
Validation
Save pressed with nothing changed.
email-preferences.ts:29
dApp
Email preferences — Invalid link state
app.zivoe.com/unsubscribe with a missing, malformed, or expired token
This unsubscribe link is invalid or has expired.
Error
Replaces the page subheading.
unsubscribe/page.tsx:31
Open a newer Zivoe email to use its unsubscribe link, or sign in to manage your email preferences directly.
Visible copy
Recovery instruction under the error.
unsubscribe/page.tsx:35
Sign in
Visible copy
Recovery action.
unsubscribe/page.tsx:41
Contact support
Visible copy
Secondary recovery action.
unsubscribe/page.tsx:45
Failed to load email preferences.
Error
Shown when the token is valid but the preference read fails.
unsubscribe/page.tsx:63
This unsubscribe link is invalid or expired. Please open a newer email or sign in.
Error
Server-action equivalent, returned if the token fails validation at save time.
server/actions/email-preferences.ts:47
Invalid or expired unsubscribe token
Error
One-click unsubscribe endpoint response — the RFC 8058 header path mail clients call directly, never seen by a person.
api/unsubscribe/one-click/route.ts:13
dApp
Emails — Sign-in verification code
Sent on every OTP request — the highest-volume email we send
Sign in to Zivoe
Email
Subject line, and the heading inside the email.
server/utils/send-email.ts:31; emails/otp-email.tsx:9
Your Zivoe verification code is ready. It expires in 5 minutes.
Email
Preview text — the grey line shown next to the subject in an inbox list.
emails/otp-email.tsx:7
Enter this verification code to access your account:
Email
Body line above the code block.
otp-email.tsx
This code expires in 5 minutes
Email
Notice under the code.
otp-email.tsx:25
If you didn't request this code, you can safely ignore this email. Someone may have entered your email address by mistake.
Email
Security footer.
otp-email.tsx
Zivoe <verify@auth.zivoe.com>
Email
Sender identity for verification emails.
send-email.ts:28
Failed to send OTP email
Error
Server-side failure when the provider rejects the send. The user sees the generic send-failure toast.
server/auth.ts:113
dApp
Emails — Welcome
Sent after a user completes onboarding, unless Product Tips are off
Written in the first person from a named team member, not from the brand. The whole lifecycle series shares this voice.
Welcome to Zivoe
Email
Subject line and body heading.
send-email.ts:71; emails/welcome-email.tsx:12
Let's connect
Email
Preview text.
welcome-email.tsx:10
Hi There,
Email
Greeting. Note the capital T, which differs from the other emails' “Hi there,”.
welcome-email.tsx:7
I'm Thor from Zivoe's onboarding team, nice to meet you. I help support new users joining the platform.
Email
Opening paragraph.
welcome-email.tsx:18
I saw your account creation come through and wanted to check in to see if you have any immediate questions I can help answer.
Email
Second paragraph.
welcome-email.tsx:22
zMCA is a return-generating token providing on-chain access to short-duration private credit strategies, primarily revenue-based financing for small and medium-sized businesses.
Email
Product explainer paragraph.
welcome-email.tsx
Worth a quick chat?
Email
Closing line above the booking call-to-action.
welcome-email.tsx:31
Book a Call
Email
Call-to-action button, shared across the lifecycle emails.
emails/components/contact-cta-section.tsx:7
Thor · Onboarding, Zivoe · @thorabbasi
Email
Signature block under the call-to-action.
contact-cta-section.tsx:39
Thor from Zivoe <hello@auth.zivoe.com>
Email
Sender identity for all lifecycle emails.
send-email.ts:68
dApp
Emails — Deposit reminders
Two-part series to onboarded users with no deposit activity
Both emails have two regional variants of the same paragraph — one saying “eligible users” / “eligible individuals”, one omitting eligibility. Only one is sent per recipient.
Getting Started
Email
Subject line, first reminder.
send-email.ts:102
Ready to earn yield on private credit?
Email
Preview text, first reminder.
emails/first-deposit-reminder-email.tsx:18
Just wanted to follow up and say thanks for signing up. As a refresher, Zivoe is designed to provide eligible users on-chain access to private credit strategies backed by real business cash flows.
Email
Body paragraph, first reminder — eligibility-gated variant.
first-deposit-reminder-email.tsx:23
Just wanted to follow up and say thanks for signing up. As a refresher, Zivoe is designed to provide on-chain access to private credit strategies linked to real business cash flows.
Email
Body paragraph, first reminder — alternate variant with no eligibility language.
first-deposit-reminder-email.tsx:28
If you have any questions or want a walkthrough of how Zivoe works, happy to help.
Email
Closing line, first reminder, variant A.
first-deposit-reminder-email.tsx:35
If you have any questions or want to walk through the structure or diligence materials, happy to help.
Email
Closing line, first reminder, variant B.
first-deposit-reminder-email.tsx:36
Last Nudge
Email
Subject line, second reminder.
send-email.ts:133
Last chance to get started
Email
Preview text, second reminder.
emails/second-deposit-reminder-email.tsx:18
One more nudge, then I'll leave you alone.
Email
Opening line, second reminder.
second-deposit-reminder-email.tsx:21
Private credit has traditionally been reserved for institutional investors. Zivoe is designed to provide eligible individuals on-chain access to short-duration private credit strategies, primarily revenue-based financing for small and medium-sized businesses.
Email
Body paragraph, second reminder.
second-deposit-reminder-email.tsx:25
We're deploying into short-duration private credit, primarily merchant cash advances with 3 to 6 month turnover.
Email
Second paragraph, second reminder.
second-deposit-reminder-email.tsx:31
If you have any questions about how the protocol works or how to get started, happy to walk through it.
Email
Closing line, second reminder, variant A.
second-deposit-reminder-email.tsx:38
If you're still evaluating, happy to share access to our data room. Just let me know.
Email
Closing line, second reminder, variant B.
second-deposit-reminder-email.tsx:39
Go to App
Email
Call-to-action button on both reminders.
first-deposit-reminder-email.tsx:39
Unsubscribe
Email
Footer link in every lifecycle email, carrying the signed preference token.
emails/components/email-footer-row.tsx:35
Zivoe - RWA Credit Protocol
Email
Footer wordmark alt text in the shared email layout.
emails/components/email-layout.tsx:32
Product Tips <product-tips.zivoe.com>
Email
List identity used for unsubscribe headers on the reminder series.
send-email.ts:22
dApp
Analytics — PostHog event names
Not visible anywhere — this is the vocabulary of every dashboard and funnel built on our data
Renaming any of these breaks existing PostHog dashboards. The transaction events follow one shape: tx:{flow}_{step}, across six flows.
auth:sign-up
Analytics
A new account is created.
lib/analytics/events.ts:7
auth:otp_requested
Analytics
The user submits their email and a code is sent. Property: method = email_otp.
events.ts:8
auth:otp_resent
Analytics
The user presses resend and it succeeds.
events.ts:9
onboarding:started
Analytics
The onboarding page renders for a user who has not completed it. Captured server-side.
events.ts:11
onboarding:completed
Analytics
The final onboarding step is submitted successfully.
events.ts:10
wallet_connected
Analytics
A wallet is connected. Rate-limited to once per day per wallet.
events.ts:12
tx:deposit_started · _signature_rejected · _submitted · _receipt · _failed · _confirmed
Analytics
The six-step deposit funnel, from button press to confirmed receipt.
events.ts:13
tx:redeem_started · _signature_rejected · _submitted · _receipt · _failed · _confirmed
Analytics
The redemption-request funnel.
events.ts:19
tx:redeem_claim_started · _signature_rejected · _submitted · _receipt · _failed
Analytics
The USDC proceeds claim funnel.
events.ts:25
tx:redeem_cancel_started · _signature_rejected · _submitted · _receipt · _failed
Analytics
The cancellation funnel.
events.ts:30
tx:redeem_claim_returned_started · _signature_rejected · _submitted · _receipt · _failed
Analytics
The returned-shares claim funnel.
events.ts:35
tx:approval_started · _signature_rejected · _submitted · _confirmed · _failed
Analytics
The ERC-20 approval funnel that precedes a first deposit.
events.ts:40
dApp
Analytics — Event properties
Attached to every transaction event
Property names are snake_case in PostHog even though the code uses camelCase. Wallet addresses and hashes are lowercased before sending.
flow · step
Analytics
Which transaction type and which stage of it. flow is one of: deposit, redeem, redeem_claim, redeem_cancel, redeem_claim_returned, approval.
events.ts:86
wallet_address · chain_id · spender
Analytics
Who and where. chain_id defaults to the deployment's configured chain rather than a hardcoded mainnet.
events.ts:89
token_in · token_out · amount_in_raw · amount_out_raw
Analytics
What moved. Amounts are raw on-chain integers sent as strings, not decimal-adjusted.
events.ts:92
tx_hash · block_number · log_index · event_id · receipt_status
Analytics
On-chain identity of the transaction, populated from the receipt.
events.ts:96
error_type: user_rejected | simulation_failed | failed
Analytics
Attached to failure events. Distinguishes a user dismissing the wallet prompt from a transaction that could never have succeeded.
events.ts:107
Landing
Site-wide — Default SEO
<head> of every landing page unless a page overrides it
Zivoe | RWA Private Credit & Stablecoin Yield Protocol
SEO
Default browser tab title, OG title, and Twitter title. Note it differs from the dApp's title.
lib/seo.tsx:5
Zivoe is an RWA credit protocol helping qualified users access private credit yield through diversified loan portfolios, USDC deposits, and zMCA.
SEO
Default meta description, OG description, and Twitter description.
lib/seo.tsx:7
https://www.zivoe.com
SEO
Canonical origin — used for metadataBase, the sitemap, robots.txt host, and all structured-data IDs.
lib/seo.tsx:3
Zivoe
SEO
Author and creator in page metadata, and the Organization name in structured data.
app/layout.tsx:22; app/page.tsx:28
Landing
Home — How it works
zivoe.com — three-step explainer
The only genuinely sequential block on the page — the numbering carries real order.
Built For Institutions, Perfect For Retail
Visible copy
Section eyebrow.
home/_components/how-it-works/index.tsx:16
Earning Has Never Been Simpler
Visible copy
Section headline.
how-it-works/index.tsx:21
Start earning steady, risk-adjusted returns today — just deposit USDC.
Visible copy
Section body.
how-it-works/index.tsx:25
Step 1 · Deposit — Deposit USDC into Zivoe and receive zMCA.
Visible copy
First step card.
how-it-works/index.tsx:32
Step 2 · Earn — zMCA grows in value as interest is earned.
Visible copy
Second step card.
how-it-works/index.tsx:41
Step 3 · Redeem — Request to redeem your zMCA for USDC, subject to liquidity availability.
Visible copy
Third step card. This is the clearest statement anywhere that redemption is a request, not an instant swap.
how-it-works/index.tsx:50
Landing
Home — Portfolio and security
zivoe.com — lower sections
Meet the Portfolio Behind the Performance
Visible copy
Portfolio section headline.
home/_components/portfolio/index.tsx:18
Earn yield from a well-diversified private credit portfolio.
Visible copy
Portfolio section body.
portfolio/index.tsx:21
Live Since — September 2024
Visible copy
Portfolio stat. A hardcoded date.
portfolio/index.tsx:28
Geography — Americas & EU
Visible copy
Portfolio stat. The dApp writes the same fact as “Americas and EU”.
portfolio/index.tsx:34
Loan Portfolio
Visible copy
Label on the portfolio visualisation.
portfolio/index.tsx:61
View Portfolio
Visible copy
Call-to-action out to the portfolio breakdown.
portfolio/index.tsx:44
Wall Street-Grade Security
Visible copy
Infrastructure section eyebrow.
home/_components/infrastructure/index.tsx:13
Rest Easy, Knowing Your Assets Are Protected
Visible copy
Infrastructure section headline.
infrastructure/index.tsx:15
SPV Structure — User assets are held in special purpose vehicles, ensuring user assets remain protected.
Visible copy
First infrastructure card.
infrastructure/index.tsx:20
Custody Solutions — Zivoe will be integrating with industry-leading crypto custodians, offering an easy and secure way to deposit funds and manage positions.
Visible copy
Second infrastructure card. Future tense — worth a periodic check that it is still accurate.
infrastructure/index.tsx:28
Landing
Home — Experience and partners
zivoe.com — credibility section
Driven by Experience. Powered by Collaboration.
Visible copy
Section headline.
home/_components/experience/index.tsx:39
Zivoe is run by a team of industry veterans and supported by world-class partners in finance, security, and compliance.
Visible copy
Section body.
experience/index.tsx:44
Interested in working together?
Visible copy
Prompt above the contact call-to-action.
experience/index.tsx:48
Let's Talk
Visible copy
Contact call-to-action.
experience/index.tsx:53
Experienced Leadership — Our team combines expertise from leading financial institutions and DeFi protocols.
Visible copy
First credibility card.
experience/index.tsx:59
Meet the Team
Visible copy
Link to the about-us page.
experience/index.tsx:63
Audited by Top Security Firms — We work with industry-leading auditors to ensure our platform is secure and reliable.
Visible copy
Second credibility card.
experience/index.tsx:88
Review Our Audits
Visible copy
Link to the audits page in docs.
experience/index.tsx:98
Compliance-First Approach — We collaborate with Securitize and Chainalysis to ensure we meet the highest standards of regulatory compliance.
Visible copy
Third credibility card. Names two vendors publicly.
experience/index.tsx:113
Collaborating with Industry Leaders — We are proud to work with top-tier partners across the DeFi ecosystem to deliver the best results for our users.
Visible copy
Fourth credibility card, above the partner logo wall.
experience/index.tsx:126
Landing
About us — Mission and team
zivoe.com/about-us and /team
Ten team members are defined in code, each with a name, title, and biography. Editing any of them requires a deploy.
Meet the Team
Visible copy
Page hero headline.
about-us/_components/hero.tsx:13
We come from leading financial institutions and DeFi protocols including JP Morgan Chase, Wells Fargo, and Maple Finance.
Visible copy
Page hero body. The dApp's equivalent claim adds Capital One and quantifies it as “over 40 years”.
about-us/_components/hero.tsx:15
Our Mission
Visible copy
Mission section heading.
about-us/_components/mission/index.tsx:12
Zivoe ("z-eye-voh") is a Balkan word meaning "to life," reflecting our belief that finance should improve life, not limit it. We are modernizing private credit by connecting on-chain capital to real-world lending offerings that provide greater transparency, access, and efficiency. By building open financial infrastructure that enables sustainable yield and expands credit access to underserved markets, Zivoe is reshaping how capital moves across the global lending landscape.
Visible copy
Full mission statement — the longest single piece of brand copy on the site.
about-us/_components/mission/index.tsx:14
Jay Abbasi — Founder
Visible copy
Team member card and detail panel.
about-us/_components/team/index.tsx:213
Kristal Gruevski — Founder & General Counsel
Visible copy
Team member.
team/index.tsx:221
John Quarnstrom — Head of Technology
Visible copy
Team member.
team/index.tsx:229
Walt Ramsey — Head of Risk
Visible copy
Team member.
team/index.tsx:237
Chad Deal — Head of Compliance
Visible copy
Team member.
team/index.tsx:244
Shannon Wright — Controller
Visible copy
Team member.
team/index.tsx:251
Stephanie Puzzo — Head of Marketing
Visible copy
Team member.
team/index.tsx:258
Dennis Baca — Head of Product
Visible copy
Team member.
team/index.tsx:265
Thor Abbasi — Head of Investor Relations
Visible copy
Team member. The named sender of every lifecycle email.
team/index.tsx:272
Alex Serban — Lead Engineer
Visible copy
Team member.
team/index.tsx:280
Bio coming soon.
Visible copy
Fallback shown in the detail panel if a team member has no biography. Currently unreachable — all ten have one.
team/index.tsx:90
Next team member
Visible copy
Advances to the next biography inside the detail panel.
team/index.tsx:158
Close team member
Visible copy
Screen-reader label on the panel close button.
team/index.tsx:57
Team | Zivoe
SEO
Page title for /team.
app/team/page.tsx:10
Meet the team behind Zivoe.
SEO
Meta description for /team.
app/team/page.tsx:11
Landing
FAQ — Questions and answers
zivoe.com/faq — also published as FAQPage structured data for search engines
Eight questions, all hardcoded. These are the most substantive claims we make about fees, risk, and liquidity, and they are also what Google may surface directly in results.
Your Questions, Answered
Visible copy
Page headline.
app/faq/page.tsx:44
Here you can find answers to common questions about Zivoe, our features, and services.
Visible copy
Page subheading.
faq/page.tsx:46
What is Zivoe? — Zivoe is a real world asset (RWA) credit protocol that allows anyone who qualifies to gain tokenized exposure to the private credit market, an asset class historically favored by institutions for its strong risk-adjusted returns. By connecting stablecoin deposits to off-chain lending, Zivoe makes access to this segment available to individuals through yield offerings that were traditionally out of reach.
Visible copy
First question.
faq/page.tsx:73
How have these loans performed historically? — Private credit has shown consistent performance across market cycles, providing stable returns even when public markets experienced volatility. During the 2008 financial crisis, when traditional credit contracted sharply, many private lenders continued to perform, supported by disciplined underwriting and diversified borrower bases. This history underscores the resilience of private credit as an asset class.
Visible copy
Second question. Makes a historical performance claim about the asset class, not about Zivoe.
faq/page.tsx:78
What are the risks? — Note, Zivoe only serves as a technology interface, and as with all forms of private credit exposure, there are risks. Borrower defaults, underwriting errors, and broader economic conditions can all impact loan performance. Liquidity is also a consideration, as withdrawals are contingent on available liquidity. To mitigate these risks, Zivoe partners with established asset originators who handle underwriting and loan origination.
Visible copy
Third question — the primary risk disclosure outside the footer disclaimer.
faq/page.tsx:83
How do I earn yield? — Depositors receive zMCA, the Centrifuge pool's share token, by depositing USDC. These funds are deployed off-chain into yield-generating private credit assets originated by Zivoe's partners. Interest and principal payments from those assets increase the pool's assets under management and are reflected in the zMCA Token Price.
Visible copy
Fourth question. Names Centrifuge explicitly and uses the Token Price / AUM vocabulary.
faq/page.tsx:88
What are the fees? — Zivoe currently takes a 15% protocol fee on the gross interest income generated from loan repayments. This fee supports ongoing operational costs, audits, and future development of the protocol. The remaining yield accrues to zMCA holders through the pool's Token Price.
Visible copy
Fifth question. The dApp separately states a 2.5% APR management fee — two different fees disclosed in two different places.
faq/page.tsx:93
Is there a minimum deposit amount? — Unlike many other real world asset credit protocols, Zivoe is built to be accessible to all who qualify, and as such there is no minimum deposit amount. You can deposit as much or as little as you would like.
Visible copy
Sixth question.
faq/page.tsx:98
What is the lockup and liquidity policy? — Zivoe enforces no lockup period. You can submit a redemption request in the dApp at any time. Requests are processed periodically and remain subject to available liquidity; once processed, the USDC is ready to claim in the dApp.
Visible copy
Seventh question. This one has a separate plain-text copy for structured data, so a change must be made twice in the same file.
faq/page.tsx:103
Has Zivoe been audited? — Yes. Zivoe's smart contracts have been audited by Runtime Verification and Sherlock, two leading security firms in the blockchain industry. In addition to these audits, Zivoe employs continuous monitoring systems to track protocol activity, flag anomalies, and uphold operational security standards.
Visible copy
Eighth question. Names both audit firms publicly.
faq/page.tsx:110
FAQ | Zivoe
SEO
Page title.
faq/page.tsx:16
Answers to common questions about Zivoe, our features, and services.
SEO
Meta description.
faq/page.tsx:17
Landing
Insights — Index and article pages
zivoe.com/insights — the article shell. Article content itself is CMS-managed.
Insights
Visible copy
Index page heading.
app/insights/page.tsx:80
Learn more about Zivoe, our approach and company updates.
Visible copy
Index page subheading.
insights/page.tsx:82
All
Visible copy
The default category filter, shown before the CMS-defined categories.
insights/page.tsx:90
Search articles
Visible copy
Search field label and placeholder.
insights/_components/search-form.tsx:65
Clear search
Visible copy
Screen-reader label on the clear button inside the search field.
search-form.tsx:72
No insights matched your filters.
Visible copy
Empty state heading when a search or category filter returns nothing.
insights/page.tsx:136
Try a different search term or reset the category filter to explore the latest updates from Zivoe.
Visible copy
Empty state body.
insights/page.tsx:138
Have any questions? Contact us
Visible copy
Contact banner at the foot of the index.
insights/page.tsx:113
Previous page / Next page
Visible copy
Screen-reader labels on the pagination arrows.
insights/_components/pagination.tsx:47
Back
Visible copy
Returns from an article to the index.
insights/[slug]/page.tsx:141
Published · Category · Author
Visible copy
Metadata labels on an article page. The values come from the CMS.
insights/[slug]/page.tsx:172, 227
Related Articles
Visible copy
Heading above the recommendation row at the foot of an article.
insights/[slug]/page.tsx:191
Unknown author
Visible copy
Fallback when a published article has no author set in the CMS.
server/insights/normalize.ts:129
Uncategorized
Visible copy
Fallback when a published article has no category set in the CMS.
server/insights/normalize.ts:140
Insights | Zivoe
SEO
Index page title.
insights/page.tsx:31
Read the latest Zivoe insights, updates, and perspectives on private credit.
SEO
Index page meta description.
insights/page.tsx:32
Insight Not Found | Zivoe
SEO
Page title when an article slug does not resolve.
insights/[slug]/page.tsx:49
Preview mode is enabled. Draft CMS content is visible on this page.
Visible copy
Banner shown only to editors following a CMS preview link.
insights/page.tsx:153
Preview mode is enabled for this article.
Visible copy
Same banner on an individual article.
insights/[slug]/page.tsx:184
Leave preview
Visible copy
Exits CMS preview mode and returns to published content.
insights/_components/leave-preview.tsx:19
Embedded LinkedIn post / Embedded YouTube video
Visible copy
Screen-reader titles on embeds inside article bodies.
insights/_components/rich-text/embeds.tsx:65
Landing
Error pages — Not found
Any unresolved landing URL
This page is not available
Visible copy
Not-found heading. Softer than the dApp's “Page not found”.
app/not-found.tsx:26
The link may be outdated, or the page may have moved.
Visible copy
Not-found body.
app/not-found.tsx:28
Return Home
Visible copy
Not-found action. The dApp's equivalent says “Go Home”.
app/not-found.tsx:34
Page Not Found | Zivoe
SEO
Not-found page title.
app/not-found.tsx:10
The Zivoe page you are looking for could not be found.
SEO
Not-found meta description.
app/not-found.tsx:11
Shared UI
Component defaults — Built into the design system
packages/ui — inherited by both applications unless a caller overrides them
These are the strings nobody writes and nobody reviews, because they arrive with the component.
Loading...
Loading state
What the Button spinner announces to screen readers when a caller passes no pendingContent. Matches the visible text callers do pass.
packages/ui/src/core/button/button.tsx:119
Close dialog
Visible copy
Screen-reader label on the close button of every dialog.
packages/ui/src/core/dialog/dialog.tsx:89
Clear input
Visible copy
Screen-reader label on the clear button inside search inputs.
packages/ui/src/core/input/input.tsx:50
More information
Visible copy
Screen-reader label on the contextual help trigger — the small “?” affordance next to labels.
packages/ui/src/core/contextual-help/contextual-help.tsx:26
©Zivoe {year}. All Rights Reserved.
Visible copy
Shown at the foot of the mobile navigation drawer, from the same shared helper as both app footers.
packages/ui/src/components/navigation-mobile-dialog.tsx:11