Skip to content

Data Model: Offer

Purpose: The Offer entity represents a single, distinct RWA investment opportunity presented to investors on the platform. It acts as the central container for all financial terms, legal information, marketing content, and status tracking related to a specific asset being tokenized.

Fields/Attributes

The table below details every piece of information held by the Offer entity.

NameTypeDescriptionValidation Rules
Core Identification
idUnique IdentifierThe primary system ID for the offer. ️• Required • System-generated, Read-only
statusChoiceThe current stage of the offer in its lifecycle.• Required • Must be one of: NEW, DRAFT, LEGAL-REVIEW, LEGAL-ACCEPTED, LEGAL-DECLINED, PUBLISHED, CLOSED-SUCCESSFULLY, CLOSED-UNSUCCESSFULLY, EXITED
nameTextThe primary public-facing name of the offer.• Required • Could be edited after status is PUBLISHED
slugTextA URL-friendly version of the offer name.• Required, Unique • Auto-generated from name • Could be edited after status is PUBLISHED
legal_nameTextThe formal legal name of the entity or asset being offered.• Required • Cannot be edited after status is PUBLISHED
Financial & Offering Terms
valuationCurrencyThe total estimated value of the underlying asset.• Required • Must be a positive number
capital_being_raisedCurrencyThe total funding goal for this offer.• Required • Must be a positive number • Cannot be edited after status is PUBLISHED
price_per_shareCurrencyThe price for a single share or token in the offer.• Required • Must be a positive number • Cannot be edited after status is PUBLISHED
minimum_investmentIntegerThe minimum N of shares/tokens an investor must commit to participate.• Required • Must be a positive number
total_sharesIntegerThe total number of shares/tokens available for purchase in this offer.• Read-only • Calculated (TBD): capital_being_raised / price_per_share
subscribed_sharesIntegerThe number of shares reserved by investors through submitted (but not yet fully funded) investments.• Read-only • System-managed
confirmed_sharesIntegerThe number of shares corresponding to fully funded and legally confirmed investments.• Read-only • System-managed
security_typeChoiceThe legal classification of the security being offered.• Required • Must be one of: EQUITY, PREFERRED_EQUITY, DEBT, CONVERTIBLE_DEBT, etc.
RWA Details
asset_category (TBD)ChoiceThe high-level category of the underlying real-world asset. Helps with filtering and classification.• Required • Must be one of: REAL_ESTATE, PRIVATE_CREDIT, ART, INFRASTRUCTURE, etc.
asset_status (TBD)ChoiceThe current operational status of the physical asset.• Optional • Must be one of: OPERATIONAL, UNDER_DEVELOPMENT, ACQUISITION_PENDING, etc.
System & Integration IDs
author_idForeign KeyA reference to the admin user who created the offer (issuer).• Required • System-set on creation
esign_template_idTextThe unique identifier for the document template from the e-signature provider.• Required before moving to LEGALLY ACCEPTED status
wallet_idTextThe ID for the dedicated offer's wallet where funds will be collected post-escrow.• System-generated
Escrow & Payment Details
payment_instructionsJSONA structured object containing all wire details needed for an investor to send funds.• Required before status is PUBLISHED
Asset Location
address_1TextThe primary street address of the asset.• Required
address_2TextThe secondary address line (e.g., Suite, Apt).• Optional
cityTextThe city where the asset is located.• Required
stateTextThe state or province.• Required
zipcodeTextThe postal or ZIP code.• Required
countryChoiceThe country where the asset is located.• Required • Defaults to 'USA'
Marketing & Presentation
titleTextA short, compelling title for display on offer cards.• Required
descriptionRich TextA detailed description of the investment opportunity.• Required
highlightsRich TextBullet points or key takeaways about the offer.• Optional
additional_detailsRich TextAny other relevant information for investors.• Optional
thumbnail_urlURLA link to the primary image used for the offer on listing pages.• Optional • Must be a valid image URL
website_urlURLThe official website for the asset or its managing company.• Optional • Must be a valid URL
social_linksJSONA structured object containing links to social media profiles (e.g., {"facebook": "url", "linkedin": "url"}).• Optional
seo_titleTextA custom title for search engine optimization.• Optional
seo_descriptionTextA custom meta description for search engines.• Optional
Metadata
publication_dateTimestampThe exact date and time the offer became visible to investors.• Read-only • System-set when status changes to PUBLISHED
close_dateDateThe planned date when the offer will stop accepting new investments.• Required • Must be in the future
created_atTimestampThe date and time the offer record was created.• Read-only • System-set on creation
updated_atTimestampThe date and time the offer was last modified.• Read-only • System-managed
regulation_typeChoiceThe specific legal framework under which the offer is conducted. This dictates the investor eligibility and verification rules for this offer.• Required • Must be one of: MICA, REG_A_T1, REG_A_T2, REG_CF, REG_D_506B, REG_D_506C

