From 9ff6eeba375112b9a39bd4920e763a53660ae8c5 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Sun, 29 Sep 2024 23:52:41 +0200 Subject: [PATCH 01/28] Create erc-draft_t_financial_statements_s.md title: Transparent Financial Statements description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/e-i-p-8900-transparent-financial-statements/21191 status: Review type: Standards Track category: Interface created: 2024-09-20 requires: 20 --- ERCS/erc-draft_t_financial_statements_s.md | 554 +++++++++++++++++++++ 1 file changed, 554 insertions(+) create mode 100644 ERCS/erc-draft_t_financial_statements_s.md diff --git a/ERCS/erc-draft_t_financial_statements_s.md b/ERCS/erc-draft_t_financial_statements_s.md new file mode 100644 index 0000000000..28930e3ae7 --- /dev/null +++ b/ERCS/erc-draft_t_financial_statements_s.md @@ -0,0 +1,554 @@ +--- +eip: +title: Transparent Financial Statements +description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. +author: Ignacio Ceaglio (@Nachoxt17) +discussions-to: https://ethereum-magicians.org/t/e-i-p-8900-transparent-financial-statements/21191 +status: Review +type: Standards Track +category: Interface +created: 2024-09-20 +requires: 20 +--- + +## Abstract + +This proposal defines a standard A.P.I. that enables E.V.M. Blockchain-based companies (or also called "Protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through Solidity Smart Contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the S.E.C. 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (E.B.I.T.D.A.) and +Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial health of blockchain-based companies in a standardized, transparent, clear and reliable format. + +## Motivation + +The motivation of this E.I.P. is to Bring Seriousness to the CryptoCurrencies Investments Market. Currently, the situation is as follows: + +Most [ERC-20](./eip-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. + +Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said Protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. + +This E.I.P. will improve that by giving users and investors transparent, clear and factual financial information to work with when analyzing as a potential investment the such +E.V.M. Blockchain-based company that implements this E.I.P. in their Solidity Smart Contracts, and that will generate Trust, Transparency and Seriousness in the CryptoCurrencies Investments Market long term. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. + +All Transparent Financial Statements Standard implementations MUST implement ERC-20 to represent shares, and the financial numbers displayed in a StableCoin's value. + +All Transparent Financial Statements MUST implement ERC-20's optional metadata extensions. +The `name` and `symbol` functions SHOULD reflect the underlying token's `name` and `symbol` in some way. + +All methods MUST be of visibility `public`. + +All methods MUST return the `stablecoin`. + +_Timestamp Constraint_: For all methods, startTimestamp MUST be less than or equal to endTimestamp. If startTimestamp is equal to endTimestamp, the method returns a balance sheet snapshot. If startTimestamp is less than endTimestamp, the method returns an income statement for that period. + +_Output Structs_: Instead of a single `uint256` value, each method returns a `Struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. + +### Definitions: + +- Currency: The individual StableCoin used to value the publicly displayed financial numbers. +- Revenue: Total earnings from selling products or services before expenses. +- Cost of Goods Sold (C.O.G.S.): Direct costs for producing goods/services, including labor and materials. +- Operating Expenses: Expenses like Selling, General, and Administrative, Research and Development, and other operational costs. +- Operating Income: Revenue minus operating expenses. +- E.B.I.T.D.A.: Earnings Before Interest, Taxes, Depreciation, and Amortization. +- Other Income and Expenses: Non-operating income, such as interest, investment gains or losses. +- Net Income: Profit after all expenses, taxes, and deductions. +- E.P.S.: Earnings per Share Token (ERC-20), showing profit allocated per share. + +### Methods + +#### currency + +Returns the `address` of the individual StableCoin used to value the publicly displayed financial numbers. + +```yaml +- name: address + type: function + visibility: public + stateMutability: view + inputs: + /none/ + outputs: + - name: currencyAddress + type: address + +``` + +#### revenue + +Returns total revenue generated by the protocol within a time period. + +```yaml +- name: revenue + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: RevenueStruct + type: struct + fields: + - name: grossRevenue + type: uint256 + - name: optionalAdditionalRevenueDetail1 + type: uint256 + - name: optionalAdditionalRevenueDetailN + type: uint256 + +``` + +#### cogs + +Returns the cost of goods sold within a specified period. + +```yaml +- name: cogs + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: COGSStruct + type: struct + fields: + - name: totalCOGS + type: uint256 + - name: optionalAdditionalCOGSDetail1 + type: uint256 + - name: optionalAdditionalCOGSDetailN + type: uint256 + +``` + +#### operatingExpenses + +Returns the total operating expenses within a specified period. + +```yaml +- name: operatingExpenses + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: OperatingExpensesStruct + type: struct + fields: + - name: totalOperatingExpenses + type: uint256 + - name: optionalAdditionalExpenseDetail1 + type: uint256 + - name: optionalAdditionalExpenseDetailN + type: uint256 + +``` + +#### operatingIncome + +Returns operating income for the specified period (Revenue - COGS - Operating Expenses). + +```yaml +- name: operatingIncome + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: OperatingIncomeStruct + type: struct + fields: + - name: totalOperatingIncome + type: uint256 + - name: optionalAdditionalIncomeDetail1 + type: uint256 + - name: optionalAdditionalIncomeDetailN + type: uint256 + +``` + +#### ebitda + +Returns EBITDA for the given period. + +```yaml +- name: ebitda + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: EBITDAstruct + type: struct + fields: + - name: totalEBITDA + type: uint256 + - name: optionalAdditionalEBITDADetail1 + type: uint256 + - name: optionalAdditionalEBITDADetailN + type: uint256 + +``` + +#### otherIncomeExpenses + +Returns non-operating income and expenses, such as interest and investment gains or losses, for the specified period. + +```yaml +- name: otherIncomeExpenses + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: OtherIncomeExpensesStruct + type: struct + fields: + - name: totalOtherIncome + type: uint256 + - name: totalOtherExpenses + type: uint256 + - name: totalOtherIncomeDetail1 + type: uint256 + - name: totalOtherExpensesDetail1 + type: uint256 + - name: totalOtherIncomeDetailN + type: uint256 + - name: totalOtherExpensesDetailN + type: uint256 + +``` + +#### netIncome + +Returns net income for the period (Operating Income + Other Income/Expenses - Taxes - Depreciation). + +```yaml +- name: netIncome + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: NetIncomeStruct + type: struct + fields: + - name: totalNetIncome + type: uint256 + - name: optionalAdditionalNetIncomeDetail1 + type: uint256 + - name: optionalAdditionalNetIncomeDetailN + type: uint256 + +``` + +#### earningsPerShare + +Returns Earnings Per Share Token (EPS) for the period. + +```yaml +- name: earningsPerShare + type: function + visibility: public + stateMutability: view + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: EPSstruct + type: struct + fields: + - name: basicEPS + type: uint256 + - name: dilutedEPS + type: uint256 + - name: EPSDetail1 + type: uint256 + - name: EPSDetailN + type: uint256 + +``` + +#### fullFinancialReport + +Returns a comprehensive struct that includes all the prior financial details of the Protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, and EPS into a unified `Struct`. + +```yaml +- name: fullFinancialReport + type: function + stateMutability: view + visibility: public + inputs: + - name: startTimestamp + type: uint256 + - name: endTimestamp + type: uint256 + outputs: + - name: FullFinancialsStruct + type: struct + fields: + - name: RevenueStruct + type: struct + - name: COGSStruct + type: struct + - name: OperatingExpensesStruct + type: struct + - name: OperatingIncomeStruct + type: struct + - name: EBITDAstruct + type: struct + - name: OtherIncomeExpensesStruct + type: struct + - name: NetIncomeStruct + type: struct + - name: EPSstruct + type: struct + +``` + +## Rationale + +The current state of token investment analysis is opaque, with most information presented in an abstract and non-quantitative form. This standard A.P.I. ensures a consistent and reliable way for investors to evaluate blockchain projects based on real financial data published directly on-chain, not just speculative promises. This will establish greater +trust in the cryptocurrency markets and align token analysis with the standards of traditional equity markets. + +ERC-20 is enforced because implementation details like Earnings Per Token calculation directly carry over to the accounting. This standardization makes the Transparent Financial Statements compatible with all ERC-20 use cases. + +This implementation enables the Protocol to share their financial information both as their latest updated Balance Sheet (if the user chooses to just see a current snapshot of +the financial state of the company) and as an Income Statement (if the user chooses to see the evolution of the financial state of the company between two different block +timestamps) and also is thought to interact with other separated Smart Contracts of the same Protocol from which the financial information will be sent. + +## Backwards Compatibility + +Transparent Financial Statements Standard is fully backward compatible with the ERC-20 standard and has no known compatibility issues with other standards. + +## Reference Implementation + + +_NOTE: This Reference Implementation is a placeholder. It will be improved in the future from the feedback received._ + + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +interface IERC20 { + function name() external view returns (string memory); + function symbol() external view returns (string memory); +} + +contract TransparentFinancialStatements { + + address public stablecoin; + + struct RevenueStruct { + uint256 grossRevenue; + uint256 optionalAdditionalRevenueDetail1; + uint256 optionalAdditionalRevenueDetailN; + } + + struct COGSStruct { + uint256 totalCOGS; + uint256 optionalAdditionalCOGSDetail1; + uint256 optionalAdditionalCOGSDetailN; + } + + struct OperatingExpensesStruct { + uint256 totalOperatingExpenses; + uint256 optionalAdditionalExpenseDetail1; + uint256 optionalAdditionalExpenseDetailN; + } + + struct OperatingIncomeStruct { + uint256 totalOperatingIncome; + uint256 optionalAdditionalIncomeDetail1; + uint256 optionalAdditionalIncomeDetailN; + } + + struct EBITDAstruct { + uint256 totalEBITDA; + uint256 optionalAdditionalEBITDADetail1; + uint256 optionalAdditionalEBITDADetailN; + } + + struct OtherIncomeExpensesStruct { + uint256 totalOtherIncome; + uint256 totalOtherExpenses; + uint256 totalOtherIncomeDetail1; + uint256 totalOtherExpensesDetail1; + uint256 totalOtherIncomeDetailN; + uint256 totalOtherExpensesDetailN; + } + + struct NetIncomeStruct { + uint256 totalNetIncome; + uint256 optionalAdditionalNetIncomeDetail1; + uint256 optionalAdditionalNetIncomeDetailN; + } + + struct EPSstruct { + uint256 basicEPS; + uint256 dilutedEPS; + uint256 EPSDetail1; + uint256 EPSDetailN; + } + + struct FullFinancialsStruct { + RevenueStruct revenue; + COGSStruct cogs; + OperatingExpensesStruct operatingExpenses; + OperatingIncomeStruct operatingIncome; + EBITDAstruct ebitda; + OtherIncomeExpensesStruct otherIncomeExpenses; + NetIncomeStruct netIncome; + EPSstruct eps; + } + + constructor(address _stablecoin) { + stablecoin = _stablecoin; + } + + function currency() public view returns (address) { + return stablecoin; + } + + function revenue(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (RevenueStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return revenue details + return RevenueStruct(1000, 500, 100); // Example values + } + + function cogs(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (COGSStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return COGS details + return COGSStruct(400, 150, 50); // Example values + } + + function operatingExpenses(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (OperatingExpensesStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return operating expenses details + return OperatingExpensesStruct(300, 100, 50); // Example values + } + + function operatingIncome(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (OperatingIncomeStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return operating income details + return OperatingIncomeStruct(300, 100, 50); // Example values + } + + function ebitda(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (EBITDAstruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return EBITDA details + return EBITDAstruct(700, 200, 100); // Example values + } + + function otherIncomeExpenses(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (OtherIncomeExpensesStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return other income/expenses details + return OtherIncomeExpensesStruct(100, 50, 20, 10, 30, 20); // Example values + } + + function netIncome(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (NetIncomeStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return net income details + return NetIncomeStruct(600, 200, 100); // Example values + } + + function earningsPerShare(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (EPSstruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return EPS details + return EPSstruct(10, 8, 2, 1); // Example values + } + + function fullFinancialReport(uint256 startTimestamp, uint256 endTimestamp) + public + view + returns (FullFinancialsStruct memory) + { + require(startTimestamp <= endTimestamp, "Invalid timestamps"); + // Logic to calculate and return all financial details + return FullFinancialsStruct( + revenue(startTimestamp, endTimestamp), + cogs(startTimestamp, endTimestamp), + operatingExpenses(startTimestamp, endTimestamp), + operatingIncome(startTimestamp, endTimestamp), + ebitda(startTimestamp, endTimestamp), + otherIncomeExpenses(startTimestamp, endTimestamp), + netIncome(startTimestamp, endTimestamp), + earningsPerShare(startTimestamp, endTimestamp) + ); + } +} + +``` + +## Security Considerations + +This E.I.P. involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. + +Needs discussion. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From e58b78bbe81585d55c28019b0f32e8dcd604f52a Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:07:10 +0200 Subject: [PATCH 02/28] Rename erc-draft_t_financial_statements_s.md to erc-review_financial_statements.md --- ...nancial_statements_s.md => erc-review_financial_statements.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ERCS/{erc-draft_t_financial_statements_s.md => erc-review_financial_statements.md} (100%) diff --git a/ERCS/erc-draft_t_financial_statements_s.md b/ERCS/erc-review_financial_statements.md similarity index 100% rename from ERCS/erc-draft_t_financial_statements_s.md rename to ERCS/erc-review_financial_statements.md From 118e8cbef0ee5388765cddd343485fc5e11d668f Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:09:30 +0200 Subject: [PATCH 03/28] Rename erc-review_financial_statements.md to erc-###.md --- ERCS/{erc-review_financial_statements.md => erc-###.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ERCS/{erc-review_financial_statements.md => erc-###.md} (100%) diff --git a/ERCS/erc-review_financial_statements.md b/ERCS/erc-###.md similarity index 100% rename from ERCS/erc-review_financial_statements.md rename to ERCS/erc-###.md From 94d9cf10bffb46b5fb3b9e13eda70b57cbb29b81 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:12:37 +0200 Subject: [PATCH 04/28] Rename erc-###.md to erc-####.md --- ERCS/{erc-###.md => erc-####.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ERCS/{erc-###.md => erc-####.md} (100%) diff --git a/ERCS/erc-###.md b/ERCS/erc-####.md similarity index 100% rename from ERCS/erc-###.md rename to ERCS/erc-####.md From 2539b2a29dc77141233fbdc34ab2c5795ea5cba6 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:18:14 +0200 Subject: [PATCH 05/28] Update and rename erc-####.md to erc-659.md --- ERCS/{erc-####.md => erc-659.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename ERCS/{erc-####.md => erc-659.md} (99%) diff --git a/ERCS/erc-####.md b/ERCS/erc-659.md similarity index 99% rename from ERCS/erc-####.md rename to ERCS/erc-659.md index 28930e3ae7..ef96b3fe6b 100644 --- a/ERCS/erc-####.md +++ b/ERCS/erc-659.md @@ -1,5 +1,5 @@ --- -eip: +erc: title: Transparent Financial Statements description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) From 5deb9ef4b699da5d627e619f1b6c1cda0254d473 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:19:33 +0200 Subject: [PATCH 06/28] Update erc-659.md --- ERCS/erc-659.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-659.md b/ERCS/erc-659.md index ef96b3fe6b..0ae8a257c0 100644 --- a/ERCS/erc-659.md +++ b/ERCS/erc-659.md @@ -1,5 +1,5 @@ --- -erc: +erc: 659 title: Transparent Financial Statements description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) @@ -20,7 +20,7 @@ Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial The motivation of this E.I.P. is to Bring Seriousness to the CryptoCurrencies Investments Market. Currently, the situation is as follows: -Most [ERC-20](./eip-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. +Most [ERC-20](./erc-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said Protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. From bb56ca807bf515341a3cc75994a0e464078f86d7 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:21:42 +0200 Subject: [PATCH 07/28] Update erc-659.md --- ERCS/erc-659.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-659.md b/ERCS/erc-659.md index 0ae8a257c0..ea84e37e7b 100644 --- a/ERCS/erc-659.md +++ b/ERCS/erc-659.md @@ -1,9 +1,9 @@ --- -erc: 659 +eip: 659 title: Transparent Financial Statements description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) -discussions-to: https://ethereum-magicians.org/t/e-i-p-8900-transparent-financial-statements/21191 +discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 status: Review type: Standards Track category: Interface From 4597eb99bfd1ed1c2dfb6406b43cf409fb286789 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 00:24:36 +0200 Subject: [PATCH 08/28] Update erc-659.md --- ERCS/erc-659.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-659.md b/ERCS/erc-659.md index ea84e37e7b..647c1517d3 100644 --- a/ERCS/erc-659.md +++ b/ERCS/erc-659.md @@ -6,7 +6,7 @@ author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 status: Review type: Standards Track -category: Interface +category: ERC created: 2024-09-20 requires: 20 --- From b69dc06f9312fc0a88a3279205d111e6ef283411 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Mon, 30 Sep 2024 01:05:34 +0200 Subject: [PATCH 09/28] Update erc-659.md --- ERCS/erc-659.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-659.md b/ERCS/erc-659.md index 647c1517d3..96f64faedb 100644 --- a/ERCS/erc-659.md +++ b/ERCS/erc-659.md @@ -20,7 +20,7 @@ Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial The motivation of this E.I.P. is to Bring Seriousness to the CryptoCurrencies Investments Market. Currently, the situation is as follows: -Most [ERC-20](./erc-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. +Most [ERC-20](./eip-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said Protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. From 498df26713eb2579f4a0723a1736fa3a107e8be3 Mon Sep 17 00:00:00 2001 From: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Date: Tue, 1 Oct 2024 10:19:48 -0400 Subject: [PATCH 10/28] Update and rename erc-659.md to erc-7776.md --- ERCS/{erc-659.md => erc-7776.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename ERCS/{erc-659.md => erc-7776.md} (99%) diff --git a/ERCS/erc-659.md b/ERCS/erc-7776.md similarity index 99% rename from ERCS/erc-659.md rename to ERCS/erc-7776.md index 96f64faedb..d9cc31017f 100644 --- a/ERCS/erc-659.md +++ b/ERCS/erc-7776.md @@ -1,5 +1,5 @@ --- -eip: 659 +eip: 7776 title: Transparent Financial Statements description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) From 1f438bde9ff241547c1daf19c25756f746dd0790 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 01:56:24 +0200 Subject: [PATCH 11/28] Improved Specification for more Transparency. Improved Specification for more Transparency. --- ERCS/erc-7776.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index d9cc31017f..fda84e0f2c 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -38,7 +38,9 @@ The `name` and `symbol` functions SHOULD reflect the underlying token's `name` a All methods MUST be of visibility `public`. -All methods MUST return the `stablecoin`. +All methods MUST return their financial numbers valued in the provided `stablecoin`. + +If the contract owner uses data or methods from other owned smart contracts external to their implementation of ERC-7776, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. _Timestamp Constraint_: For all methods, startTimestamp MUST be less than or equal to endTimestamp. If startTimestamp is equal to endTimestamp, the method returns a balance sheet snapshot. If startTimestamp is less than endTimestamp, the method returns an income statement for that period. From d30ad1df8dbcb4d005d835d4489a49c7b0cee6f2 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:04:51 +0200 Subject: [PATCH 12/28] Update erc-7776.md --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index fda84e0f2c..8d6a1c4f55 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -40,7 +40,7 @@ All methods MUST be of visibility `public`. All methods MUST return their financial numbers valued in the provided `stablecoin`. -If the contract owner uses data or methods from other owned smart contracts external to their implementation of ERC-7776, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. +If the contract owner uses data or methods from other owned smart contracts external to their smart contract implementation of this standard, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. _Timestamp Constraint_: For all methods, startTimestamp MUST be less than or equal to endTimestamp. If startTimestamp is equal to endTimestamp, the method returns a balance sheet snapshot. If startTimestamp is less than endTimestamp, the method returns an income statement for that period. From ad0992a8d1b3cbfc510f57f856a184ae2abae58f Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:11:29 +0200 Subject: [PATCH 13/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 8d6a1c4f55..9a05caa791 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -1,7 +1,7 @@ --- eip: 7776 title: Transparent Financial Statements -description: A.P.I. for Protocols to Ensure Open Transparent Financial Data for all Investors. +description: Open Transparent Financial Data for all Investors. author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 status: Review From 1ba5bef8958a042aeb90f64e18f836cc95b2a798 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:16:38 +0200 Subject: [PATCH 14/28] Updating Description to be more comprehensive. --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 9a05caa791..17c5244387 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -1,7 +1,7 @@ --- eip: 7776 title: Transparent Financial Statements -description: Open Transparent Financial Data for all Investors. +description: Open Transparent Financial Data such as Revenue, Costs of Goods Sold, Operating Expenses, EBITDA and Earnings Per Share for all Investors. author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 status: Review From a6f124ab9cfa99724f3de89a680aa8b97063cddb Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:19:56 +0200 Subject: [PATCH 15/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 17c5244387..64efbfbadc 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -13,7 +13,7 @@ requires: 20 ## Abstract -This proposal defines a standard A.P.I. that enables E.V.M. Blockchain-based companies (or also called "Protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through Solidity Smart Contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the S.E.C. 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (E.B.I.T.D.A.) and +This proposal defines a standard API that enables EVM Blockchain-based companies (or also called "Protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through Solidity Smart Contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the SEC 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (EBITDA) and Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial health of blockchain-based companies in a standardized, transparent, clear and reliable format. ## Motivation From 249c20fbf4a66f7ac3ae0ce9f2f22a258732e6bd Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:21:04 +0200 Subject: [PATCH 16/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 64efbfbadc..981742cc9e 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -18,7 +18,7 @@ Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial ## Motivation -The motivation of this E.I.P. is to Bring Seriousness to the CryptoCurrencies Investments Market. Currently, the situation is as follows: +The motivation of this EIP is to bring seriousness to the cryptocurrencies investments market. Currently, the situation is as follows: Most [ERC-20](./eip-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. From 030112a37fc0f8a70e917fe013f481428ad97261 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Wed, 9 Oct 2024 02:32:59 +0200 Subject: [PATCH 17/28] Correcting Formatting Errors #1 --- ERCS/erc-7776.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 981742cc9e..6184e5ce94 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -13,19 +13,19 @@ requires: 20 ## Abstract -This proposal defines a standard API that enables EVM Blockchain-based companies (or also called "Protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through Solidity Smart Contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the SEC 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (EBITDA) and -Earnings Per Token (E.P.Share-Token), allowing investors to assess the financial health of blockchain-based companies in a standardized, transparent, clear and reliable format. +This proposal defines a standard API that enables EVM Blockchain-based companies (or also called "protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through solidity smart contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the SEC 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (EBITDA) and +Earnings Per Share-Token (EPS), allowing investors to assess the financial health of blockchain-based companies in a standardized, transparent, clear and reliable format. ## Motivation -The motivation of this EIP is to bring seriousness to the cryptocurrencies investments market. Currently, the situation is as follows: +The motivation of this ERC is to bring seriousness to the cryptocurrencies investments market. Currently, the situation is as follows: -Most [ERC-20](./eip-20.md) Tokens representing E.V.M. Blockchain-based companies (or also called "Protocols"), DO NOT work the same way as a Publicly Traded Stock that represents a Share of ownership of the equity of that such company (so the user who buys a Protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "Commodities" such as oil; they are consumable items created by said E.V.M. Blockchain-based company (or "Protocol") to be spent in their platform. They are Publicly Traded and advertised to be representing the underlying Protocol like a Share, working in practice the same way as a Commodity and without any Public, Transparent and _Clear_ Financial Information as publicly traded stocks have. +Most [ERC-20](./eip-20.md) Tokens representing EVM Blockchain-based companies (or also called "protocols"), DO NOT work the same way as a publicly traded stock that represents a share of ownership of the equity of that such company (so the user who buys a protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "commodities" such as oil; they are consumable items created by said EVM Blockchain-based company (or "protocol") to be spent in their platform. They are publicly traded and advertised to be representing the underlying protocol like a share, working in practice the same way as a commodity and without any public, transparent and _Clear_ Financial Information as publicly traded stocks have. -Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said Protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. +Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. -This E.I.P. will improve that by giving users and investors transparent, clear and factual financial information to work with when analyzing as a potential investment the such -E.V.M. Blockchain-based company that implements this E.I.P. in their Solidity Smart Contracts, and that will generate Trust, Transparency and Seriousness in the CryptoCurrencies Investments Market long term. +This ERC will improve that by giving users and investors transparent, clear and factual financial information to work with when analyzing as a potential investment the such +EVM Blockchain-based company that implements this ERC in their solidity smart contracts, and that will generate trust, transparency and seriousness in the cryptocurrencies investments market long term. ## Specification @@ -48,21 +48,21 @@ _Output Structs_: Instead of a single `uint256` value, each method returns a `St ### Definitions: -- Currency: The individual StableCoin used to value the publicly displayed financial numbers. +- Currency: The individual stablecoin used to value the publicly displayed financial numbers. - Revenue: Total earnings from selling products or services before expenses. -- Cost of Goods Sold (C.O.G.S.): Direct costs for producing goods/services, including labor and materials. +- Cost of Goods Sold (COGS): Direct costs for producing goods/services, including labor and materials. - Operating Expenses: Expenses like Selling, General, and Administrative, Research and Development, and other operational costs. - Operating Income: Revenue minus operating expenses. -- E.B.I.T.D.A.: Earnings Before Interest, Taxes, Depreciation, and Amortization. +- EBITDA: Earnings Before Interest, Taxes, Depreciation, and Amortization. - Other Income and Expenses: Non-operating income, such as interest, investment gains or losses. - Net Income: Profit after all expenses, taxes, and deductions. -- E.P.S.: Earnings per Share Token (ERC-20), showing profit allocated per share. +- EPS: Earnings per Share Token (ERC-20), showing profit allocated per share. ### Methods #### currency -Returns the `address` of the individual StableCoin used to value the publicly displayed financial numbers. +Returns the `address` of the individual stablecoin used to value the publicly displayed financial numbers. ```yaml - name: address @@ -303,7 +303,7 @@ Returns Earnings Per Share Token (EPS) for the period. #### fullFinancialReport -Returns a comprehensive struct that includes all the prior financial details of the Protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, and EPS into a unified `Struct`. +Returns a comprehensive struct that includes all the prior financial details of the protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, and EPS into a unified `Struct`. ```yaml - name: fullFinancialReport @@ -340,14 +340,14 @@ Returns a comprehensive struct that includes all the prior financial details of ## Rationale -The current state of token investment analysis is opaque, with most information presented in an abstract and non-quantitative form. This standard A.P.I. ensures a consistent and reliable way for investors to evaluate blockchain projects based on real financial data published directly on-chain, not just speculative promises. This will establish greater +The current state of token investment analysis is opaque, with most information presented in an abstract and non-quantitative form. This standard API ensures a consistent and reliable way for investors to evaluate blockchain projects based on real financial data published directly on-chain, not just speculative promises. This will establish a greater trust in the cryptocurrency markets and align token analysis with the standards of traditional equity markets. ERC-20 is enforced because implementation details like Earnings Per Token calculation directly carry over to the accounting. This standardization makes the Transparent Financial Statements compatible with all ERC-20 use cases. -This implementation enables the Protocol to share their financial information both as their latest updated Balance Sheet (if the user chooses to just see a current snapshot of +This implementation enables the protocol to share their financial information both as their latest updated Balance Sheet (if the user chooses to just see a current snapshot of the financial state of the company) and as an Income Statement (if the user chooses to see the evolution of the financial state of the company between two different block -timestamps) and also is thought to interact with other separated Smart Contracts of the same Protocol from which the financial information will be sent. +timestamps) and also is thought to interact with other separated Smart Contracts of the same protocol from which the financial information will be sent. ## Backwards Compatibility @@ -547,7 +547,7 @@ contract TransparentFinancialStatements { ## Security Considerations -This E.I.P. involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. +This ERC involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. Needs discussion. From 02de5bb8b5ae93cd5d48382c9a712dd1441f855c Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:23:01 +0200 Subject: [PATCH 18/28] Expaniding calrifications in the Specification. "All Transparent Financial Statements Standard implementations MUST implement ERC-20 to represent shares, and the financial numbers such as Revenue, Costs of Goods Sold, Operating Expenses, Operating Income, EBITDA, Other Income and Expenses, Net Income and Earnings Per Share MUST be displayed in the value of the protocol's stablecoin of choice." --- ERCS/erc-7776.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 6184e5ce94..9341d99fb7 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -31,7 +31,8 @@ EVM Blockchain-based company that implements this ERC in their solidity smart co The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. -All Transparent Financial Statements Standard implementations MUST implement ERC-20 to represent shares, and the financial numbers displayed in a StableCoin's value. +All Transparent Financial Statements Standard implementations MUST implement ERC-20 to represent shares, and the financial numbers such as Revenue, Costs of Goods Sold, Operating Expenses, Operating +Income, EBITDA, Other Income and Expenses, Net Income and Earnings Per Share MUST be displayed in the value of the protocol's stablecoin of choice. All Transparent Financial Statements MUST implement ERC-20's optional metadata extensions. The `name` and `symbol` functions SHOULD reflect the underlying token's `name` and `symbol` in some way. @@ -40,7 +41,8 @@ All methods MUST be of visibility `public`. All methods MUST return their financial numbers valued in the provided `stablecoin`. -If the contract owner uses data or methods from other owned smart contracts external to their smart contract implementation of this standard, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. +If the contract owner uses data or methods from other owned smart contracts external to their smart contract implementation of this standard, those smart contracts MUST be verified in the correspondent +blockchain explorer and of open and visible source code. _Timestamp Constraint_: For all methods, startTimestamp MUST be less than or equal to endTimestamp. If startTimestamp is equal to endTimestamp, the method returns a balance sheet snapshot. If startTimestamp is less than endTimestamp, the method returns an income statement for that period. From 74dc628f9ccaf7b52ce02e680d6d39d71cb67ab2 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:26:29 +0200 Subject: [PATCH 19/28] Update erc-7776.md --- ERCS/erc-7776.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 9341d99fb7..02ece5a619 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -37,7 +37,7 @@ Income, EBITDA, Other Income and Expenses, Net Income and Earnings Per Share MUS All Transparent Financial Statements MUST implement ERC-20's optional metadata extensions. The `name` and `symbol` functions SHOULD reflect the underlying token's `name` and `symbol` in some way. -All methods MUST be of visibility `public`. +All methods MUST be of visibility `external`. All methods MUST return their financial numbers valued in the provided `stablecoin`. @@ -69,7 +69,7 @@ Returns the `address` of the individual stablecoin used to value the publicly di ```yaml - name: address type: function - visibility: public + visibility: external stateMutability: view inputs: /none/ @@ -86,7 +86,7 @@ Returns total revenue generated by the protocol within a time period. ```yaml - name: revenue type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -113,7 +113,7 @@ Returns the cost of goods sold within a specified period. ```yaml - name: cogs type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -140,7 +140,7 @@ Returns the total operating expenses within a specified period. ```yaml - name: operatingExpenses type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -167,7 +167,7 @@ Returns operating income for the specified period (Revenue - COGS - Operating Ex ```yaml - name: operatingIncome type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -194,7 +194,7 @@ Returns EBITDA for the given period. ```yaml - name: ebitda type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -221,7 +221,7 @@ Returns non-operating income and expenses, such as interest and investment gains ```yaml - name: otherIncomeExpenses type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -254,7 +254,7 @@ Returns net income for the period (Operating Income + Other Income/Expenses - Ta ```yaml - name: netIncome type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -281,7 +281,7 @@ Returns Earnings Per Share Token (EPS) for the period. ```yaml - name: earningsPerShare type: function - visibility: public + visibility: external stateMutability: view inputs: - name: startTimestamp @@ -310,8 +310,8 @@ Returns a comprehensive struct that includes all the prior financial details of ```yaml - name: fullFinancialReport type: function + visibility: external stateMutability: view - visibility: public inputs: - name: startTimestamp type: uint256 From 7ae71a64f6b7eb084b64e3d04e932914ec5b52e2 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:33:45 +0200 Subject: [PATCH 20/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 02ece5a619..62eebd6a05 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -44,7 +44,7 @@ All methods MUST return their financial numbers valued in the provided `stableco If the contract owner uses data or methods from other owned smart contracts external to their smart contract implementation of this standard, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. -_Timestamp Constraint_: For all methods, startTimestamp MUST be less than or equal to endTimestamp. If startTimestamp is equal to endTimestamp, the method returns a balance sheet snapshot. If startTimestamp is less than endTimestamp, the method returns an income statement for that period. +_Timestamp Constraint_: For all methods, `startTimestamp` MUST be less than or equal to `endTimestamp`. If `startTimestamp` is equal to `endTimestamp`, the method returns a balance sheet snapshot. If `startTimestamp` is less than `endTimestamp`, the method returns an income statement for that period. _Output Structs_: Instead of a single `uint256` value, each method returns a `Struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. From 3a2b6d12fdf921d4f4dd175a5a93f4b6be3b9ad6 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:35:44 +0200 Subject: [PATCH 21/28] Update erc-7776.md --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 62eebd6a05..922f8eb640 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -46,7 +46,7 @@ blockchain explorer and of open and visible source code. _Timestamp Constraint_: For all methods, `startTimestamp` MUST be less than or equal to `endTimestamp`. If `startTimestamp` is equal to `endTimestamp`, the method returns a balance sheet snapshot. If `startTimestamp` is less than `endTimestamp`, the method returns an income statement for that period. -_Output Structs_: Instead of a single `uint256` value, each method returns a `Struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. +_Output Structs_: Instead of a single `uint256` value, each method returns a `struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. ### Definitions: From eadc5fca49ae3db6b760e35ae392f903f332ab28 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:42:20 +0200 Subject: [PATCH 22/28] Update erc-7776.md --- ERCS/erc-7776.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 922f8eb640..e480d3161d 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -62,12 +62,12 @@ _Output Structs_: Instead of a single `uint256` value, each method returns a `st ### Methods -#### currency +#### `stablecoinAddress` Returns the `address` of the individual stablecoin used to value the publicly displayed financial numbers. ```yaml -- name: address +- name: stablecoinAddress type: function visibility: external stateMutability: view @@ -79,7 +79,7 @@ Returns the `address` of the individual stablecoin used to value the publicly di ``` -#### revenue +#### `revenue` Returns total revenue generated by the protocol within a time period. @@ -106,7 +106,7 @@ Returns total revenue generated by the protocol within a time period. ``` -#### cogs +#### `cogs` Returns the cost of goods sold within a specified period. @@ -133,7 +133,7 @@ Returns the cost of goods sold within a specified period. ``` -#### operatingExpenses +#### `operatingExpenses` Returns the total operating expenses within a specified period. @@ -160,7 +160,7 @@ Returns the total operating expenses within a specified period. ``` -#### operatingIncome +#### `operatingIncome` Returns operating income for the specified period (Revenue - COGS - Operating Expenses). @@ -187,7 +187,7 @@ Returns operating income for the specified period (Revenue - COGS - Operating Ex ``` -#### ebitda +#### `ebitda` Returns EBITDA for the given period. @@ -214,7 +214,7 @@ Returns EBITDA for the given period. ``` -#### otherIncomeExpenses +#### `otherIncomeExpenses` Returns non-operating income and expenses, such as interest and investment gains or losses, for the specified period. @@ -247,7 +247,7 @@ Returns non-operating income and expenses, such as interest and investment gains ``` -#### netIncome +#### `netIncome` Returns net income for the period (Operating Income + Other Income/Expenses - Taxes - Depreciation). @@ -274,7 +274,7 @@ Returns net income for the period (Operating Income + Other Income/Expenses - Ta ``` -#### earningsPerShare +#### `earningsPerShare` Returns Earnings Per Share Token (EPS) for the period. @@ -303,7 +303,7 @@ Returns Earnings Per Share Token (EPS) for the period. ``` -#### fullFinancialReport +#### `fullFinancialReport` Returns a comprehensive struct that includes all the prior financial details of the protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, and EPS into a unified `Struct`. From db34677e3354667c8456ab2fe906d95ba0df83d6 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:44:12 +0200 Subject: [PATCH 23/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index e480d3161d..87f59b0931 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -551,7 +551,7 @@ contract TransparentFinancialStatements { This ERC involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. -Needs discussion. +Needs discussion. ## Copyright From 8fd4ecd1f85b1712ed85d586500bd711c1ea2b90 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:45:18 +0200 Subject: [PATCH 24/28] Update erc-7776.md --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 87f59b0931..058096468a 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -362,7 +362,7 @@ _NOTE: This Reference Implementation is a placeholder. It will be improved in th ```solidity -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: CC0-1.0 pragma solidity 0.8.27; interface IERC20 { From ac2f15c728bcab19954f6ae68b4e216042077bb7 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:48:06 +0200 Subject: [PATCH 25/28] Update ERCS/erc-7776.md Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 058096468a..7d432655bd 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -358,7 +358,7 @@ Transparent Financial Statements Standard is fully backward compatible with the ## Reference Implementation -_NOTE: This Reference Implementation is a placeholder. It will be improved in the future from the feedback received._ +_NOTE: This Reference Implementation is a placeholder. It will be improved in the future from the feedback received._ ```solidity From 3ba09f72be2f9fdce349fac2cc0d9544a963de14 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Thu, 10 Oct 2024 23:57:43 +0200 Subject: [PATCH 26/28] Update erc-7776.md --- ERCS/erc-7776.md | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 7d432655bd..b71c339062 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -13,23 +13,35 @@ requires: 20 ## Abstract -This proposal defines a standard API that enables EVM Blockchain-based companies (or also called "protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on-chain in a transparent and accessible manner through solidity smart contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like the SEC 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and Amortization (EBITDA) and +This proposal defines a standard API that enables EVM Blockchain-based companies (or also called "protocols") to publish their financial information, specifically Income Statements and Balance Sheets, on- +chain in a transparent and accessible manner through solidity smart contracts. This standard aims to emulate the reporting structure used by publicly traded companies in traditional stocks markets, like +the SEC 10-Q filings. The financial statements include key information, namely as Revenue, Cost of Goods Sold, Operating Expenses, Operating Income, Earnings before Interest, Taxes, Depreciation, and +Amortization (EBITDA) and Earnings Per Share-Token (EPS), allowing investors to assess the financial health of blockchain-based companies in a standardized, transparent, clear and reliable format. ## Motivation The motivation of this ERC is to bring seriousness to the cryptocurrencies investments market. Currently, the situation is as follows: -Most [ERC-20](./eip-20.md) Tokens representing EVM Blockchain-based companies (or also called "protocols"), DO NOT work the same way as a publicly traded stock that represents a share of ownership of the equity of that such company (so the user who buys a protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "commodities" such as oil; they are consumable items created by said EVM Blockchain-based company (or "protocol") to be spent in their platform. They are publicly traded and advertised to be representing the underlying protocol like a share, working in practice the same way as a commodity and without any public, transparent and _Clear_ Financial Information as publicly traded stocks have. +The current state of token investment analysis is opaque, with most information presented in an abstract and non-quantitative form. This standard API ensures a consistent and reliable way for investors to +evaluate blockchain projects based on real financial data published directly on-chain, not just speculative promises. This will establish a greater +trust in the cryptocurrency markets and align token analysis with the standards of traditional equity markets. + +Most [ERC-20](./eip-20.md) Tokens representing EVM Blockchain-based companies (or also called "protocols"), DO NOT work the same way as a publicly traded stock that represents a share of ownership of the +equity of that such company (so the user who buys a protocol's ERC-20, is also now a share-holder and co-owner of the business, its profits and/or its dividends), but rather function as "commodities" such +as oil; they are consumable items created by said EVM Blockchain-based company (or "protocol") to be spent in their platform. They are publicly traded and advertised to be representing the underlying +protocol like a share, working in practice the same way as a commodity and without any public, transparent and _Clear_ Financial Information as publicly traded stocks have. -Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. +Added to that, most token research analysis reports that can be currently found on the internet are informal Substack or Twitter posts, with lots of abstract explanations about the features of the said +protocol to invest in, that lack of transparent financial numbers and factual financial information, that are made by anonymous users without real exposed reputations to affect. This ERC will improve that by giving users and investors transparent, clear and factual financial information to work with when analyzing as a potential investment the such EVM Blockchain-based company that implements this ERC in their solidity smart contracts, and that will generate trust, transparency and seriousness in the cryptocurrencies investments market long term. ## Specification -The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in +RFC 2119 and RFC 8174. All Transparent Financial Statements Standard implementations MUST implement ERC-20 to represent shares, and the financial numbers such as Revenue, Costs of Goods Sold, Operating Expenses, Operating Income, EBITDA, Other Income and Expenses, Net Income and Earnings Per Share MUST be displayed in the value of the protocol's stablecoin of choice. @@ -44,9 +56,11 @@ All methods MUST return their financial numbers valued in the provided `stableco If the contract owner uses data or methods from other owned smart contracts external to their smart contract implementation of this standard, those smart contracts MUST be verified in the correspondent blockchain explorer and of open and visible source code. -_Timestamp Constraint_: For all methods, `startTimestamp` MUST be less than or equal to `endTimestamp`. If `startTimestamp` is equal to `endTimestamp`, the method returns a balance sheet snapshot. If `startTimestamp` is less than `endTimestamp`, the method returns an income statement for that period. +_Timestamp Constraint_: For all methods, `startTimestamp` MUST be less than or equal to `endTimestamp`. If `startTimestamp` is equal to `endTimestamp`, the method returns a balance sheet snapshot. If +`startTimestamp` is less than `endTimestamp`, the method returns an income statement for that period. -_Output Structs_: Instead of a single `uint256` value, each method returns a `struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. +_Output Structs_: Instead of a single `uint256` value, each method returns a `struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized +entry `name`. ### Definitions: @@ -305,7 +319,8 @@ Returns Earnings Per Share Token (EPS) for the period. #### `fullFinancialReport` -Returns a comprehensive struct that includes all the prior financial details of the protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, and EPS into a unified `Struct`. +Returns a comprehensive struct that includes all the prior financial details of the protocol combined: Revenue, COGS, Operating Expenses, Operating Income, EBITDA, Other Incomes and Expenses, Net income, +and EPS into a unified `Struct`. ```yaml - name: fullFinancialReport @@ -342,10 +357,8 @@ Returns a comprehensive struct that includes all the prior financial details of ## Rationale -The current state of token investment analysis is opaque, with most information presented in an abstract and non-quantitative form. This standard API ensures a consistent and reliable way for investors to evaluate blockchain projects based on real financial data published directly on-chain, not just speculative promises. This will establish a greater -trust in the cryptocurrency markets and align token analysis with the standards of traditional equity markets. - -ERC-20 is enforced because implementation details like Earnings Per Token calculation directly carry over to the accounting. This standardization makes the Transparent Financial Statements compatible with all ERC-20 use cases. +ERC-20 is enforced because implementation details like Earnings Per Token calculation directly carry over to the accounting. This standardization makes the Transparent Financial Statements compatible with +all ERC-20 use cases. This implementation enables the protocol to share their financial information both as their latest updated Balance Sheet (if the user chooses to just see a current snapshot of the financial state of the company) and as an Income Statement (if the user chooses to see the evolution of the financial state of the company between two different block @@ -549,7 +562,8 @@ contract TransparentFinancialStatements { ## Security Considerations -This ERC involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. +This ERC involves displaying critical financial data on-chain, so special attention must be paid to ensure the accuracy and security of the data, particularly in preventing tampering or manipulation of key +financial figures. Further discussion on validation mechanisms and audits for the smart contracts containing financial data is necessary. Needs discussion. From c359f1e04b05898cce66d5d04364a5a9d5a978e6 Mon Sep 17 00:00:00 2001 From: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:05:54 -0400 Subject: [PATCH 27/28] Update erc-7776.md --- ERCS/erc-7776.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index b71c339062..4055653954 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -4,7 +4,7 @@ title: Transparent Financial Statements description: Open Transparent Financial Data such as Revenue, Costs of Goods Sold, Operating Expenses, EBITDA and Earnings Per Share for all Investors. author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 -status: Review +status: Draft type: Standards Track category: ERC created: 2024-09-20 From c5eab6262f91e7af8113cdc4b13ca21df06f54e8 Mon Sep 17 00:00:00 2001 From: Ignacio Ceaglio Date: Sun, 3 Nov 2024 20:50:45 +0100 Subject: [PATCH 28/28] Update erc-7776.md Corrected 2 mintor formattings and changed to "Review". --- ERCS/erc-7776.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ERCS/erc-7776.md b/ERCS/erc-7776.md index 4055653954..e0596eb9e3 100644 --- a/ERCS/erc-7776.md +++ b/ERCS/erc-7776.md @@ -4,7 +4,7 @@ title: Transparent Financial Statements description: Open Transparent Financial Data such as Revenue, Costs of Goods Sold, Operating Expenses, EBITDA and Earnings Per Share for all Investors. author: Ignacio Ceaglio (@Nachoxt17) discussions-to: https://ethereum-magicians.org/t/erc-xxxx-transparent-financial-statements/21191 -status: Draft +status: Review type: Standards Track category: ERC created: 2024-09-20 @@ -62,7 +62,7 @@ _Timestamp Constraint_: For all methods, `startTimestamp` MUST be less than or e _Output Structs_: Instead of a single `uint256` value, each method returns a `struct` with one or _OPTIONAL_ more `uint256` entries to allow for detailed financial data, each one with their own customized entry `name`. -### Definitions: +### Definitions - Currency: The individual stablecoin used to value the publicly displayed financial numbers. - Revenue: Total earnings from selling products or services before expenses. @@ -85,8 +85,6 @@ Returns the `address` of the individual stablecoin used to value the publicly di type: function visibility: external stateMutability: view - inputs: - /none/ outputs: - name: currencyAddress type: address