Security-Specific Terms

NameTypeDescriptionValidation Rules
liquidation_preferenceTextA term defining the payout order in a liquidation event (e.g., 1x, 2x participating).• Required if security_type is PREFERRED_EQUITY
dividend_typeChoiceThe method by which dividends or returns will be paid.• Required if security_type is PREFERRED_EQUITY • Must be one of: CUMULATIVE, NON_CUMULATIVE, PIK
pre_money_valuationCurrencyThe valuation of the company or asset before this investment round is included.• Required if security_type is COMMON_EQUITY or PREFERRED_EQUITY • Must be a positive number
voting_rightsChoiceDefines the shareholder's power in corporate governance.• Required if security_type is COMMON_EQUITY • Must be one of: ONE_VOTE_PER_SHARE, NON_VOTING, CUSTOM
interest_rate_apyPercentageThe Annual Percentage Yield (APY) that will be paid to the debt holders.• Required if security_type is DEBT or CONVERTIBLE_NOTE • Must be a positive number
payment_scheduleChoiceThe frequency of interest payments.• Required if security_type is DEBT • Must be one of: INTEREST_ONLY_QUARTERLY, MONTHLY, AT_MATURITY
term_lengthIntegerThe duration of the loan before the principal is due.• Required if security_type is DEBT or CONVERTIBLE_NOTE • Must be a positive integer
term_unitChoiceThe unit of time for the term length.• Required if security_type is DEBT or CONVERTIBLE_NOTE • Must be one of: MONTHS, YEARS
maturity_dateDateThe specific date on which the loan matures and the principal must be repaid.• Required if security_type is DEBT or CONVERTIBLE_NOTE • Must be a future date
valuation_capCurrencyThe maximum company valuation at which a SAFE or Convertible Note will convert into equity.• Required if security_type is SAFE or CONVERTIBLE_NOTE • Must be a positive number
discount_ratePercentageAn optional discount applied to the future valuation for SAFE or note holders when their investment converts to equity.• Optional • Applicable only if security_type is SAFE or CONVERTIBLE_NOTE • Must be between 0 and 100
targeted_irrPercentageThe projected Internal Rate of Return that the investment aims to generate.• Optional • Applicable if security_type is LLC_MEMBERSHIP_UNITS
targeted_equity_multipleDecimalThe projected total return on investment, expressed as a multiple of the initial capital (e.g., 2.5).• Optional • Applicable if security_type is LLC_MEMBERSHIP_UNITS
targeted_cash_on_cashPercentageThe projected annual pre-tax cash flow as a percentage of the total cash invested.• Optional • Applicable if security_type is LLC_MEMBERSHIP_UNITS
property_typeChoiceFor real estate assets, specifies the category of the property.• Optional • Applicable if asset_category is REAL_ESTATE • Must be one of: MULTIFAMILY, COMMERCIAL, INDUSTRIAL, etc.
distribution_waterfallRich TextA detailed description of the legal and financial structure defining the order in which profits are distributed.• Required if security_type is LLC_MEMBERSHIP_UNITS
repayment_multipleDecimalThe total amount the investor is entitled to receive, expressed as a multiple of their initial investment (e.g., 2.0).• Required if security_type is REVSHARE • Must be a positive number
revenue_share_percentagePercentageThe percentage of the company's gross revenue allocated to the investor repayment pool.• Required if security_type is REVSHARE • Must be between 0 and 100
projected_termTextAn estimated timeframe for the investor to receive their full repayment multiple (e.g., "36 Months").Optional • Applicable if security_type is REVSHARE

Key Relationships

  • Investments: An Offer can have many Investments (a one-to-many relationship). Each Investment record represents a single investor's financial commitment to this specific offer.

  • Wallet: Each Offer has one dedicated Wallet (a one-to-one relationship) to aggregate and hold investor funds after they are released from "smart escrow" account. This is represented by the wallet_id field on the Offer model.

  • Smart Contract: An Offer is represented on the blockchain by a single Smart Contract (a one-to-one relationship). This contract manages the ownership tokens, distribution logic, and other on-chain functions for the asset.

  • Filer: An Offer has many Documents associated with it (a one-to-many relationship). These files represent all legal, financial, and marketing materials. For details, see the Filer Model.

  • Profiles (Investors): An Offer is invested in by many Profiles (a many-to-many relationship). This connection is established through the Investment model, which links a specific Profile to a specific Offer.

Auditing & Event History

Every significant action or change made to an Offer is recorded as an immutable entry in a system-wide EventLog. This creates a complete and tamper-proof audit trail for compliance and operational tracking.