├── forms
├── token-grants
│ ├── placeholder
│ ├── Restricted Token or Token Option Form with Optional Joint Venture Membership.pdf
│ └── Restricted Token or Token Option Form with Optional Joint Venture Membership.docx
├── model yield disclaimer.md
├── legal
│ ├── Notice of Termination.md
│ ├── Invoice.md
│ ├── DE Master LLC Certificate of Formation.md
│ ├── Vote Delegate Disclosure.md
│ ├── Foundation Memorandum of Association.md
│ ├── NDA.md
│ ├── Single Member LLC Operating Agreement.md
│ ├── Grant Agreement (DAO).md
│ ├── Unincorporated Nonprofit Association Charter Form (DC).md
│ ├── DE Master LLC Operating Agreement.md
│ └── Multisig Simple Code Deference Agreement (DE).md
└── README.md
├── Base Definition of Decentralized (Autonomous) Organization.md
├── solidity
├── README.md
├── interfaces
│ └── IDealStamp.sol
├── AccessByERC20.sol
├── taxPayment.sol
├── stablecoinSplitter.sol
├── DealStamp.sol
├── EscrowStablecoin.sol
├── ETHescrow.sol
└── InstallmentERC20Escrow.sol
├── README.md
├── LICENSE
├── PO
├── Demo
│ └── Grant-Agreement_Acme-Ang.md
├── NDA.md
└── Grant_Agreement_DAO.md
├── PoS-ERC20
├── README.md
└── PoS-ERC20.sol
└── Disclosure.md
/forms/token-grants/placeholder:
--------------------------------------------------------------------------------
1 | temp file
2 |
--------------------------------------------------------------------------------
/forms/token-grants/Restricted Token or Token Option Form with Optional Joint Venture Membership.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LeXpunK-Army/Open-Source-Law/HEAD/forms/token-grants/Restricted Token or Token Option Form with Optional Joint Venture Membership.pdf
--------------------------------------------------------------------------------
/forms/token-grants/Restricted Token or Token Option Form with Optional Joint Venture Membership.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LeXpunK-Army/Open-Source-Law/HEAD/forms/token-grants/Restricted Token or Token Option Form with Optional Joint Venture Membership.docx
--------------------------------------------------------------------------------
/Base Definition of Decentralized (Autonomous) Organization.md:
--------------------------------------------------------------------------------
1 | **"Decentralized Organization"**: The term "decentralized organization" means a cloud cooperative with an enumerated mission, purpose or mandate, and having fluid affiliation or membership through participation.
2 |
3 | See explainer article [here](https://sh-brennan.medium.com/decentralized-organizations-another-round-of-definitional-questions-existential-crises-2ee6a93f82b5) for background and approach.
4 |
--------------------------------------------------------------------------------
/solidity/README.md:
--------------------------------------------------------------------------------
1 | Read [this disclosure](https://github.com/ErichDylus/Open-Source-Law/blob/main/Disclosure.md) and note that all forms, templates, code or other materials provided or linked herein carry [no warranty whatsoever](https://github.com/ErichDylus/Open-Source-Law/blob/main/LICENSE). These solidity files are being provided as-is; no guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the code or any smart contracts deployed from these files. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions or loss of transmitted information. Any users, developers, or adapters of these files should proceed with caution and use at their own risk.
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Open Source Law
2 | ### Open source templates, forms, writings and other linked materials for DAOs, devs, and incentive programmers
3 |
4 | Please read [this disclosure](https://github.com/ErichDylus/Open-Source-Law/blob/main/Disclosure.md) and note that all forms, templates or other materials provided or linked herein carry [no warranty whatsoever](https://github.com/ErichDylus/Open-Source-Law/blob/main/LICENSE) and should not be used without consulting an attorney or other applicable professional.
5 |
6 | - [Open source license menu](https://choosealicense.com/licenses/)
7 | - [Open source resources for individuals, communities, and companies](https://github.com/github/opensource.guide)
8 | - [FAQ/flowchart on open source legal considerations](https://opensource.guide/legal/)
9 |
10 |
--------------------------------------------------------------------------------
/solidity/interfaces/IDealStamp.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 |
3 | pragma solidity 0.8.10;
4 |
5 | // unaudited and subject to all disclosures, licenses, and caveats of the open-source-law repo
6 | // interface to DealStamp.sol, to create an on-chain record of a deal's parties, decentralized doc storage ref (which would presumably carry an additional hash layer/other security mechanism for access), and time of closing
7 |
8 | interface IDealStamp {
9 |
10 | function newDealStamp(string calldata docsLocationHash, uint256 effectiveTime, address party1, address party2) external returns (uint256);
11 | function addPartyToDeal(uint256 dealNumber, address newParty) external returns (bool);
12 | function viewDeal(uint256 dealNumber) external view returns (uint256, uint256, string memory, address[] memory);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/forms/model yield disclaimer.md:
--------------------------------------------------------------------------------
1 | ## MODEL YIELD DISCLAIMER
2 |
3 | The stated AP[[R]/[Y]] (the 'Rate') is denominated in terms of [RELEVANT TOKEN], not USD or other fiat currency. The Rate is a forward-looking projection based on our good faith belief of how to reasonably project results over the relevant period, but such belief is subject to numerous assumptions, risks and uncertainties (including smart contract security risks and third-party actions) which could result in a materially different (lower or higher) token-denominated AP[[R]/[Y]]. The Rate is not a promise, guarantee or undertaking on the part of any person or group of persons, but depends entirely on the results of operation of smart contracts and other autonomous systems (including third-party systems) and how third parties interact with those systems after the time of your deposit. Even if the Rate is achieved as projected, you may still suffer a financial loss in fiat-denominated terms if the fiat-denominated value of the relevant tokens (your deposit and any tokens allocated or distributed to you pursuant to the Rate) declines during the deposit period.
4 |
--------------------------------------------------------------------------------
/forms/legal/Notice of Termination.md:
--------------------------------------------------------------------------------
1 | ### NOTICE OF TERMINATION
2 |
3 | [DATE]
4 |
5 | To: [COUNTERPARTY] (“[COUNTERPARTY]”)
6 |
7 | Attn: [ADDRESSEE]
8 |
9 | Re: [AGREEMENT TITLE] (the “Agreement”) dated [DATE] between [COUNTERPARTY] and [ENTITY] (“[ENTITY]”)
10 |
11 | Dear [ADDRESSEE],
12 |
13 | Pursuant to Section __ of the Agreement, this Notice of Termination (this “Notice”) serves as written notice of [ENTITY]’s termination of the Agreement effective on the date falling [NOTICE PERIOD] after the date of this Notice, as provided in such Section __ (the “Termination Date”).
14 | As of the Termination Date, all obligations of and between [COUNTERPARTY] and [ENTITY] under the Agreement shall be deemed discharged, with the exception of those terms and obligations which expressly survive the termination of the Agreement as set forth in Section __ of the Agreement.
15 | The provisions of Sections __ through __ of the Agreement shall apply to this Notice mutatis mutandis as if fully set forth herein.
16 |
17 | Sincerely,
18 |
19 | [____________________]
20 | [NAME]
21 |
22 | [TITLE]
23 |
24 | [ENTITY]
25 |
26 |
27 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Varia LLC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/forms/legal/Invoice.md:
--------------------------------------------------------------------------------
1 | [Invoicing Entity / Individual / DAO]
2 |
3 | INVOICE NO. _______
4 |
5 | Date:
6 |
7 |
8 | Bill to:
9 | [DAO Name / Company / Individual]
10 | [Attn]
11 | [Physical Address]
12 | [Email]
13 | [Blockchain Address / ENS]
14 |
15 |
16 |
17 | | Description of Services
18 | |
19 | Reference
20 | |
21 | [Grant Amount][Flat Fee][Hours * Hourly Rate]
22 | |
23 | Total
24 | |
25 |
26 |
27 | |
28 | |
29 |
30 | |
31 |
32 | |
33 |
34 | |
35 |
36 |
37 | |
38 | |
39 |
40 | |
41 |
42 | |
43 |
44 | |
45 |
46 |
47 |
48 | Total Due: $_______________
49 |
50 | Payment methods accepted:
51 |
52 | - RAI, USDC, DAI or other mutually agreed stablecoin or (including as to calculation) token transfer to [Recipient ENS] ([Recipient Blockchain Address])
53 |
54 | - ACH/Wire/bank transfer
55 |
56 | o Account Title: ______________
57 |
58 | o Routing Number: ______________
59 |
60 | o Account Number: ______________
61 |
62 | o SWIFT Code (foreign wire transfers): ______________
63 |
--------------------------------------------------------------------------------
/PO/Demo/Grant-Agreement_Acme-Ang.md:
--------------------------------------------------------------------------------
1 | CodersNote=First a few links.
2 |
3 | P1.=[G/U/Who/andrea_ang.md]
4 |
5 | P2.=[G/U/Who/acme_incorporated.md]
6 |
7 | =[G/Open-Source-Law/PO/Grant_Agreement_DAO.md]
8 |
9 | Law.Dispute.sec={ICC.ARB.1.sec}
10 |
11 | ICC.=[G/ICCWBO-Arbitration-CmA/Sec/EN/0.md]
12 |
13 | ICC.ARB.#=a single arbitrator
14 |
15 | CodersNote=Then some parameters and choices.
16 |
17 | Doc.GUID=SomeKindOfHash-xrw64kKen823xoxoxo
18 |
19 | EffectiveDate.YMD=2021-08-21
20 |
21 | DAO.Name.Full=Acme Online
22 |
23 | DAO.BlockchainAddress=SomeHash-c8s9fE3kwlololol
24 |
25 | Services.Description.cl=improve legal terms for transactions like this
26 |
27 | ContractLife.Stop.AtWill.NoticePeriod.cl=fifteen (15) calendar days
28 |
29 | Comp.Monthly.Amount.$=USD $500
30 |
31 | Law.State.the=the State of Delaware
32 |
33 | Term.End.sec={Term.End.Milestone.sec}
34 |
35 | Work.Milestone.Description.cl=a deployable Grant Agreement in Prose Object format
36 |
37 | Stablecoin.Name=MountRushmoreCoin
38 |
39 | Conf.CoreSubject.cl=customer confidences
40 |
41 | License.Sec={License.OpenSource.Sec}
42 |
43 | Arb.Rule.Option.sec={Arb.Rule.Option.JAMS-Expedited.sec}
44 |
45 | Arbitration.Seat.Geo=Suffolk County, Massachusetts, USA
46 |
47 | Annex.Div=NO ANNEX
--------------------------------------------------------------------------------
/PoS-ERC20/README.md:
--------------------------------------------------------------------------------
1 | The following is an arbitrary Proof-of-Stake ERC-20.
2 |
3 | It takes a normal OpenZepplin ERC-20 and adds a few functions.
4 |
5 | Users can mint a token and stake it using the `mintandstake()` function, which will create 1 token and automatically stake it in the contract.
6 |
7 | The `mintandstake()` function can only be called if the user is not already staking.
8 |
9 | The function `isStaked()` returns a true/false bool if the user is staking.
10 |
11 | The function `stakedAmount()` returns a uint256 value of the users staking.
12 |
13 | Users cannot unstake, and cannot stake an additional balance if they are already staked.
14 |
15 | Using the `isStaked()` and `stakedAmount()` protocols can restrict access to their features, but, this initial `mintandstake()` only needs to be run once and so can be setup similar to a "use this transaction to activate your account" process. Not disimilar to the experience of a user using approve on an ERC20.
16 |
17 | In the case of restricting access to a protocol based on this valueless, one time created, non-withdrawable token being staked, your protocol now requires proof that a user is staked in order to access the protocol.
18 |
19 | You are now a proof-of-stake protocol.
20 |
21 | Created by @adamscochran
22 |
23 |
24 | *Not legal advice. May not meet the standard of proof-of-stake in your jurisdiction.
25 |
--------------------------------------------------------------------------------
/solidity/AccessByERC20.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // FOR DEMONSTRATION ONLY, unaudited, not recommended to be used for any purpose, carries absolutely no warranty of any kind
3 | // @dev ERC20 holder-gated access to an IPFS link
4 | // future features could include other token standards, threshold amounts, privacy solutions, staked tokens (to permit governance staker-gated access), accessing something other than a string (since mintgate addresses gated links)
5 |
6 | pragma solidity ^0.8.6;
7 |
8 | interface ERC20 {
9 | function balanceOf(address account) external view returns (uint256);
10 | }
11 |
12 | contract AccessByERC20 {
13 |
14 | address token;
15 | address owner;
16 | string IPFShash;
17 | ERC20 public ierc20;
18 | mapping(address => uint256) tokenBalance;
19 |
20 | event HashChanged();
21 |
22 | // deployer sets token address necessary to access IPFS info
23 | // @param _token: token address for ERC20 used to gate access
24 | constructor(address _token) {
25 | token = _token;
26 | ierc20 = ERC20(token);
27 | owner = msg.sender;
28 | }
29 |
30 | // owner sets IPFS hash (and is able to update/change it)
31 | // @param _IPFShash: IPFS hash of information to be revealed only to ERC20 holder
32 | function setIPFShash(string calldata _IPFShash) external {
33 | require(msg.sender == owner, "Not authorized to change IPFS hash.");
34 | IPFShash = _IPFShash;
35 | emit HashChanged();
36 | }
37 |
38 | //check msg.sender's token balance and assign mapping in order to accessLink()
39 | function setBalance() external {
40 | uint256 _balance = _checkBalance(msg.sender);
41 | tokenBalance[msg.sender] = _balance;
42 | }
43 |
44 | function _checkBalance(address _caller) internal view returns(uint256) {
45 | return(ierc20.balanceOf(_caller));
46 | }
47 |
48 | function accessLink() external view returns(string memory) {
49 | require(tokenBalance[msg.sender] > 0, "Only tokenholders may access. Call setBalance() before trying to access.");
50 | return(IPFShash);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/forms/legal/DE Master LLC Certificate of Formation.md:
--------------------------------------------------------------------------------
1 | CERTIFICATE OF FORMATION OF [________] LLC
2 |
3 | A Delaware Limited Liability Company
4 |
5 |
6 | This Certificate of Formation of [______] LLC (the “Company”), dated as of [DATE], is duly executed and filed by the undersigned, as an authorized person, to form a limited liability company under the Delaware Limited Liability Company Act (6 Del. C. 18-101 et seq.) as in effect as of the date hereof (the “Act”).
7 |
8 | First: The name of the limited liability company formed hereby is [________] LLC.
9 |
10 | Second: The address of the registered office of the Company in the State of Delaware is located at [REGISTERED AGENT ADDRESS] and the name of the registered agent of the Company in the State of Delaware at such address is [REGISTERED AGENT NAME].
11 |
12 | Third: The Company is established pursuant to Section 18-215 of the Act and may establish separate and distinct series of members, managers, and interests, each having separate rights, assets, powers or duties with respect to specified property or obligations of the Company or profits and losses associated with specified property or obligations of the Company. The debts, liabilities, obligations and expenses incurred, contracted for or otherwise existing with respect to a particular series shall be enforceable against the assets of such series only, and not against the assets of the Company generally or any other series thereof, and none of the debts, liabilities, obligations and expenses incurred, contracted for or otherwise existing with respect to the Company generally or any other series thereof shall be enforceable against the assets of such series.
13 |
14 | Fourth: The Company’s operating agreement and all matters relating to the Company's governance, finances, operations and the establishment of separate series may be accomplished or executed through the use of blockchain, distributed ledger, or other algorithmic or automated software or similar technology, as contemplated in the Company’s operating agreement.
15 |
16 | IN WITNESS WHEREOF, the undersigned, being fully authorized to execute and file this document executes this Certificate of Formation on the date first above written.
17 |
18 |
19 | ______________________
20 | Authorized Signatory
21 | [On behalf of [Member of Company]]
22 |
--------------------------------------------------------------------------------
/Disclosure.md:
--------------------------------------------------------------------------------
1 | Autonomous attorney disclosure {
2 |
3 | *Last updated: 13 July 2021*
4 |
5 | Please be advised: I am an attorney admitted to practice in the State of Maryland and the District of Columbia. Unless we have entered into a written and mutually signed engagement letter providing for paid legal services, I am not your lawyer and do not represent you or your interests.
6 |
7 | From time to time I engage as an "autonomous attorney" -- this means that in analyzing or discussing legal, regulatory or law-related matters, or creating related public or open source materials, I am representing myself or acting non-representationally in the context of belonging to a community of incentive-aligned supporters of a decentralized technology system. Such communities and affiliated persons are not my clients, and I have no intention to treat their information as confidential or attorney-client privileged. I am acting on my own behalf, but will seek to provide accurate and honest information while observing my general nonrepresentational professional and ethical responsibilities.
8 |
9 | In engaging as an autonomous attorney, I am not acting on behalf of any law firm or any other entity, nor on behalf of any client (one with whom I have a signed engagement letter providing that I will act as their attorney). Any views expressed, analysis or other work product are provided “as is” for public discourse and discussion purposes only, on matters of interest with no guarantees of completeness, accuracy, usefulness or timeliness and without warranty of any kind, express or implied. If my views expressed in such autonomous attorney contexts are inaccurate or are interpreted or used in a manner that leads to some injury or detriment, there will be no legal recourse against me and an injured party will not be covered by malpractice insurance.
10 |
11 | I currently have economic interests in and contractual obligations with API3 DAO (legally wrapped as The API3 Foundation), and may engage as an autonomous attorney in the API3 DAO, LexDAO, and LeXpunK DAO communities from time to time. I may have indirect economic interests in the various projects and protocols related to the foregoing, and I also use and hold various other cryptocurrencies, tokens, stablecoins and other digital assets from time to time.
12 |
13 | I assume no duty and provide no guarantee of keeping these disclosures up to date, but currently anticipate updating them from time to time to reflect the changes I deem sufficiently material to warrant disclosure.
14 |
15 | For more about autonomous lawyering, please see [this piece by Gabriel Shapiro](https://lexnode.substack.com/p/autonomous-lawyering) and [this piece by Open, Esq.]( https://openlawesq.medium.com/autonomous-lawyering-using-openlaw-dad9c604975b) This disclosure was adapted from [this precedent](https://github.com/LeXpunK-Army/lawyer_disclaimer_template).
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/solidity/taxPayment.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.10;
4 |
5 | /// FOR DEMONSTRATION ONLY, incomplete, unaudited, not recommended to be used for any purpose and provided with no warranty whatsoever
6 | /// @notice simple tax remitting contract to give IRS its pound of DeFi flesh, sends whole-uint tax rate to immutable IRS wallet address
7 |
8 | interface IERC20 {
9 |
10 | function balanceOf(address account) external view returns (uint256);
11 | function transfer(address recipient, uint256 amount) external returns (bool);
12 | function approve(address spender, uint256 amount) external returns (bool);
13 | function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
14 |
15 | event Transfer(address indexed from, address indexed to, uint256 value);
16 | event Approval(address indexed owner, address indexed spender, uint256 value);
17 | }
18 |
19 | // contingent on numerous external factors such as jurisdiction and status of each msg.sender, but initially created as a flat rate federal tax demonstration
20 | // meant to be an abstract add-on to another contract which results in income taxable event when a dApp makes a transaction
21 | contract TaxPayment {
22 |
23 | address payable public immutable IRS;
24 | uint256 public immutable taxRate;
25 | mapping(address => uint256) taxPaymentNumber;
26 | mapping(uint256 => mapping(address => uint256) /*taxPaymentNumber*/) taxPaymentNumberAmount;
27 |
28 | event TaxPaid(address indexed taxpayer, uint256 indexed taxPaymentNumber, uint256 indexed timeOfPayment, uint256 taxPaymentAmount);
29 |
30 | /// @param _IRSaddress IRS's designated address to receive taxes
31 | /// @param _taxRate flat percentage tax rate expressed as a whole number, for now
32 | constructor(address _IRSaddress, uint256 _taxRate) payable {
33 | require(_IRSaddress != address(0), "Invalid IRS wallet address");
34 | require(_taxRate > 0 && _taxRate < 100, "Submit tax rate percentage as whole number between 0 and 100, for example 5 for 5%");
35 | IRS = payable(_IRSaddress);
36 | taxRate = _taxRate*10e16;
37 | }
38 |
39 | // ******** msg.sender must separately approve address(this) for tokenAddress ********
40 | /// @param _income received income amount by msg.sender in the applicable token corresponding to _tokenAddress, assuming 18 decimals
41 | /// @param _tokenAddress contract address of ERC20 token received (if applicable/if not simple ETH payment)
42 | /// @return taxes paid, tax payment number for this msg.sender
43 | function payTax(uint256 _income, address _tokenAddress) public returns(uint256, uint256) {
44 | IERC20 ierc20;
45 | ierc20 = IERC20(_tokenAddress);
46 | uint256 _taxes = (_income*taxRate)/10e18;
47 | ierc20.transferFrom(msg.sender, IRS, _taxes);
48 | taxPaymentNumber[msg.sender]++;
49 | taxPaymentNumberAmount[_taxes][msg.sender] = taxPaymentNumber[msg.sender];
50 | emit TaxPaid(msg.sender, taxPaymentNumber[msg.sender], block.timestamp, _taxes);
51 | return(_taxes, taxPaymentNumber[msg.sender]);
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/solidity/stablecoinSplitter.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // ******** IN PROCESS ********
3 |
4 | pragma solidity ^0.6.0;
5 |
6 | //FOR DEMONSTRATION ONLY, not recommended to be used for any purpose (especially not structuring, twitter warriors) and carries absolutely no warranty of any kind
7 | //@dev create an ERC20 stablecoin transfer splitter in amounts less than $10,000
8 | //consider wrapping splitterAddress in an LLC or other vehicle for reporting purposes (perhaps series/Ricardian, see: https://github.com/lexDAO/Ricardian/blob/main/contracts/RicardianLLC.sol)
9 | //future iterations may pseudo-randomly change amounts and timing
10 |
11 | interface IERC20 { //https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/ERC20.sol
12 | function approve(address spender, uint256 amount) external returns (bool);
13 | function balanceOf(address account) external view returns (uint256);
14 | function transferFrom(address from, address to, uint256 value) external returns (bool);
15 | }
16 |
17 | contract stableSplitter {
18 |
19 | address payable sender;
20 | address payable recipient;
21 | address stablecoin; // ERC20 stablecoin token address
22 | uint256 amount;
23 | uint256 batches;
24 | uint256 remainder;
25 | uint256 i;
26 | mapping(address => bool) whitelist;
27 | IERC20 public ierc20;
28 |
29 | event FundsSent();
30 |
31 | //restricts to owner or internal calls
32 | modifier restricted() {
33 | require(whitelist[msg.sender] == true, "This may only be called by the owner or the splitter contract itself");
34 | _;
35 | }
36 |
37 | //sender inputs ERC20 token address of stablecoin, total amount to be transferred in USD, recipient address
38 | //sender must separately (via _stablecoin's token contract) approve contract address for amount: approve(sender, amount)
39 | constructor(address _stablecoin, uint256 _amount, address payable _recipient) public payable {
40 | sender = msg.sender;
41 | amount = _amount * 10e18; // assuming 18 decimals, this could be changed to a parameter or moved to front end
42 | stablecoin = _stablecoin;
43 | ierc20 = IERC20(stablecoin);
44 | recipient = _recipient;
45 | batches = (_amount / 10000) - 1;
46 | remainder = (_amount % 9999) * 10e18; // amount of tokens which will remain after batches of $9999 are sent
47 | i = 0;
48 | whitelist[sender] = true;
49 | }
50 |
51 | //TODO: improve gas expenditure
52 | function sendFunds() public restricted returns(bool) {
53 | while (i < batches) {
54 | ierc20.transferFrom(sender, recipient, 9999*10e18); //send funds to recipient in batches less than $10,000
55 | i++;
56 | }
57 | ierc20.transferFrom(sender, recipient, remainder);
58 | emit FundsSent();
59 | return(true);
60 | }
61 |
62 | function viewDetails() public view restricted returns (uint256, uint256, uint256) {
63 | return (amount, batches, remainder);
64 | }
65 |
66 | //for a new transfer, owner may change recipient address and/or ERC20 stablecoin address to use this splitter for different tokens
67 | //sender must separately (via _stablecoin's token contract) approve contract address for new amount: approve(sender, _amount)
68 | function newTransfer(address _stablecoin, uint256 _amount, address payable _recipient) public restricted {
69 | stablecoin = _stablecoin;
70 | ierc20 = IERC20(stablecoin);
71 | amount = _amount * 10e18;
72 | batches = (_amount / 10000) - 1;
73 | recipient = _recipient;
74 | remainder = (_amount % 9999) * 10e18;
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/forms/README.md:
--------------------------------------------------------------------------------
1 | ## Open Source Legal Agreement Forms
2 |
3 | Read [this disclosure](https://github.com/ErichDylus/Open-Source-Law/blob/main/Disclosure.md) and note that all forms, templates, code or other materials provided or linked herein carry [no warranty whatsoever](https://github.com/ErichDylus/Open-Source-Law/blob/main/LICENSE) and should not be used without consulting an attorney or other applicable professional. Circumstances, facts, and jurisdictions differ, and these forms are not meant to be used in their current form without adjustment according to such facts, circumstances, and jurisdictions. PRs, issues, forks, and discussion are all welcomed.
4 |
5 | ### Templates
6 |
7 | [Legal agreement and organizational document forms](https://github.com/ErichDylus/Open-Source-Law/tree/main/forms/legal) - Including formation documents, DAO-independent contractor grant agreement, NDA, etc.
8 |
9 | [Ricardian LLC Master Operating Agreement](https://github.com/lexDAO/Ricardian/blob/main/contracts/MasterOperatingAgreement.txt) - LexDAO's Ricardian master LLC operating agreement form (for use in initiating a series, especially for DAO wrappers), which can be deployed and represented on-chain by an [ERC-721 standard NFT](https://github.com/lexDAO/Ricardian/blob/main/contracts/RicardianLLC.sol)
10 |
11 | [Rarible's NFT Licenses](https://github.com/rariblecom/nft-license) - by Gabriel Shapiro & Stuart Smolen
12 |
13 | [One-Page SAFT](https://github.com/BranDAOn/OP-SAFT) - one page simple agreement for future tokens which sets out the consideration amount and token allotment, the token delivery triggers, and the lock-up, by [BranDAOn](https://github.com/BranDAOn)
14 |
15 | ### Template libraries
16 |
17 | [LexDAO Startup Pack](
18 | https://github.com/lexDAO/LexCorpus/tree/master/contracts/legal/startup) - collection of templates for typical startup setup and fundraising
19 |
20 | [CommonAccord](https://github.com/commonaccord) - CommonAccord's open source effort to codify and automate legal agreements
21 |
22 | [NVCA forms](https://nvca.org/model-legal-documents/) - model documents from the National Venture Capital Association
23 |
24 | [CooleyGo templates and generators](https://www.cooleygo.com/documents/) - sample documents and document generators from Cooley LLP
25 |
26 | [Orrick startup forms](https://www.orrick.com/en/Total-Access/Tool-Kit/Start-Up-Forms) - startup-relevant form documents from Orrick Herrington & Sutcliffe LLP
27 |
28 | [Free Law Project](https://free.law/non-profit-documents/) - open source non-profit document forms by the Free Law Project
29 |
30 | [Openlaw templates](https://lib.openlaw.io/web/default/templates) - free searchable legal form repository
31 |
32 | ### Legal Resources and Research
33 |
34 | [Caselaw Access Project](https://case.law/) - published U.S. court decisions digitized from the collection of the Harvard Law School Library
35 |
36 | [Metacartel legal repo](https://github.com/metacartel/MCV/tree/master/Legal) - Grimoire and exhibits for the Metacartel Ventures DAO
37 |
38 | ### Books and articles
39 |
40 | [Open Textbooks](https://open.umn.edu/opentextbooks/subjects/law) - free textbooks on various areas of law
41 |
42 | [Open Source Licensing: What every technologist should know](https://opensource.com/article/17/9/open-source-licensing) - Meeker, 2017
43 |
44 | [Trademark Law: an Open-Source Casebook](http://tmcasebook.org/) - Beebe, 2020
45 |
46 | [Extended Readings on Copyright](https://www.dropbox.com/s/gmcl8u0b7vnire1/ERoC%202019%20%28Consolidated%20August%205%2C%202019%29.pdf?dl=0) – Sag, 2019
47 |
48 | [Intellectual Property: Law & the Information Society](https://web.law.duke.edu/cspd/casebook/) – Boyle & Jenkins, 2018
49 |
--------------------------------------------------------------------------------
/solidity/DealStamp.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 |
3 | pragma solidity 0.8.10;
4 |
5 | /// unaudited and subject to all disclosures, licenses, and caveats of the open-source-law repo
6 | /// @title DealStamp
7 | /// @author Erich Dylus
8 | /// @notice An on-chain record of a deal's parties, decentralized doc room storage ref (presumably carrying an additional hash layer/other security mechanism for access), and time of closing
9 | /// adaptations/forks might include a record of oracle information used in an on-chain closing, gasless sig verification, removal of parties from array, dispute resolution details, etc.
10 |
11 | contract DealStamp {
12 |
13 | uint256 dealNumber; // ID number for stamped deals
14 | DealInfo[] deals; // array of deal info structs
15 | mapping(uint256 /*dealNumber*/ => string) docsLocation; // deal doc storage location - may be encrypted on the client side and decrypted after retrieval, or otherwise protected
16 | mapping(uint256 /*dealNumber*/ => mapping(address => bool) /*whether address is a party*/) isPartyToDeal;
17 |
18 | struct DealInfo {
19 | uint256 dealNumber;
20 | uint256 effectiveTime;
21 | string docsLocation;
22 | address[] parties;
23 | }
24 |
25 | event DealStamped(uint256 indexed dealNumber, uint256 effectiveTime, string docsLocation, address[] parties);
26 | event PartyAdded(uint256 indexed dealNumber, address newParty);
27 |
28 | constructor() {}
29 |
30 | /// @param _docsLocationHash IPFS or other decentralized storage location hash of deal documents
31 | /// @param _effectiveTime unix time of closing, such as the block.timestamp of a stablecoin transfer or smart escrow contract closing
32 | /// @param _party1 address of first party to the deal
33 | /// @param _party2 address of second party to the deal
34 | /// @return the dealNumber of the newly stamped deal - make sure to keep record of this identifier.
35 | /// @notice intended to be called by authorized party, escrow or other closing smart contracts, by interface or arbitrary call. Record the dealNumber. Additional parties may be added by _party1 or _party2 via addPartyToDeal().
36 | function newDealStamp(string calldata _docsLocationHash, uint256 _effectiveTime, address _party1, address _party2) external returns (uint256) {
37 | dealNumber++;
38 | docsLocation[dealNumber] = _docsLocationHash;
39 | address[] memory parties = new address[](2);
40 | parties[0] = _party1;
41 | parties[1] = _party2;
42 | deals.push(DealInfo(dealNumber, _effectiveTime, docsLocation[dealNumber], parties));
43 | emit DealStamped(dealNumber, _effectiveTime, docsLocation[dealNumber], parties);
44 | isPartyToDeal[dealNumber][_party1] = true;
45 | isPartyToDeal[dealNumber][_party2] = true;
46 | return(dealNumber); // DealStamper should record the dealNumber for relevant parties; also emitted in the DealStamped event
47 | }
48 |
49 | /// @param _dealNumber enter dealNumber to view corresponding stamped deal information
50 | /// @return the struct information for the inputted dealNumber
51 | function viewDeal(uint256 _dealNumber) external view returns (uint256, uint256, string memory, address[] memory) {
52 | return (deals[_dealNumber].dealNumber, deals[_dealNumber].effectiveTime, deals[_dealNumber].docsLocation, deals[_dealNumber].parties);
53 | }
54 |
55 | /// @param _dealNumber deal number of deal for which the new party will be added
56 | /// @param _newParty address of the new party to be added to the deal corresponding to _dealNumber
57 | function addPartyToDeal(uint256 _dealNumber, address _newParty) external returns (bool) {
58 | require(isPartyToDeal[_dealNumber][msg.sender] == true, "msg.sender_not_party");
59 | isPartyToDeal[_dealNumber][_newParty] = true;
60 | deals[_dealNumber].parties.push(_newParty);
61 | emit PartyAdded(_dealNumber, _newParty);
62 | return (true);
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/forms/legal/Vote Delegate Disclosure.md:
--------------------------------------------------------------------------------
1 | //for a potential delegate of DAO governance token voting power; co-drafted with [Sarah Brennan](https://github.com/SHBrennan)
2 |
3 | **Vote Delegate Disclosure**
4 |
5 | ***Last updated: [DATE]***
6 |
7 | Please be advised:
8 |
9 | I control the private key for the externally owned account[s]:
10 |
11 | [PUBLIC KEY ADDRESS[ES]] ([collectively,] the “Delegated Address[es]”),
12 |
13 | [The Delegated Address has/Each of the Delegated Addresses have] staked a certain amount of [DAO GOV TOKENS] tokens in the governance contract for [DAO] and I intend to participate in the governance of [DAO], whether by proposing, voting, abstaining, or engaging in related discourse or otherwise, in accordance with its applicable parameters and guidelines. I understand that other externally owned accounts and addresses may delegate their voting power to [the Delegated Address[es]/me] from time to time and intend that this disclosure will generally govern my actions as a delegate.
14 |
15 | [I/the Delegators] have instituted policies and procedures with respect to delegations in the interest of transparency, which may be subject to update from time to time and are available here [LINK] || Though [I/the Delegator(s)] do not have a formal policy, in participating in the governance of [DAO], I intend to act on the following principles:
16 |
17 | - I will seek to remain informed about governance proposals and vote on matters from time to time using my independent judgment unless otherwise disclosed;
18 |
19 | - I will act in good faith and use reasonable care in participating in governance, including in making proposals and in voting;
20 |
21 | - I will endeavor to provide transparent, good faith, and honest information as to my motivations and reasoning in carrying out my role as a delegate, or when soliciting the delegation of voting power [or votes];
22 |
23 | - I am not a party to any voting bloc, trust, or other group and will not engage in vote-buying, vote-selling, bribery, manipulation, or other undisclosed vote solicitation or coordination; and
24 |
25 | - [To the extent I am aware of a material non-public conflict of interest that exists for a Delegator with respect to a proposal, I will refrain from voting in my capacity as a delegate for such Delegator with respect to such proposal]
26 |
27 | **Conflict Disclosure**
28 |
29 | I currently have [economic interests in][contractual obligations with][other relationships with] [EMPLOYER/CONTRACTOR/ASSOCIATION/AFFILIATED ENTITY], and may engage in the [OTHER DAO(S) OR PROJECT(S)] community(ies) from time to time. I may have direct or indirect economic interests in the various projects, entities, networks, and protocols related to the foregoing, and I also use and hold various other cryptocurrencies, tokens, stablecoins and other digital assets from time to time, including but not limited to [____________].
30 |
31 | Except as disclosed herein, in participating in the governance of [DAO], I am not acting on behalf of [EMPLOYER/CONTRACTOR/AFFILIATED ENTITY, nor][on behalf of any client, nor] any voting power delegator, whether or not such delegation was solicited. If my views expressed in governance contexts are interpreted or used in a manner that leads to some injury or detriment, there will be no legal recourse against me as a vote delegate or otherwise, nor will there be any coverage or indemnity from any applicable insurance or similar mechanism.
32 |
33 | **Disclaimer of Duty to Update**
34 |
35 | I assume no duty and provide no guarantee of keeping these disclosures up to date, nor of adjusting these disclosures for each applicable governance process, but will endeavor to act in good faith when soliciting the delegation of voting power and when acting in my capacity as a delegate.
36 |
37 | You may contact me at [EMAIL ADDRESS/COMMS HANDLES], though I assume no duty for, and cannot guarantee my responsiveness to, or any action upon, any individual question, feedback, or request from a vote delegator or otherwise.
38 |
--------------------------------------------------------------------------------
/forms/legal/Foundation Memorandum of Association.md:
--------------------------------------------------------------------------------
1 | // form adapted from a [Cayman Foundation Company](https://legislation.gov.ky/cms/images/LEGISLATION/PRINCIPAL/2017/2017-0029/FoundationCompaniesAct_Act%2029%20of%202017.pdf) precedent, contemplating no members, no share capital, no dividends nor distributions, and would have a corresponding Articles of Association
2 |
3 | // **Provided without warranty of any kind, do not use without consulting an attorney in the applicable jurisdiction, all open-source-law repo disclosures apply**
4 |
5 | ### MEMORANDUM OF ASSOCIATION OF [FOUNDATION COMPANY NAME]
6 |
7 | a foundation company limited by guarantee
8 |
9 |
10 | 1. The name of the foundation company is [______________].
11 |
12 | 2. The foundation company is a [company within the meaning of the Companies Law and a foundation company within the meaning of the Foundation Companies Law, 2017].
13 |
14 | // form, broad language, adaptable
15 |
16 | 3. The objects for which the foundation company is established are:
17 |
18 | (a) to act as a holding company and an investment company, with no restriction on the objects or operations of its subsidiaries or on the nature of its or their investments,
19 |
20 | (b) to provide financial assistance or benefits to beneficiaries designated under the Articles of Association; and
21 |
22 | (c) to do all such things as in the opinion of the directors are or may be incidental or conducive to the above objects or any of them.
23 |
24 | 4. The foundation company shall have and be capable of exercising all the functions of a natural person of full capacity irrespective of any question or corporate benefit, as provided by [section 27(2) of the Companies Law (2018 Revision)].
25 |
26 | 5. The foundation company may not carry on a business for which a licence is required under the laws of [the Cayman Islands] unless duly licensed.
27 |
28 | 6. No portion of the income or property of the foundation company from whatever place or source shall be paid or transferred directly or indirectly by way of divided, bonus or otherwise howsoever by way of profit to the members or directors of the foundation company, as such, apart from authorised remuneration for services to the foundation company.
29 |
30 | 7. The liability of the directors, founders, supervisors, beneficiaries, members, professional advisors, and contractors (current and former) is limited, and for avoidance of doubt, no such person or entity shall be liable for the debts, obligations, actions, proceedings, costs, charges, fines, expenses, losses, damages or liabilities of the foundation company or decentralized autonomous organization by which it is governed or any related subsidiaries, affiliates, members or participants thereto, including under a judgment, decree or order of a court.
31 |
32 | 8. The foundation company may operate without members or cease to have members.
33 |
34 | 9. Each person who is a member undertakes to contribute to the assets of the foundation company in the event of the foundation company being wound up during the time that person is a member, or within one year afterwards, for payment of the debts and liabilities of the foundation company contracted before the time at which the person ceases to be a member, and the cost, charges and expenses of the winding-up of the foundation company, and for the adjustments of the rights of the contributories amongst themselves, such amounts as may be required, not exceeding the sum of one United States dollar (US$1.00).
35 |
36 | 10. If on the winding-up or dissolution of the foundation company there remain surplus assets after the satisfaction of its debts and liabilities, the same shall be applied or distributed under the Articles of Association of the foundation company and, subject thereto, shall be paid or transferred to such charitable objects as shall be decided by ordinary resolution of the foundation company.
37 |
38 | 11. This Memorandum and the Articles of Association may be altered by Special Resolution, except that neither clause 6 nor clause 10 of this Memorandum may be altered, and no other alteration may be made which is in any way inconsistent with clause 6 or clause 10.
39 |
40 | Dated this _____ day of ____________, ______.
41 |
42 | Signature and Address of Subscriber
43 |
44 |
45 | [______]
46 |
47 | acting by:
48 |
49 | _______________________________
50 | Name:
51 |
52 |
53 | _______________________________
54 | Name:
55 |
56 | Witness to the above signature
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/solidity/EscrowStablecoin.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 |
3 | pragma solidity 0.8.6;
4 |
5 | /// unaudited and for demonstration only, subject to all disclosures, licenses, and caveats of the open-source-law repo
6 | /// @author Erich Dylus
7 | /// @title Stablecoin Escrow
8 | /// @notice create a simple smart escrow contract, with an ERC20 stablecoin as payment, expiration denominated in seconds, deposit refunded if contract expires before closeDeal() called
9 | /// @notice intended to be deployed by buyer (as they will separately approve() the contract address for the deposited funds, and deposit is returned to deployer if expired)
10 | /// @dev may be forked/altered for separation of deposit from purchase price, deposit non-refundability, different token standard, etc. */
11 |
12 | interface IERC20 {
13 | function approve(address spender, uint256 amount) external returns (bool);
14 | function balanceOf(address account) external view returns (uint256);
15 | function transfer(address recipient, uint256 amount) external returns (bool);
16 | function transferFrom(address from, address to, uint256 value) external returns (bool);
17 | }
18 |
19 | contract EscrowStablecoin {
20 |
21 | address escrowAddress;
22 | address payable buyer;
23 | address payable seller;
24 | address stablecoin;
25 | uint256 deposit;
26 | uint256 effectiveTime;
27 | uint256 expirationTime;
28 | bool sellerApproved;
29 | bool buyerApproved;
30 | bool isExpired;
31 | bool isClosed;
32 | IERC20 public ierc20;
33 | string description;
34 | mapping(address => bool) public parties; //map whether an address is a party to the transaction for restricted() modifier
35 |
36 | event DealExpired(bool isExpired);
37 | event DealClosed(bool isClosed, uint256 effectiveTime); //event provides exact blockstamp Unix ime of closing
38 |
39 | modifier restricted() {
40 | require(parties[msg.sender], "This may only be called by a party to the deal or the by escrow contract");
41 | _;
42 | }
43 |
44 | /// @notice deployer (buyer) initiates escrow with description, deposit amount in USD, address of stablecoin, seconds until expiry, and designate recipient seller
45 | /// @param _description should be a brief identifier of the deal in question - perhaps as to parties/underlying asset/documentation reference/hash
46 | /// @param _deposit is the purchase price which will be deposited in the smart escrow contract
47 | /// @param _seller is the seller's address, who will receive the purchase price if the deal closes
48 | /// @param _stablecoin is the token contract address for the stablecoin to be sent as deposit
49 | /// @param _secsUntilExpiration is the number of seconds until the deal expires, which can be converted to days for front end input or the code can be adapted accordingly
50 | constructor(string memory _description, uint256 _deposit, address payable _seller, address _stablecoin, uint256 _secsUntilExpiration) payable {
51 | require(_seller != msg.sender, "Designate different party as seller");
52 | buyer = payable(address(msg.sender));
53 | deposit = _deposit;
54 | escrowAddress = address(this);
55 | stablecoin = _stablecoin;
56 | ierc20 = IERC20(stablecoin);
57 | description = _description;
58 | seller = _seller;
59 | parties[msg.sender] = true;
60 | parties[_seller] = true;
61 | parties[escrowAddress] = true;
62 | expirationTime = block.timestamp + _secsUntilExpiration;
63 | }
64 |
65 | /// @notice buyer may confirm seller's recipient address as extra security measure or change seller address
66 | /// @param _seller is the new recipient address of seller
67 | function designateSeller(address payable _seller) external restricted {
68 | require(_seller != seller, "Party already designated as seller");
69 | require(_seller != buyer, "Buyer cannot also be seller");
70 | require(!isExpired, "Too late to change seller");
71 | parties[_seller] = true;
72 | seller = _seller;
73 | }
74 |
75 | /// ********* DEPLOYER MUST SEPARATELY APPROVE (by interacting with the ERC20 contract in question's approve()) this contract address for the deposit amount (keep decimals in mind) ********
76 | /// @notice buyer deposits in escrowAddress after separately ERC20-approving escrowAddress
77 | function depositInEscrow() public restricted returns(bool, uint256) {
78 | require(msg.sender == buyer, "Only buyer may deposit in escrow");
79 | ierc20.transferFrom(buyer, escrowAddress, deposit);
80 | return (true, ierc20.balanceOf(escrowAddress));
81 |
82 | }
83 |
84 | /// @notice escrowAddress returns deposit to buyer
85 | function returnDeposit() internal returns(bool, uint256) {
86 | ierc20.transfer(buyer, deposit);
87 | return (true, ierc20.balanceOf(escrowAddress));
88 | }
89 |
90 | /// @notice escrowAddress sends deposit to seller
91 | function paySeller() internal returns(bool, uint256) {
92 | ierc20.transfer(seller, deposit);
93 | return (true, ierc20.balanceOf(escrowAddress));
94 | }
95 |
96 | /// @notice check if expired, and if so, return balance to buyer
97 | function checkIfExpired() external returns(bool){
98 | if (expirationTime <= uint256(block.timestamp)) {
99 | isExpired = true;
100 | returnDeposit();
101 | emit DealExpired(isExpired);
102 | } else {
103 | isExpired = false;
104 | }
105 | return(isExpired);
106 | }
107 |
108 | /// @notice for seller to check if deposit is in escrowAddress
109 | function checkEscrow() external restricted view returns(uint256) {
110 | return ierc20.balanceOf(escrowAddress);
111 | }
112 |
113 | /// if buyer wishes to initiate dispute over seller breach of off chain agreement or repudiate, simply may wait for expiration without sending deposit nor calling this function
114 | function readyToClose() external restricted returns(string memory){
115 | if (msg.sender == seller) {
116 | sellerApproved = true;
117 | return("Seller is ready to close.");
118 | } else if (msg.sender == buyer) {
119 | buyerApproved = true;
120 | return("Buyer is ready to close.");
121 | } else {
122 | return("You are neither buyer nor seller.");
123 | }
124 | }
125 |
126 | /// @notice checks if both buyer and seller are ready to close and expiration has not been met; if so, escrowAddress closes deal and pays seller; if not, deposit returned to buyer
127 | /// @dev if properly closes, emits event with effective time of closing
128 | function closeDeal() public returns(bool){
129 | require(sellerApproved && buyerApproved, "Parties are not ready to close.");
130 | if (expirationTime <= uint256(block.timestamp)) {
131 | isExpired = true;
132 | returnDeposit();
133 | emit DealExpired(isExpired);
134 | } else {
135 | isClosed = true;
136 | paySeller();
137 | effectiveTime = uint256(block.timestamp); // effective time of closing upon payment to seller
138 | emit DealClosed(isClosed, effectiveTime);
139 | }
140 | return(isClosed);
141 | }
142 | }
143 |
--------------------------------------------------------------------------------
/solidity/ETHescrow.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 |
3 | pragma solidity 0.7.5;
4 |
5 | /// unaudited and for demonstration only, subject to all disclosures, licenses, and caveats of the open-source-law repo
6 | /// @author Erich Dylus
7 | /// @title Escrow ETH
8 | /// @notice a simple smart escrow contract, with ETH as payment, expiration denominated in seconds, and option for dispute resolution with LexLocker
9 | /// @dev intended to be deployed by buyer (as funds are placed in escrow upon deployment, and returned to deployer if expired)
10 | /// consider hardcoding reference or pointer to LexDAO resolver terms of use https://github.com/lexDAO/Arbitration/blob/master/rules/ToU.md
11 | /// included in LexDAO's LexCorpus at: https://github.com/lexDAO/LexCorpus/blob/master/contracts/lexdao/lexlocker/extensions/EscrowETH.sol*/
12 |
13 | interface LexLocker {
14 | function requestLockerResolution(address counterparty, address resolver, address token, uint256 sum, string calldata details, bool swiftResolver) external payable returns (uint256);
15 | }
16 |
17 | contract EscrowEth {
18 |
19 | //escrow struct to contain basic description of underlying deal, purchase price, ultimate recipient of funds
20 | struct InEscrow {
21 | string description;
22 | uint256 deposit;
23 | address payable buyer;
24 | address payable seller;
25 | }
26 |
27 | InEscrow[] public escrows;
28 | address escrowAddress = address(this);
29 | address payable immutable lexlocker = payable(0xD476595aa1737F5FdBfE9C8FEa17737679D9f89a); //LexLocker ETH mainnet contract address
30 | address payable immutable lexDAO = payable(0x01B92E2C0D06325089c6Fd53C98a214f5C75B2aC); //lexDAO ETH mainnet address, used below as resolver
31 | address payable buyer;
32 | address payable seller;
33 | uint256 deposit;
34 | uint256 expirationTime;
35 | bool sellerApproved;
36 | bool buyerApproved;
37 | bool isDisputed;
38 | bool isExpired;
39 | bool isClosed;
40 | string description;
41 | mapping(address => bool) public parties; //map whether an address is a party to the transaction for restricted() modifier
42 |
43 | event EscrowInPlace(address indexed buyer, uint256 deposit);
44 | event DealDisputed(address indexed sender, bool isDisputed);
45 | event DealExpired(bool isExpired);
46 | event DealClosed(bool isClosed);
47 |
48 | modifier restricted() {
49 | require(parties[msg.sender], "This may only be called by a party to the deal or the escrow contract itself");
50 | _;
51 | }
52 |
53 | /// @notice creator contributes deposit and initiates escrow with description, deposit amount, seconds until expiry, and designate recipient seller
54 | /// @param _description string to identify deal, or IPFS hash of documentation, etc.
55 | /// @param _deposit deposit amount in wei
56 | /// @param _seller payment address of recipient seller
57 | /// @param _secsUntilExpiration seconds until expiry of escrow, for simplicity in calculation of Unix time w/ block.timestamp
58 | constructor(string memory _description, uint256 _deposit, address payable _seller, uint256 _secsUntilExpiration) payable {
59 | require(msg.value >= deposit, "Submit deposit amount");
60 | require(_seller != msg.sender, "Designate different party as seller");
61 | buyer = payable(address(msg.sender));
62 | deposit = _deposit;
63 | description = _description;
64 | seller = _seller;
65 | parties[msg.sender] = true;
66 | parties[_seller] = true;
67 | parties[escrowAddress] = true;
68 | expirationTime = block.timestamp + _secsUntilExpiration;
69 | sendEscrow(description, deposit, buyer, seller);
70 | }
71 |
72 | /// @notice buyer may confirm seller's recipient address as extra security measure
73 | /// @param _seller new seller's public key address
74 | function designateSeller(address payable _seller) external restricted {
75 | require(_seller != seller, "Party already designated as seller");
76 | require(_seller != buyer, "Buyer cannot also be seller");
77 | require(!isExpired, "Deal expired, too late to change seller");
78 | parties[_seller] = true;
79 | seller = _seller;
80 | }
81 |
82 | /// @notice send escrow, create InEscrow struct and emit event showing the deposit is in place
83 | function sendEscrow(string memory _description, uint256 _deposit, address payable _buyer, address payable _seller) private restricted {
84 | InEscrow memory newRequest = InEscrow({
85 | description: _description,
86 | deposit: _deposit,
87 | buyer: _buyer,
88 | seller: _seller
89 | });
90 | escrows.push(newRequest);
91 | emit EscrowInPlace(_buyer, _deposit);
92 | }
93 |
94 | /// @notice check if expired, and if so, return balance to buyer
95 | function checkIfExpired() external returns(bool){
96 | if (expirationTime <= block.timestamp) {
97 | isExpired = true;
98 | buyer.transfer(escrowAddress.balance);
99 | emit DealExpired(isExpired);
100 | } else {
101 | isExpired = false;
102 | }
103 | return(isExpired);
104 | }
105 |
106 | /// @notice for early termination by either buyer or seller due to claimed breach of the other party, claiming party requests LexLocker resolution. deposit either returned to buyer or remitted to seller as liquidated damages
107 | function disputeDeal(address _token, string calldata _details, bool _singleArbiter) external restricted returns(string memory){
108 | require(!isClosed && !isExpired, "Too late for early termination");
109 | if (msg.sender == seller) {
110 | LexLocker(lexlocker).requestLockerResolution(buyer, lexDAO, _token, deposit, _details, _singleArbiter);
111 | lexlocker.transfer(escrowAddress.balance);
112 | isDisputed = true;
113 | emit DealDisputed(seller, isDisputed);
114 | return("Seller has initiated LexLocker dispute resolution.");
115 | } else if (msg.sender == buyer) {
116 | LexLocker(lexlocker).requestLockerResolution(seller, lexDAO, _token, deposit, _details, _singleArbiter);
117 | lexlocker.transfer(escrowAddress.balance); // presumably balance only holds the deposit amount if buyer is initiating dispute
118 | isDisputed = true;
119 | emit DealDisputed(buyer, isDisputed);
120 | return("Buyer has initiated Lexlocker dispute resolution.");
121 | } else {
122 | return("You are neither buyer nor seller.");
123 | }
124 | }
125 |
126 | /// @notice seller and buyer each call when ready to close
127 | function readyToClose() external restricted returns(string memory){
128 | if (msg.sender == seller) {
129 | sellerApproved = true;
130 | return("Seller is ready to close.");
131 | } else if (msg.sender == buyer) {
132 | buyerApproved = true;
133 | return("Buyer is ready to close.");
134 | } else {
135 | return("You are neither buyer nor seller.");
136 | }
137 | }
138 |
139 | /// @notice checks if both buyer and seller are ready to close and expiration has not been met; if so, closes deal and pay seller
140 | function closeDeal() public returns(bool){
141 | require(sellerApproved && buyerApproved, "Parties are not ready to close.");
142 | if (expirationTime <= block.timestamp) {
143 | isExpired = true;
144 | buyer.transfer(escrowAddress.balance);
145 | emit DealExpired(isExpired);
146 | } else {
147 | isClosed = true;
148 | seller.transfer(escrowAddress.balance);
149 | emit DealClosed(isClosed);
150 | }
151 | return(isClosed);
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/forms/legal/NDA.md:
--------------------------------------------------------------------------------
1 | // drafted from the perspective of a DAO’s legal wrapper engaging a new or potential contributor/grantee who will encounter confidential information (internal or third party)
2 |
3 | // insert any specific concepts or references to be expressly confidential in Section 1
4 |
5 | // consider including identities of pseudo-anon contributors as Confidential Information
6 |
7 | ## Non-Disclosure and Confidentiality Agreement
8 |
9 | This Non-Disclosure and Confidentiality Agreement (this “Agreement”) is entered into as of [DATE] (the “Effective Date”) by and between [INDIVIDUAL OR ENTITY] (“Party A”) and [DAO WRAPPER], an [ENTITY TYPE] (the “Entity”), represented and governed by the [NAME] decentralized autonomous organization (“DAO”) (DAO and the Entity, together with any subsidiaries and affiliates, “[NAME]”) (Party A and [NAME] are each a “Party” and both, the “Parties”).
10 |
11 | [NAME] and Party A have indicated an interest in exploring a potential commercial relationship and/or contractor or employment relationship (the “Relationship”). In connection with its respective evaluation of the Relationship, each Party, their respective affiliates and their respective directors, officers, employers, employees, contractors, agents, members, or advisors (collectively, “Representatives”) may be alerted of, become privy to, provide or gain access to certain confidential and/or proprietary information. A Party or its Representative disclosing its Confidential Information (as such term is defined in Section 1 below) to the other Party is hereafter referred to as a “Disclosing Party.” A Party or its Representative receiving the Confidential Information of the Disclosing Party is hereafter referred to as a “Receiving Party.” In consideration for being furnished Confidential Information and for the Relationship, [NAME] and Party A agree as follows:
12 |
13 | 1. Confidential Information. The term “Confidential Information” as used in this Agreement shall mean any data or information that is reasonably sensitive material and not generally known to the public or any third parties, including, but not limited to, information relating to any of the following: non-public product development and plans, proprietary concepts, documentation, operations, systems, computer software, source code, trade secrets, customer lists, customer relationships, present or future business activities, design, verbal conversations or representations, writings, technical information and integrations which the Disclosing Party reasonably communicates as confidential, and anything [NAME] sets forth in writing as being confidential or sensitive material. [Unless expressly set forth in writing otherwise, any and all data, information, correspondence, materials, activities, operations, or relationships in any way related to [__________] or any reference thereof shall be deemed included in the definition of “Confidential Information.”]
14 |
15 | 2. Exclusions from Confidential Information. The obligation of confidentiality with respect to Confidential Information will not apply to any information publicly known due to prior authorized or lawful disclosure, or if the information is disclosed by the Receiving Party with the Disclosing Party’s prior written consent and approval.
16 |
17 | 3. Obligation to Maintain Confidentiality. With respect to Confidential Information:
18 |
19 | a. Receiving Party and its Representatives agree to retain the Confidential Information of the Disclosing Party in strict confidence, to use commercially reasonable measures to protect the security, integrity and confidentiality of such information and to not permit unauthorized access to or unauthorized use, disclosure, publication or dissemination of Confidential Information except in conformity with this Agreement;
20 |
21 | b. Receiving Party and its Representatives shall adopt and/or maintain security processes and procedures to safeguard the confidentiality of all Confidential Information received by Disclosing Party using a reasonable degree of care, but not less than that degree of care used in safeguarding its own similar information or material;
22 |
23 | c. Upon termination the termination of this Agreement, Receiving Party will ensure that all documents, writings, and other electronic records that include or reflect any Confidential Information are returned to Disclosing Party or are destroyed as directed by Disclosing Party;
24 |
25 | d. If there is an unauthorized disclosure or loss of any of the Confidential Information by Receiving Party or any of its Representatives, Receiving Party will promptly, at its own expense, notify Disclosing Party in writing and take all actions as may be necessary or reasonably requested by Disclosing Party to minimize any damage to the Disclosing Party or a third party as a result of the disclosure or loss; and
26 |
27 | e. The obligation not to disclose Confidential Information shall survive the termination of this Agreement, and at no time will Receiving Party or any of its Representatives be permitted to disclose Confidential Information, except to the extent that such Confidential Information is excluded from the obligations of confidentiality under this Agreement pursuant to Section 2 above.
28 |
29 | 4. Non-Disclosure of Relationship. Without Disclosing Party’s prior written consent, neither Receiving Party nor its Representatives shall disclose to any other person (a) the fact that Confidential Information has been made available to it or that it has inspected any portion of the Confidential Information; (b) the fact that the Disclosing Party and Receiving Party are having discussions or negotiation concerning the Relationship; or (c) any of the terms, conditions, discussions, plans or other facts with respect to the Relationship.
30 |
31 | 5. Representatives. Receiving Party will take reasonable steps to ensure that its Representatives adhere to the terms of this Agreement, and Receiving Party will be responsible for any breach of this Agreement by any of its Representatives.
32 |
33 | 6. Disclaimer. There is no representation or warranty made by Disclosing Party as to the accuracy or completeness of any of the Confidential Information. Either Party may, in its sole discretion: (a) reject any proposals made by the other Party or its Representatives with respect to the Relationship; and (b) terminate discussions or negotiations at any time.
34 |
35 | 7. Remedies. Each Party agrees that use or disclosure of any Confidential Information in a manner inconsistent with this Agreement will give rise to irreparable injury for which: (a) money damages may not be a sufficient remedy for any breach of this Agreement by such Party; (b) the other Party may be entitled to specific performance and injunction and other equitable relief with respect to any such breach; (c) such remedies will not be the exclusive remedies for any such breach, but will be in addition to all other remedies available at law or in equity; and (d) in the event of litigation relating to this Agreement, if a court of competent jurisdiction determines in a final non-appealable order that one Party, or any of its Representatives, has breached this Agreement, such Party will be liable for reasonable legal fees and expenses incurred by the other Party in connection with such litigation, including, but not limited to, any appeals.
36 |
37 | 8. Notices. All notices given under this Agreement shall be in writing and provided in the same manner and to the same addresses and addressees as the Agreement itself or as otherwise designated in writing by the Parties.
38 |
39 | 9. Termination. This Agreement will terminate only upon the mutual written agreement of the Parties to terminate this Agreement.
40 |
41 | 10. Amendment. This Agreement may be amended or modified only by a written agreement signed by both Parties.
42 |
43 | 11. Jurisdiction. This Agreement is governed by the laws of the State of New York, without regard to any conflicts of law provisions. The Parties hereby consent to the exclusive jurisdiction of the New York International Arbitration Center with respect to any dispute arising under or relating to this Agreement, and waive any respective rights to a jury trial.
44 |
45 | 12. Miscellaneous.
46 |
47 | a. This Agreement will inure to the benefit of and be binding on the respective successors and permitted assigns of the Parties. Neither Party may assign its rights or delegate its duties under this Agreement without the other party’s prior written consent.
48 |
49 | b. In the event that any provision of this Agreement is held to be invalid, illegal or unenforceable in whole or in part, the remaining provisions shall not be affected and shall continue to be valid, legal and enforceable as though the invalid, illegal or unenforceable parts were severed from this Agreement.
50 |
51 | c. This Agreement may be executed in counterparts, each of which shall be deemed an original, but both of which together shall constitute one and the same instrument. This Agreement may be executed by electronic means, and any electronic signatures to this Agreement are deemed the same as handwritten signatures for purposes of validity, enforceability, and admissibility.
52 |
53 |
54 | *****************************************************
55 |
56 |
57 |
58 | The Parties hereto have executed this Agreement as of the Effective Date.
59 |
60 |
61 |
62 | ________
63 | By:
64 | Party A
65 |
66 |
67 | ________
68 | By:
69 | [DAO WRAPPER]
70 |
--------------------------------------------------------------------------------
/PO/NDA.md:
--------------------------------------------------------------------------------
1 | // A Prose Objectification of the [forms/legal/NDA.md]
2 |
3 | // drafted from the perspective of a DAO’s legal wrapper engaging a new or potential contributor/grantee who will encounter confidential information (internal or third party)
4 |
5 | // insert any specific concepts or references to be expressly confidential in Section 1
6 |
7 | // consider including identities of pseudo-anon contributors as Confidential Information
8 |
9 | Law.State.the=the State of New York
10 |
11 | ArbitrationOrg.Name.Full=New York International Arbitration Center
12 |
13 | Def.DAO.target={_DAO}
14 |
15 | _DAO=DAO
16 | Doc.Ti=Non-Disclosure and Confidentiality Agreement
17 |
18 | P2.ID.cl=[DAO WRAPPER], an [ENTITY TYPE] (the “Entity”), represented and governed by the {DAO.Rep.Name} decentralized autonomous organization
19 |
20 | This.sec=This Non-Disclosure and Confidentiality Agreement (this “Agreement”) is entered into as of {EffectiveDate.YMD} (the “Effective Date”) by and between {P1.US.N,E,A} (“Party A”) and {P2.ID.cl} (“DAO”) (DAO and the Entity, together with any subsidiaries and affiliates, “{Def.DAO.target}”) (Party A and {_DAO} are each a “Party” and both, the “Parties”).
21 |
22 | Why.sec={_DAO} and Party A have indicated an interest in exploring a potential commercial relationship and/or contractor or employment relationship (the “Relationship”). In connection with its respective evaluation of the Relationship, each Party, their respective affiliates and their respective directors, officers, employers, employees, contractors, agents, members, or advisors (collectively, “Representatives”) may be alerted of, become privy to, provide or gain access to certain confidential and/or proprietary information. A Party or its Representative disclosing its Confidential Information (as such term is defined in Section 1 below) to the other Party is hereafter referred to as a “Disclosing Party.” A Party or its Representative receiving the Confidential Information of the Disclosing Party is hereafter referred to as a “Receiving Party.” In consideration for being furnished Confidential Information and for the Relationship, {_DAO} and Party A agree as follows:
23 |
24 | 1.Ti=Confidential Information
25 |
26 | 1.1.sec=The term “Confidential Information” as used in this Agreement shall mean any data or information that is reasonably sensitive material and not generally known to the public or any third parties, including, but not limited to, information relating to any of the following: non-public product development and plans, proprietary concepts, documentation, operations, systems, computer software, source code, trade secrets, customer lists, customer relationships, present or future business activities, design, verbal conversations or representations, writings, technical information and integrations which the Disclosing Party reasonably communicates as confidential, and anything {_DAO} sets forth in writing as being confidential or sensitive material.
27 |
28 | Note=Optional
29 |
30 | 1.2.sec=Unless expressly set forth in writing otherwise, any and all data, information, correspondence, materials, activities, operations, or relationships in any way related to {CoreConfSubjectMatter.cl} or any reference thereof shall be deemed included in the definition of “Confidential Information.”
31 |
32 | 1.=[G/Z/para/s2]
33 |
34 | 2.Ti=Exclusions from Confidential Information
35 |
36 | 2.sec=The obligation of confidentiality with respect to Confidential Information will not apply to any information publicly known due to prior authorized or lawful disclosure, or if the information is disclosed by the Receiving Party with the Disclosing Party’s prior written consent and approval.
37 |
38 | 3.Ti=Obligation to Maintain Confidentiality
39 |
40 | 3.0.sec=With respect to Confidential Information:
41 |
42 | 3.1.sec=Receiving Party and its Representatives agree to retain the Confidential Information of the Disclosing Party in strict confidence, to use commercially reasonable measures to protect the security, integrity and confidentiality of such information and to not permit unauthorized access to or unauthorized use, disclosure, publication or dissemination of Confidential Information except in conformity with this Agreement;
43 |
44 | 3.2.sec=Receiving Party and its Representatives shall adopt and/or maintain security processes and procedures to safeguard the confidentiality of all Confidential Information received by Disclosing Party using a reasonable degree of care, but not less than that degree of care used in safeguarding its own similar information or material;
45 |
46 | 3.3.sec=Upon termination the termination of this Agreement, Receiving Party will ensure that all documents, writings, and other electronic records that include or reflect any Confidential Information are returned to Disclosing Party or are destroyed as directed by Disclosing Party;
47 |
48 | 3.4.sec=d. If there is an unauthorized disclosure or loss of any of the Confidential Information by Receiving Party or any of its Representatives, Receiving Party will promptly, at its own expense, notify Disclosing Party in writing and take all actions as may be necessary or reasonably requested by Disclosing Party to minimize any damage to the Disclosing Party or a third party as a result of the disclosure or loss; and
49 |
50 | 3.5.sec=e. The obligation not to disclose Confidential Information shall survive the termination of this Agreement, and at no time will Receiving Party or any of its Representatives be permitted to disclose Confidential Information, except to the extent that such Confidential Information is excluded from the obligations of confidentiality under this Agreement pursuant to Section 2 above.
51 |
52 | 3.=[G/Z/ol-a/s5]
53 |
54 | 4.Ti=Non-Disclosure of Relationship
55 |
56 | 4.sec=Without Disclosing Party’s prior written consent, neither Receiving Party nor its Representatives shall disclose to any other person (a) the fact that Confidential Information has been made available to it or that it has inspected any portion of the Confidential Information; (b) the fact that the Disclosing Party and Receiving Party are having discussions or negotiation concerning the Relationship; or (c) any of the terms, conditions, discussions, plans or other facts with respect to the Relationship.
57 |
58 | 5.Ti=Representatives
59 |
60 | 5.sec=Receiving Party will take reasonable steps to ensure that its Representatives adhere to the terms of this Agreement, and Receiving Party will be responsible for any breach of this Agreement by any of its Representatives.
61 |
62 | 6.Ti=Disclaimer
63 |
64 | 6.sec=There is no representation or warranty made by Disclosing Party as to the accuracy or completeness of any of the Confidential Information. Either Party may, in its sole discretion: (a) reject any proposals made by the other Party or its Representatives with respect to the Relationship; and (b) terminate discussions or negotiations at any time.
65 |
66 | 7.Ti=Remedies
67 |
68 | 7.0.sec=Each Party agrees that use or disclosure of any Confidential Information in a manner inconsistent with this Agreement will give rise to irreparable injury for which:
69 |
70 | 7.1.sec=money damages may not be a sufficient remedy for any breach of this Agreement by such Party;
71 |
72 | 7.2.sec=the other Party may be entitled to specific performance and injunction and other equitable relief with respect to any such breach;
73 |
74 | 7.3.sec=such remedies will not be the exclusive remedies for any such breach, but will be in addition to all other remedies available at law or in equity; and
75 |
76 | 7.4.sec=in the event of litigation relating to this Agreement, if a court of competent jurisdiction determines in a final non-appealable order that one Party, or any of its Representatives, has breached this Agreement, such Party will be liable for reasonable legal fees and expenses incurred by the other Party in connection with such litigation, including, but not limited to, any appeals.
77 |
78 | 7.=[G/Z/ol-a/s4]
79 |
80 | 8.Ti=Notices
81 |
82 | 8.sec=All notices given under this Agreement shall be in writing and provided in the same manner and to the same addresses and addressees as the Agreement itself or as otherwise designated in writing by the Parties.
83 |
84 | 9.Ti=Termination
85 |
86 | 9.sec=This Agreement will terminate only upon the mutual written agreement of the Parties to terminate this Agreement.
87 |
88 | 10.Ti=Amendment
89 |
90 | 10.sec=This Agreement may be amended or modified only by a written agreement signed by both Parties.
91 |
92 | 11.Ti=Jurisdiction
93 |
94 | 11.sec=This Agreement is governed by the laws of {Law.State.the}, without regard to any conflicts of law provisions. The Parties hereby consent to the exclusive jurisdiction of the {ArbitrationOrg.Name.Full} with respect to any dispute arising under or relating to this Agreement, and waive any respective rights to a jury trial.
95 |
96 | 12.Ti=Miscellaneous
97 |
98 | 12.1.sec=This Agreement will inure to the benefit of and be binding on the respective successors and permitted assigns of the Parties. Neither Party may assign its rights or delegate its duties under this Agreement without the other party’s prior written consent.
99 |
100 | 12.2.sec=In the event that any provision of this Agreement is held to be invalid, illegal or unenforceable in whole or in part, the remaining provisions shall not be affected and shall continue to be valid, legal and enforceable as though the invalid, illegal or unenforceable parts were severed from this Agreement.
101 |
102 | 12.3.sec=This Agreement may be executed in counterparts, each of which shall be deemed an original, but both of which together shall constitute one and the same instrument. This Agreement may be executed by electronic means, and any electronic signatures to this Agreement are deemed the same as handwritten signatures for purposes of validity, enforceability, and admissibility.
103 |
104 | 12.=[G/Z/ol-a/s3]
105 |
106 | =[G/Agt-Form-CmA/US/0.md]
107 |
108 | =[G/Z/ol/12]
109 | *****************************************************
110 |
111 |
112 |
113 | The Parties hereto have executed this Agreement as of the Effective Date.
114 |
115 |
116 |
117 | ________
118 | By:
119 | Party A
120 |
121 |
122 | ________
123 | By:
124 | [DAO WRAPPER]
125 |
--------------------------------------------------------------------------------
/solidity/InstallmentERC20Escrow.sol:
--------------------------------------------------------------------------------
1 | //SPDX-License-Identifier: MIT
2 | //INCOMPLETE
3 | pragma solidity 0.8.6;
4 |
5 | /* unaudited and for demonstration only, subject to all disclosures, licenses, and caveats of the open-source-law repo
6 | ** @dev create a simple smart escrow contract for retainer/escrowed service work or client representation, with an ERC20 stablecoin as payment, expiration denominated in seconds
7 | ** @notice: three milestones, with equal installment payments per milestone
8 | ** reminder of retainer amount is refunded to client if milestone(s) not accomplished by expiry
9 | ** intended to be deployed by client (as funds are placed in escrow upon deployment, and returned to deployer if expired but mutually ready to close). Three equal installment amounts.
10 | ** may be forked/altered for number of installments and breakdown of each amount, retainer refundability, etc. */
11 |
12 | interface IERC20 {
13 | function approve(address spender, uint256 amount) external returns (bool);
14 | function balanceOf(address account) external view returns (uint256);
15 | function transfer(address recipient, uint256 amount) external returns (bool);
16 | function transferFrom(address from, address to, uint256 value) external returns (bool);
17 | }
18 |
19 | contract InstallmentEscrow {
20 |
21 | address escrowAddress;
22 | address payable client;
23 | address payable servicer;
24 | address stablecoin;
25 | uint256 retainer;
26 | uint256 expirationTime;
27 | bool servicerApproved;
28 | bool clientApproved;
29 | bool firstInstallmentPaid;
30 | bool servicerApproved2;
31 | bool clientApproved2;
32 | bool secondInstallmentPaid;
33 | bool servicerApproved3;
34 | bool clientApproved3;
35 | bool isExpired;
36 | bool isClosed;
37 | IERC20 public ierc20;
38 | string description;
39 | mapping(address => bool) public parties; //map whether an address is a party for restricted() modifier
40 |
41 | event firstMilestoneCompleted(uint256 firstMilestoneTime);
42 | event secondMilestoneCompleted(uint256 secondMilestoneTime);
43 | event Expired(bool isExpired);
44 | event Closed(bool isClosed, uint256 effectiveTime); //event provides exact blockstamp time of payment
45 |
46 | modifier restricted() {
47 | require(parties[msg.sender], "This may only be called by a party or the by escrow contract");
48 | _;
49 | }
50 |
51 | //deployer (client) initiates escrow with description, retainer amount in USD, address of stablecoin, seconds until expiry, and designate recipient servicer
52 | // @param: _description should be a brief identifier - perhaps as to parties/underlying asset/documentation reference/hash
53 | // @param: _retainer is the total retainer amount which will be deposited in the smart escrow contract
54 | // @param: _servicer is the servicer's address, who will receive the retainer in installments; in practice this could be a consultant or attorney
55 | // @param: _stablecoin is the token contract address for the stablecoin to be sent as retainer
56 | // @param: _secsUntilExpiration is the number of seconds until expiry, which can be converted to days for front end input or the code can be adapted accordingly
57 | constructor(string memory _description, uint256 _retainer, address payable _servicer, address _stablecoin, uint256 _secsUntilExpiration) payable {
58 | require(_servicer != msg.sender, "Designate different party as servicer/service provider");
59 | client = payable(address(msg.sender));
60 | retainer = _retainer * 10e18; // @notice: 18 decimals for _stablecoin. Adjust as necessary or move decimal calculation to front end
61 | escrowAddress = address(this);
62 | stablecoin = _stablecoin;
63 | ierc20 = IERC20(stablecoin);
64 | description = _description;
65 | servicer = _servicer;
66 | parties[msg.sender] = true;
67 | parties[_servicer] = true;
68 | parties[escrowAddress] = true;
69 | expirationTime = block.timestamp + _secsUntilExpiration;
70 | }
71 |
72 | // client may confirm recipient address as extra security measure or change address
73 | function designateServiceProvider(address payable _servicer) public restricted {
74 | require(_servicer != servicer, "Address already designated as servicer");
75 | require(_servicer != client, "Client cannot also be servicer");
76 | require(!isExpired, "Too late to change servicer");
77 | parties[_servicer] = true;
78 | servicer = _servicer;
79 | }
80 |
81 | // ********** DEPLOYER MUST SEPARATELY APPROVE (by interacting with the ERC20 contract in question's approve()) this contract address for the retainer amount (keep decimals in mind) ************
82 | // client deposits in escrowAddress
83 | function sendRetainer() external returns(bool, uint256) {
84 | require(msg.sender == client, "Only client may deposit retainer.");
85 | ierc20.transferFrom(client, escrowAddress, retainer);
86 | return (true, ierc20.balanceOf(escrowAddress));
87 |
88 | }
89 |
90 | //escrowAddress returns remainder of retainer to client
91 | function returnToClient() internal returns(bool, uint256) {
92 | ierc20.transfer(client, ierc20.balanceOf(escrowAddress));
93 | return (true, ierc20.balanceOf(escrowAddress));
94 | }
95 |
96 | //check if expired, and if so, return balance to client only if servicer is not ready to close, otherwise non-refundable if client fails to approve closing after sending funds
97 | //but, see sendDeposit()'s require statement safety mechanism requiring client to approve closing before sending funds via this contract)
98 | function checkIfExpired() external returns(bool){
99 | if (expirationTime <= uint256(block.timestamp)) {
100 | isExpired = true;
101 | returnToClient();
102 | emit Expired(isExpired);
103 | } else {
104 | isExpired = false;
105 | }
106 | return(isExpired);
107 | }
108 |
109 | // for servicer to easily check if retainer is in escrowAddress
110 | function checkEscrow() public restricted view returns(uint256) {
111 | return ierc20.balanceOf(escrowAddress);
112 | }
113 |
114 | // if client wishes to initiate dispute over servicer breach of off chain agreement or repudiate, simply may wait for expiration without sending deposit nor calling this function
115 | // for servicer and client to call when first deliverable/milestone/hour threshold is complete
116 | function firstMilestoneComplete() external restricted returns(string memory){
117 | if (msg.sender == servicer) {
118 | servicerApproved = true;
119 | return("Servicer confirms first milestone is complete.");
120 | } else if (msg.sender == client) {
121 | clientApproved = true;
122 | return("Client confirms first milestone is complete.");
123 | } else {
124 | return("You are neither client nor servicer.");
125 | }
126 | }
127 |
128 | //escrowAddress sends first installment to servicer
129 | function payFirstInstallment() external restricted returns(bool, uint256) {
130 | require(!firstInstallmentPaid, "Already paid first installment.");
131 | require (servicerApproved && clientApproved, "Servicer and client must call FirstMilestoneComplete().");
132 | ierc20.transfer(servicer, retainer/3);
133 | firstInstallmentPaid = true;
134 | emit firstMilestoneCompleted(block.timestamp);
135 | return (true, ierc20.balanceOf(escrowAddress));
136 | }
137 |
138 | function secondMilestoneComplete() external restricted returns(string memory){
139 | require(servicerApproved && clientApproved, "First Milestone is not complete.");
140 | if (msg.sender == servicer) {
141 | servicerApproved2 = true;
142 | return("Servicer confirms second milestone is complete.");
143 | } else if (msg.sender == client) {
144 | clientApproved2 = true;
145 | return("Client confirms second milestone is complete.");
146 | } else {
147 | return("You are neither client nor servicer.");
148 | }
149 | }
150 |
151 | //escrowAddress sends second installment to servicer
152 | function paySecondInstallment() external restricted returns(bool, uint256) {
153 | require(!secondInstallmentPaid, "Already paid second installment.");
154 | require (servicerApproved2 && clientApproved2, "Servicer and client must call SecondMilestoneComplete().");
155 | ierc20.transfer(servicer, retainer/3);
156 | secondInstallmentPaid = true;
157 | emit secondMilestoneCompleted(block.timestamp);
158 | return (true, ierc20.balanceOf(escrowAddress));
159 | }
160 |
161 | function thirdMilestoneComplete() external restricted returns(string memory){
162 | require(servicerApproved2 && clientApproved2, "Second Milestone is not complete.");
163 | if (msg.sender == servicer) {
164 | servicerApproved3 = true;
165 | return("Servicer confirms third milestone is complete.");
166 | } else if (msg.sender == client) {
167 | clientApproved3 = true;
168 | return("Client confirms third milestone is complete.");
169 | } else {
170 | return("You are neither client nor servicer.");
171 | }
172 | }
173 |
174 | // checks if both client and servicer are ready to close representation and expiration has not been met; if so, escrowAddress pays out remainder of retainer to servicer
175 | // if properly closes, emits event with effective time of closing
176 | function closeRepresentation() public returns(bool){
177 | require(servicerApproved3 && clientApproved3, "Third Milestone is not complete.");
178 | if (expirationTime <= uint256(block.timestamp)) {
179 | isExpired = true;
180 | returnToClient(); // see comment above as to deposit refund for accidental expiration, optional/subject to negotiation of parties
181 | emit Expired(isExpired);
182 | } else {
183 | ierc20.transfer(servicer, ierc20.balanceOf(escrowAddress));
184 | isClosed = true;
185 | emit Closed(isClosed, block.timestamp); // effective time of closing upon payment to servicer
186 | }
187 | return(isClosed);
188 | }
189 | }
190 |
--------------------------------------------------------------------------------
/forms/legal/Single Member LLC Operating Agreement.md:
--------------------------------------------------------------------------------
1 | // simple operating agreement for a single member, member-managed LLC
2 |
3 | // provided without warranty of any kind, do not use without consulting an attorney in the applicable state of organization, all open-source-law repo disclosures apply
4 |
5 |
6 | LIMITED LIABILITY COMPANY OPERATING AGREEMENT
7 | OF
8 | [NAME] LLC
9 |
10 | A Single-Member, Member-Managed Limited Liability Company
11 |
12 |
13 | This Limited Liability Company Operating Agreement (this “Agreement”) is entered into as of [EFFECTIVE DATE], by and between [NAME] LLC, a [STATE OF ORGANIZATION] limited liability company, (the “Company”), and [MEMBER], an individual, (the “Member”).
14 |
15 | The Member desires to create a limited liability company and set forth the terms of the Company’s operation.
16 |
17 | NOW, THEREFORE, in consideration of the mutual covenants set forth herein and other valuable consideration, the receipt and sufficiency of which hereby are acknowledged, the Member and the Company agree as follows:
18 |
19 | 1. Formation. The Company was formed in [STATE OF ORGANIZATION] on [ORGANIZATION DATE] pursuant to the statutes thereto governing limited liability companies [including but not limited to [STATUTE REFERENCE(S)]] (the “Statutes”).
20 |
21 | 2. Name and Principal Place of Business. The name of the Company is “[NAME] LLC” and has a principal place of business at [ADDRESS], or as otherwise selected by the Member.
22 |
23 | 3. Purpose. The Company may conduct any and all lawful business, activity or functions appropriate in carrying out the Company’s objectives as determined by the Member.
24 |
25 | 4. Registered Office and Agent. The location and name of the registered agent will be as stated in the Company’s formation documents or any amendment thereof.
26 |
27 | 5. Term. The term of the Company shall be perpetual, commencing on the filing of the [Articles of Organization][Certificate of Formation] of the Company, and continuing until terminated pursuant to this Agreement.
28 |
29 | 6. Member Capital Contributions. The Member may make such capital contributions (each a “Capital Contribution”) in such amounts and at such times as the Member shall determine. The Member shall not be obligated to make any Capital Contributions. The Member may take distributions of the Company’s capital from time to time as permitted by and subject to any limitations of the Statutes.
30 |
31 | 7. Distributions.
32 |
33 | (a) The Member may take distributions of the Company’s capital from time to time as permitted by and subject to any limitations of the Statutes.
34 |
35 | (b) A “Capital Account” for the Member shall be maintained by the Company. The Member's Capital Account shall reflect the Member’s Capital Contributions and increases for any net income or gain of the Company, and decreases for distributions made to the Member and the Member’s share of any losses and deductions of the Company (accounting for applicable expenses, depreciation, and other fees and obligations incurred in connection with the conduct of the Company’s business), as applicable.
36 |
37 | 8. Books, Records and Tax Returns
38 |
39 | (a) The Company shall maintain complete and accurate books and records of the Company's business and affairs as required by the Statutes and such books and records shall be kept at the Company's Registered Office and shall in all respects be independent of the books, records and transactions of the Member.
40 |
41 | (b) The Company's fiscal year shall be the calendar year with an ending month of December.
42 |
43 | (c) The Member intends that the Company, as a single member LLC, shall be taxed as [a sole proprietorship in accordance with the provisions of the Internal Revenue Code and the Statutes. Any provisions herein that may cause the Company not to be taxed as a sole proprietorship shall be inoperative].
44 |
45 | 9. Bank Accounts and Blockchain Addresses. All funds of the Company shall be deposited in the Company’s name in (i) a bank account or accounts or (ii) blockchain wallet or externally owned account, as applicable and as chosen by the Member. Withdrawals from any such accounts shall be made only in the regular course of business of the Company and shall be made upon such signature or signatures as the Member from time to time may designate.
46 |
47 | 10. Management of the Company. The business and affairs of the Company shall be conducted and managed by the Member in accordance with this Agreement and the laws of the State of [STATE OF ORGANIZATION]. [MEMBER], as sole member of the Company, has sole authority and power to act for or on behalf of the Company, to do any act that would be binding on the Company, or incur any expenditures on behalf of the Company. The Member shall not be liable for the debts, obligations or liabilities of the Company, including under a judgment, decree or order of a court. The Company is organized as a “member-managed” limited liability company. The Member is designated as the initial managing member.
48 |
49 | 11. Ownership of Company Property. The Company’s assets shall be deemed owned by the Company as an entity, and the Member shall have no ownership interest in such assets or any portion thereof. Title to any or all such Company assets may be held in the name of the Company, or one or more nominees or trustees, as the Member may determine. Except as limited by the Statutes, the Member may engage in other business ventures of any nature, including, without limitation by specification, the ownership of another business similar to that operated by the Company. The Company shall not have any right or interest in any such independent ventures nor to the income and profits derived therefrom.
50 |
51 | 12. Admission of New Members.
52 |
53 | (a) The Company may admit new Members (or transferees of any interests of existing Members) into the Company by the unanimous vote or consent of the Members. As a condition to the admission of a new Member, such Member shall execute and acknowledge such instruments, in form and substance satisfactory to the Company, as the Company may deem necessary or desirable to effectuate such admission and to confirm the agreement of such Member to be bound by all of the terms, covenants and conditions of this Agreement, as the same may have been amended. Such new Member shall pay all reasonable expenses in connection with such admission, including without limitation, reasonable attorneys’ fees and the cost of the preparation, filing or publication of any amendment to this Agreement or the [Articles of Organization][Certificate of Formation], which the Company may deem necessary or desirable in connection with such admission.
54 |
55 | (b) No new Member shall be entitled to any retroactive allocation of income, losses, or expense deductions of the Company. The Company may make pro rata allocations of income, losses or expense deductions to a new Member for that portion of the tax year in which the Member was admitted in accordance with Section 706(d) of the Internal Revenue Code and regulations thereunder.
56 |
57 | (c) In no event shall a new Member be admitted to the Company if such admission would be in violation of applicable Federal or State securities laws or would adversely affect the treatment of the Company as a partnership for income tax purposes.
58 |
59 | 13. Dissolution and Liquidation
60 |
61 | (a) The Company shall dissolve and its affairs shall be wound up on the first to occur of: (i) at a time, or upon the occurrence of an event specified in the [Articles of Organization][Certificate of Formation] or this Agreement, or (ii) the determination by the Member that the Company shall be dissolved.
62 |
63 | (b) Upon the death of the Member, the Company shall be dissolved. By separate written documentation, the Member shall designate and appoint the individual who will wind down the Company’s business and transfer or distribute the Member's Interests and Capital Account as designated by the Member or as may otherwise be required by law.
64 |
65 | (c) Upon the disability of a Member, the Member may continue to act as Manager hereunder or appoint a person to so serve until the Member's Interests and Capital Account of the Member have been transferred or distributed.
66 |
67 | 14. Indemnification
68 |
69 | (a) The Member (including, for purposes of this Section, any estate, heir, personal representative, receiver, trustee, successor, assignee and/or transferee of the Member) shall not be liable, responsible or accountable, in damages or otherwise, to the Company or any other person for: (i) any act performed, or the omission to perform any act, within the scope of the power and authority conferred on the Member by this agreement and/or by the Statutes except by reason of acts or omissions found by a court of competent jurisdiction upon entry of a final judgment rendered and un-appealable or not timely appealed (“Judicially Determined”) to constitute fraud, gross negligence, or intentional misconduct; (ii) the termination of the Company and this Agreement pursuant to the terms hereof; (iii) the performance by the Member of, or the omission by the Member to perform, any act which the Member reasonably believed to be consistent with the advice of attorneys, accountants or other professional advisers to the Company with respect to matters relating to the Company, including actions or omissions determined to constitute violations of law but which were not undertaken in bad faith; or (iv) the conduct of any person selected or engaged by the Member.
70 |
71 | (b) The Company, its receivers, trustees, successors, assignees and/or transferees shall indemnify, defend and hold the Member harmless from and against any and all liabilities, damages, losses, costs and expenses of any nature whatsoever, known or unknown, liquidated or unliquidated, that are incurred by the Member (including amounts paid in satisfaction of judgments, in settlement of any action, suit, demand, investigation, claim or proceeding (“Claim”), as fines or penalties) and from and against all legal or other such costs as well as the expenses of investigating or defending against any Claim or threatened or anticipated Claim arising out of, connected with or relating to this Agreement, the Company or its business affairs in any way; provided, that the conduct of the Member which gave rise to the action against the Member is indemnifiable under the standards set forth herein.
72 |
73 | (c) Upon application, the Member shall be entitled to receive advances to cover the costs of defending or settling any Claim or any threatened or anticipated Claim against the Member that may be subject to indemnification hereunder upon receipt by the Company of any undertaking by or on behalf of the Member to repay such advances to the Company, without interest, if the Member is Judicially Determined not to be entitled to indemnification as set forth herein.
74 |
75 | (d) All rights of the Member to indemnification under this Agreement shall (i) be cumulative of, and in addition to, any right to which the Member may be entitled to by contract or as a matter of law or equity, and (ii) survive the dissolution, liquidation or termination of the Company as well as the death, removal, incompetency or insolvency of the Member.
76 |
77 | (e) The termination of any Claim or threatened Claim against the Member by judgment, order, settlement or upon a plea of nolo contendere or its equivalent shall not, of itself, cause the Member not to be entitled to indemnification as provided herein unless and until Judicially Determined to not be so entitled.
78 |
79 | 15. Miscellaneous
80 |
81 | (a) This Agreement and the rights and liabilities of the parties hereunder shall be governed by and determined in accordance with the laws of the State of [STATE OF ORGANIZATION]. If any provision of this Agreement shall be invalid or unenforceable, such invalidity or unenforceability shall not affect the other provisions of this Agreement, which shall remain in full force and effect.
82 |
83 | (b) The captions in this Agreement are for convenience only and are not to be considered in construing this Agreement. All pronouns shall be deemed to be the masculine, feminine, neuter, singular or plural as the identity of the person or persons may require. References to a person or persons shall include partnerships, corporations, limited liability companies, unincorporated associations, trusts, estates and other types of entities as applicable.
84 |
85 | (c) This Agreement sets forth the entire agreement of the parties hereto with respect to the subject matter hereof. It is the intention of the Member that this Agreement shall be the sole agreement of the parties, and, except to the extent a provision of this Agreement provides for the incorporation of federal income tax rules or is expressly prohibited or ineffective under the Statutes, this Agreement shall govern even when inconsistent with, or different from, the provisions of any applicable law or rule. To the extent any provision of this Agreement is prohibited or otherwise ineffective under the Statutes, such provision shall be considered to be ineffective to the smallest degree possible in order to make this Agreement effective under the Statutes.
86 |
87 | (d) Subject to the limitations on transferability set forth above, this Agreement shall be binding upon and inure to the benefit of the parties hereto and to their respective heirs, executors, administrators, successors and assigns. No provision of this Agreement is intended to be for the benefit of or enforceable by any third party.
88 |
89 | (e) This Agreement, and any amendments hereto may be executed in counterparts all of which taken together shall constitute one agreement.
90 |
91 | [Signature Page Follows]
92 |
93 | **********************************************************************
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | IN WITNESS WHEREOF, the parties have executed this Agreement this [DATE].
114 |
115 |
116 |
117 | [NAME] LLC
118 |
119 |
120 |
121 | By: ____________________________
122 |
123 | [MEMBER], as Member
124 |
125 |
126 | [MEMBER]
127 |
128 |
129 |
130 | By: ____________________________
131 |
132 | [MEMBER]
133 |
134 |
--------------------------------------------------------------------------------
/forms/legal/Grant Agreement (DAO).md:
--------------------------------------------------------------------------------
1 | // simple agreement contemplating DAO treasury grants (by DAO legal wrapper) for independent contractor services, adaptable for individuals or entities
2 |
3 | // effective date should correspond to commencement of applicable DAO grant cycle
4 |
5 | // provided without warranty of any kind, do not use without consulting an attorney, all open-source-law repo disclosures apply
6 |
7 | ## Grant Agreement
8 |
9 | This Grant Agreement (this “Agreement”) is entered into as of [DATE] (the “Effective Date”) by and between __________________ (“Party A”) and [DAO LEGAL WRAPPER], a [ENTITY TYPE] (the “[ENTITY]”), represented and governed by the [NAME] Decentralized Autonomous Organization associated with address 0x_____ (“[NAME] DAO”) ([______] DAO and the [ENTITY], together with any and all subsidiaries and affiliates, “[DAO NAME]”) (Party A and [DAO NAME] are each a “Party” and both, the “Parties”).
10 |
11 | [DAO NAME] has deemed that Party A has the necessary qualifications, experience, and abilities to provide Services (as such term is defined in Section 1 below) to and for the benefit of [DAO NAME], and Party A has agreed to provide such Services to and for the benefit of [DAO NAME] pursuant to the terms and conditions set forth in this Agreement, with Party A to be deemed an independent contractor for [DAO NAME] (as more particularly set forth in Section 4 below, the “Relationship”).
12 |
13 | In consideration of the mutual benefits and obligations set forth in this Agreement, the receipt and sufficiency of which is hereby acknowledged, Party A and [DAO NAME] agree as follows:
14 |
15 | 1. **Services**. [DAO NAME] hereby engages Party A to provide [DAO NAME] or its written designee with the following services: _____________________ (including any other services reasonably related thereto and/or as mutually agreed in writing between the Parties, the “Services”).
16 |
17 | 2. **Term**.
18 |
19 | a. The term of this Agreement (the "Term") commences on the Effective Date and remains in full force and effect (except for the terms of this Agreement which expressly survive the expiry or termination of this Agreement) until [DATE] /// [milestone completion (as confirmed in writing by [DAO NAME]) of ____________] or until terminated pursuant to the terms of this Agreement.
20 |
21 | b. This Agreement may be terminated in writing upon [thirty (30) calendar days’] prior written notice by either Party, or by mutual written agreement of the Parties. However, notwithstanding the foregoing sentence, if Party A has been provided written notice from [DAO NAME] as to any material issue with the quality or provision of the Services which remains uncured for ten days in [DAO NAME]’s sole reasonable discretion, this Agreement may be terminated immediately by written notice from [DAO NAME].
22 |
23 | c. For avoidance of doubt, this Agreement may be terminated in accordance with this section at any point in a calendar month or compensation cycle, and Party A’s compensation for such calendar month or compensation cycle shall be reduced or prorated accordingly to match the actual number of days providing Services for such calendar month or compensation cycle, as applicable.
24 |
25 | 3. **Compensation**.
26 |
27 | a. For each calendar month in the Term, [DAO NAME] or its written designee will pay Party A an equivalent amount to USD$[______] by [STABLECOIN] or other mutually agreed payment method and calculation within the first calendar week of each applicable month or as otherwise mutually agreed in writing.
28 |
29 | b. [DAO NAME] will reimburse Party A for all reasonable and necessary expenses incurred by Party A directly attributable to the Services, subject to [DAO NAME]’s express prior written approval of such expenses.
30 |
31 | 4. **Independent Contractor Relationship**. In providing the Services under this Agreement, the Parties expressly agree that Party A is acting as an independent contractor and not as an employee or agent of [ENTITY], [DAO NAME] or any other related entity. Party A and [DAO NAME] acknowledge and agree that this Agreement does not create a partnership of any kind, nor any joint venture or similar relationship, and is exclusively a contract for service. Party A is not required to pay or make any contributions of any monetary value towards any governmental entity for tax purposes, unemployment compensation, worker’s compensation, insurance premium, pension or any other employee benefit with respect to [DAO NAME] during the Term. Party A acknowledges and agrees that Party A is solely responsible for complying with all laws, regulations, and other governmental requirements applicable to Party A including but not limited to paying all taxes, expenses, and other amounts due from Party A of any kind related to this Agreement.
32 |
33 | // applicable for where grantee will be privy to confidential information, such as information subject to a third party's NDA, or perhaps where a grantee wishes to preserve their own anonymity, etc.
34 |
35 | 5. **Confidential Information**.
36 |
37 | a. Each Party, their respective affiliates and their respective directors, officers, employers, employees, agents, members, or advisors (collectively, “Representatives”) may be alerted of, become privy to, or gain access to certain confidential and/or proprietary information of the other Party. A Party or its Representative disclosing its Confidential Information (as such term is defined in Section 5(b) below) to the other Party is hereafter referred to as a “Disclosing Party.” A Party or its Representative receiving the Confidential Information of the Disclosing Party is hereafter referred to as a “Receiving Party.”
38 |
39 | b. The term “Confidential Information” as used in this Agreement shall mean any data or information that is reasonably sensitive material and not generally known to the public or any third parties, including, but not limited to, information relating to any of the following: the Relationship, product development and plans, proprietary concepts, documentation, operations, systems, computer software, source code, trade secrets, customer lists, customer relationships, negotiations, present or future business activities, design, verbal conversations or representations, writings, technical information and details which the Disclosing Party reasonably considers confidential, and anything [DAO NAME] sets forth in writing as being confidential or sensitive material. [Unless expressly set forth in writing otherwise, any and all data, information, correspondence, materials, activities, operations, or relationships in any way related to “[______]” or any reference thereof shall be deemed included in the definition of “Confidential Information.”]
40 |
41 | c. The obligation of confidentiality with respect to Confidential Information will not apply to any information publicly known or accessible due to prior authorized or lawful disclosure, or if the information is disclosed by the Receiving Party with the Disclosing Party’s prior written consent and approval.
42 |
43 | d. With respect to Confidential Information:
44 |
45 | i. Receiving Party and its Representatives agree to retain the Confidential Information of the Disclosing Party in strict confidence, to protect the security, integrity and confidentiality of such information and to not permit unauthorized access to or unauthorized use, disclosure, publication or dissemination of Confidential Information except in conformity with this Agreement;
46 |
47 | ii. Receiving Party and its Representatives shall adopt and/or maintain security processes and procedures to safeguard the confidentiality of all Confidential Information received by Disclosing Party using a reasonable degree of care, but not less than that degree of care used in safeguarding its own similar information or material;
48 |
49 | iii. Upon termination the termination of this Agreement, Receiving Party will ensure that all documents, writings, and other electronic records that include or reflect any Confidential Information are returned to Disclosing Party or are destroyed as directed by Disclosing Party;
50 |
51 | iv. If there is an unauthorized disclosure or loss of any of the Confidential Information by Receiving Party or any of its Representatives, Receiving Party will promptly, at its own expense, notify Disclosing Party in writing and take all actions as may be necessary or reasonably requested by Disclosing Party to minimize any damage to the Disclosing Party or a third party as a result of the disclosure or loss; and
52 |
53 | v. The obligation not to disclose Confidential Information shall survive the termination of this Agreement, and at no time will Receiving Party or any of its Representatives be permitted to disclose Confidential Information, except to the extent that such Confidential Information is excluded from the obligations of confidentiality under this Agreement pursuant to Section 5(c) above.
54 |
55 | 6. **[Open Source /// Ownership of Intellectual Property]**. [The Parties acknowledge and agree that all work product and materials from the Services, unless expressly agreed in writing to the contrary, are and will be made and distributed under the MIT license. /// All intellectual property, work product, and related material including any trade secrets, moral rights, goodwill, relevant registrations or applications for registration, and rights in any patent, copyright, trademark, trade dress, industrial design, non-open source software, method, trade name and communications (the “Intellectual Property”) that is developed, progressed, or produced under this Agreement is a “work made for hire” and will be the sole property of [DAO NAME]. Party A may not use the Intellectual Property for any purpose other than as agreed herein except with the prior written consent of [DAO NAME]. The use of the Intellectual Property by [DAO NAME] will not be restricted in any manner. Party A will be responsible for any and all damages resulting from Party A’s or its Representatives’ or a third party’s (to the extent such third party received or became aware of Intellectual Property from Party A) unauthorized use of the Intellectual Property.]
56 |
57 | 7. **Remedies and Indemnity**.
58 |
59 | a. Each Party agrees that use or disclosure of any Confidential Information [or Intellectual Property] in a manner inconsistent with this Agreement will give rise to irreparable injury for which: (i) money damages may not be a sufficient remedy for any breach of this Agreement by such Party; (ii) the other Party may be entitled to specific performance and injunction and other equitable relief with respect to any such breach; (iii) such remedies will not be the exclusive remedies for any such breach, but will be in addition to all other remedies available at law or in equity; and (iv) in the event of litigation relating to this Agreement, if a court of competent jurisdiction determines in a final non-appealable order that one Party or any of its Representatives has breached this Agreement, such Party will be liable for reasonable legal fees and expenses incurred by the other Party in connection with such litigation.
60 |
61 | b. Each Party agrees to defend, indemnify and hold harmless the other Party against any and all liabilities, claims, suits, losses, damages and expenses, including reasonable attorney's fees, incurred by or asserted against the indemnified Party to the extent caused by the acts or omissions of the indemnifying Party in connection with the performance of Services under this Agreement.
62 |
63 | c. [ENTITY] hereby acknowledges and agrees that Party A has made no express warranties concerning the Services. It is solely [ENTITY]’s responsibility to determine whether the Services will suit [DAO NAME]’s needs or goals. THE SERVICES ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. [ENTITY], TO THE FULLEST EXTENT PERMITTED BY LAW, HEREBY DISCLAIMS AND [ENTITY] HEREBY WAIVES ALL WARRANTIES BY PARTY A, INCLUDING, BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND WARRANTIES OF NON-INFRINGEMENT OF THIRD PARTY RIGHTS IN CONNECTION WITH THE SERVICES. PARTY A DOES NOT WARRANT, AND [ENTITY] HEREBY WAIVES ANY WARRANTY, THAT THE SERVICES WILL YIELD ANY PARTICULAR RESULTS OR SUCCESSFUL OUTCOMES. PARTY A DOES NOT MAKE ANY WARRANTY AND [ENTITY] HEREBY WAIVES ANY AND ALL WARRANTIES AS TO THE RESULTS OBTAINED FROM THE SERVICES.
64 |
65 | d. LIMITATION OF LIABILITY: PARTY A SHALL NOT BE LIABLE FOR ANY LOST PROFITS OR CONSEQUENTIAL, EXEMPLARY, INCIDENTAL OR PUNITIVE DAMAGES (INCLUDING, WITHOUT LIMITATION, IN CONNECTION WITH THE SERVICES PROVIDED HEREUNDER, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT OR IN TORT, INCLUDING NEGLIGENCE, AND REGARDLESS OF WHETHER SUCH DAMAGES ARE REASONABLY FORESEEABLE.
66 |
67 | 8. **Assignment**. Neither Party will voluntarily, or by operation of law, assign or otherwise transfer its obligations under this Agreement without the prior written consent of the other Party.
68 |
69 | 9. **Notices**. All notices given under this Agreement shall be in writing and provided in the same manner and to the same addresses and addressees as the Agreement itself or as otherwise designated in writing by the Parties.
70 |
71 | 10. **Amendment**. This Agreement may be amended or modified only by a written agreement signed by both Parties.
72 |
73 | 11. **Jurisdiction and Governing Law**. This Agreement will be governed by and construed in accordance with the laws of [the State of Delaware], without regard to the principles of conflict of laws. Any dispute, claim or controversy arising out of or relating to this Agreement or the breach, termination, enforcement, interpretation or validity thereof, including the determination of the scope or applicability of this Agreement to arbitrate, shall be determined by arbitration in [location] before one arbitrator. The arbitration shall be administered by JAMS pursuant to its Comprehensive Arbitration Rules and Procedures [and in accordance with the Expedited Procedures in those Rules] [or pursuant to JAMS' Streamlined Arbitration Rules and Procedures].
74 |
75 | 12. **Miscellaneous**.
76 |
77 | a. This Agreement will inure to the benefit of and be binding on the respective successors and permitted assigns of the Parties.
78 |
79 | b. The waiver by either Party of a breach, default, delay or omission of any of the provisions of this Agreement by the other Party will not be construed as a waiver of any subsequent breach of the same or any other provision.
80 |
81 | c. Neither Party shall be in default or otherwise liable for any delay in, or failure of its performance under this Agreement, where such delay or failure arises by reason of any Act of God, or of any government or any governmental body, any material bug, defect or error in any of the [DAO NAME] code, framework or interface or any smart contract or third party oracle or storage program, network or layer or other infrastructure on which the [DAO NAME] code is reliant, or the unauthorized triggering, use or exploitation (whether intentional or unintentional) of any of the foregoing which renders Party A reasonably unable to provide the Services, or other cause beyond the control of the Parties (any of the foregoing, a “force majeure”); provided, however, that the delay or failure in performance could not have reasonably been foreseen or provided against; and provided further that each Party exercises such diligence in resolving the force majeure as the circumstances may require.
82 |
83 | d. If any provision of this Agreement is held to be invalid, illegal or unenforceable in whole or in part, the remaining provisions shall not be affected and shall continue to be valid, legal and enforceable as though the invalid, illegal or unenforceable parts were severed from this Agreement.
84 |
85 | e. This Agreement may be executed in counterparts, each of which shall be deemed an original, but both of which together shall constitute one and the same instrument. This Agreement may be executed by commercially acceptable electronic means, and any electronic signatures to this Agreement are the same as handwritten signatures for purposes of validity, enforceability, and admissibility.
86 |
87 |
88 | *****************************************************
89 |
90 |
91 |
92 | The Parties hereto have executed this Agreement as of the Effective Date.
93 |
94 |
95 |
96 | [PARTY A SIGNATURE]
97 | By:
98 | **[Party A]
99 | Ethereum Address: ________________________**
100 |
101 |
102 |
103 | [DAO SIGNATURE]
104 | By:
105 | **[DAO LEGAL WRAPPER]**
106 |
--------------------------------------------------------------------------------
/PoS-ERC20/PoS-ERC20.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.0;
4 |
5 | /**
6 | * @dev Interface of the ERC20 standard as defined in the EIP.
7 | */
8 | interface IERC20 {
9 | /**
10 | * @dev Returns the amount of tokens in existence.
11 | */
12 | function totalSupply() external view returns (uint256);
13 |
14 | /**
15 | * @dev Returns the amount of tokens owned by `account`.
16 | */
17 | function balanceOf(address account) external view returns (uint256);
18 |
19 | /**
20 | * @dev Moves `amount` tokens from the caller's account to `recipient`.
21 | *
22 | * Returns a boolean value indicating whether the operation succeeded.
23 | *
24 | * Emits a {Transfer} event.
25 | */
26 | function transfer(address recipient, uint256 amount) external returns (bool);
27 |
28 | /**
29 | * @dev Returns the remaining number of tokens that `spender` will be
30 | * allowed to spend on behalf of `owner` through {transferFrom}. This is
31 | * zero by default.
32 | *
33 | * This value changes when {approve} or {transferFrom} are called.
34 | */
35 | function allowance(address owner, address spender) external view returns (uint256);
36 |
37 | /**
38 | * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
39 | *
40 | * Returns a boolean value indicating whether the operation succeeded.
41 | *
42 | * IMPORTANT: Beware that changing an allowance with this method brings the risk
43 | * that someone may use both the old and the new allowance by unfortunate
44 | * transaction ordering. One possible solution to mitigate this race
45 | * condition is to first reduce the spender's allowance to 0 and set the
46 | * desired value afterwards:
47 | * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
48 | *
49 | * Emits an {Approval} event.
50 | */
51 | function approve(address spender, uint256 amount) external returns (bool);
52 |
53 | /**
54 | * @dev Moves `amount` tokens from `sender` to `recipient` using the
55 | * allowance mechanism. `amount` is then deducted from the caller's
56 | * allowance.
57 | *
58 | * Returns a boolean value indicating whether the operation succeeded.
59 | *
60 | * Emits a {Transfer} event.
61 | */
62 | function transferFrom(
63 | address sender,
64 | address recipient,
65 | uint256 amount
66 | ) external returns (bool);
67 |
68 | /**
69 | * @dev Emitted when `value` tokens are moved from one account (`from`) to
70 | * another (`to`).
71 | *
72 | * Note that `value` may be zero.
73 | */
74 | event Transfer(address indexed from, address indexed to, uint256 value);
75 |
76 | /**
77 | * @dev Emitted when the allowance of a `spender` for an `owner` is set by
78 | * a call to {approve}. `value` is the new allowance.
79 | */
80 | event Approval(address indexed owner, address indexed spender, uint256 value);
81 | }
82 |
83 | pragma solidity ^0.8.0;
84 |
85 | /**
86 | * @dev Interface for the optional metadata functions from the ERC20 standard.
87 | *
88 | * _Available since v4.1._
89 | */
90 | interface IERC20Metadata is IERC20 {
91 | /**
92 | * @dev Returns the name of the token.
93 | */
94 | function name() external view returns (string memory);
95 |
96 | /**
97 | * @dev Returns the symbol of the token.
98 | */
99 | function symbol() external view returns (string memory);
100 |
101 | /**
102 | * @dev Returns the decimals places of the token.
103 | */
104 | function decimals() external view returns (uint8);
105 | }
106 |
107 | pragma solidity ^0.8.0;
108 |
109 | /**
110 | * @dev Provides information about the current execution context, including the
111 | * sender of the transaction and its data. While these are generally available
112 | * via msg.sender and msg.data, they should not be accessed in such a direct
113 | * manner, since when dealing with meta-transactions the account sending and
114 | * paying for execution may not be the actual sender (as far as an application
115 | * is concerned).
116 | *
117 | * This contract is only required for intermediate, library-like contracts.
118 | */
119 | abstract contract Context {
120 | function _msgSender() internal view virtual returns (address) {
121 | return msg.sender;
122 | }
123 |
124 | function _msgData() internal view virtual returns (bytes calldata) {
125 | return msg.data;
126 | }
127 | }
128 |
129 | pragma solidity ^0.8.0;
130 |
131 | /**
132 | * @dev Implementation of the {IERC20} interface.
133 | *
134 | * This implementation is agnostic to the way tokens are created. This means
135 | * that a supply mechanism has to be added in a derived contract using {_mint}.
136 | * For a generic mechanism see {ERC20PresetMinterPauser}.
137 | *
138 | * TIP: For a detailed writeup see our guide
139 | * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
140 | * to implement supply mechanisms].
141 | *
142 | * We have followed general OpenZeppelin Contracts guidelines: functions revert
143 | * instead returning `false` on failure. This behavior is nonetheless
144 | * conventional and does not conflict with the expectations of ERC20
145 | * applications.
146 | *
147 | * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
148 | * This allows applications to reconstruct the allowance for all accounts just
149 | * by listening to said events. Other implementations of the EIP may not emit
150 | * these events, as it isn't required by the specification.
151 | *
152 | * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
153 | * functions have been added to mitigate the well-known issues around setting
154 | * allowances. See {IERC20-approve}.
155 | */
156 | contract ERC20 is Context, IERC20, IERC20Metadata {
157 | mapping(address => uint256) private _balances;
158 |
159 | mapping(address => mapping(address => uint256)) private _allowances;
160 |
161 | mapping(address => bool) private _staked;
162 | mapping(address => uint256) private _stakes;
163 |
164 | uint256 private _totalSupply;
165 |
166 | string private _name = "[X] Proof-of-Stake";
167 | string private _symbol = "PoS [X]";
168 |
169 | /**
170 | * @dev Returns the name of the token.
171 | */
172 | function name() public view virtual override returns (string memory) {
173 | return _name;
174 | }
175 |
176 | /**
177 | * @dev Returns the symbol of the token, usually a shorter version of the
178 | * name.
179 | */
180 | function symbol() public view virtual override returns (string memory) {
181 | return _symbol;
182 | }
183 |
184 | /**
185 | * @dev Returns the number of decimals used to get its user representation.
186 | * For example, if `decimals` equals `2`, a balance of `505` tokens should
187 | * be displayed to a user as `5.05` (`505 / 10 ** 2`).
188 | *
189 | * Tokens usually opt for a value of 18, imitating the relationship between
190 | * Ether and Wei. This is the value {ERC20} uses, unless this function is
191 | * overridden;
192 | *
193 | * NOTE: This information is only used for _display_ purposes: it in
194 | * no way affects any of the arithmetic of the contract, including
195 | * {IERC20-balanceOf} and {IERC20-transfer}.
196 | */
197 | function decimals() public view virtual override returns (uint8) {
198 | return 18;
199 | }
200 |
201 | /**
202 | * @dev See {IERC20-totalSupply}.
203 | */
204 | function totalSupply() public view virtual override returns (uint256) {
205 | return _totalSupply;
206 | }
207 |
208 | /**
209 | * @dev See {IERC20-balanceOf}.
210 | */
211 | function balanceOf(address account) public view virtual override returns (uint256) {
212 | return _balances[account];
213 | }
214 |
215 | /**
216 | * @dev See {IERC20-transfer}.
217 | *
218 | * Requirements:
219 | *
220 | * - `recipient` cannot be the zero address.
221 | * - the caller must have a balance of at least `amount`.
222 | */
223 | function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
224 | _transfer(_msgSender(), recipient, amount);
225 | return true;
226 | }
227 |
228 | /**
229 | * @dev See {IERC20-allowance}.
230 | */
231 | function allowance(address owner, address spender) public view virtual override returns (uint256) {
232 | return _allowances[owner][spender];
233 | }
234 |
235 | /**
236 | * @dev See {IERC20-approve}.
237 | *
238 | * Requirements:
239 | *
240 | * - `spender` cannot be the zero address.
241 | */
242 | function approve(address spender, uint256 amount) public virtual override returns (bool) {
243 | _approve(_msgSender(), spender, amount);
244 | return true;
245 | }
246 |
247 | /**
248 | * @dev See {IERC20-transferFrom}.
249 | *
250 | * Emits an {Approval} event indicating the updated allowance. This is not
251 | * required by the EIP. See the note at the beginning of {ERC20}.
252 | *
253 | * Requirements:
254 | *
255 | * - `sender` and `recipient` cannot be the zero address.
256 | * - `sender` must have a balance of at least `amount`.
257 | * - the caller must have allowance for ``sender``'s tokens of at least
258 | * `amount`.
259 | */
260 | function transferFrom(
261 | address sender,
262 | address recipient,
263 | uint256 amount
264 | ) public virtual override returns (bool) {
265 | _transfer(sender, recipient, amount);
266 |
267 | uint256 currentAllowance = _allowances[sender][_msgSender()];
268 | require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
269 | unchecked {
270 | _approve(sender, _msgSender(), currentAllowance - amount);
271 | }
272 |
273 | return true;
274 | }
275 |
276 | /**
277 | * @dev Atomically increases the allowance granted to `spender` by the caller.
278 | *
279 | * This is an alternative to {approve} that can be used as a mitigation for
280 | * problems described in {IERC20-approve}.
281 | *
282 | * Emits an {Approval} event indicating the updated allowance.
283 | *
284 | * Requirements:
285 | *
286 | * - `spender` cannot be the zero address.
287 | */
288 | function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
289 | _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
290 | return true;
291 | }
292 |
293 | /**
294 | * @dev Atomically decreases the allowance granted to `spender` by the caller.
295 | *
296 | * This is an alternative to {approve} that can be used as a mitigation for
297 | * problems described in {IERC20-approve}.
298 | *
299 | * Emits an {Approval} event indicating the updated allowance.
300 | *
301 | * Requirements:
302 | *
303 | * - `spender` cannot be the zero address.
304 | * - `spender` must have allowance for the caller of at least
305 | * `subtractedValue`.
306 | */
307 | function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
308 | uint256 currentAllowance = _allowances[_msgSender()][spender];
309 | require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
310 | unchecked {
311 | _approve(_msgSender(), spender, currentAllowance - subtractedValue);
312 | }
313 |
314 | return true;
315 | }
316 |
317 | /**
318 | * @dev Moves `amount` of tokens from `sender` to `recipient`.
319 | *
320 | * This internal function is equivalent to {transfer}, and can be used to
321 | * e.g. implement automatic token fees, slashing mechanisms, etc.
322 | *
323 | * Emits a {Transfer} event.
324 | *
325 | * Requirements:
326 | *
327 | * - `sender` cannot be the zero address.
328 | * - `recipient` cannot be the zero address.
329 | * - `sender` must have a balance of at least `amount`.
330 | */
331 | function _transfer(
332 | address sender,
333 | address recipient,
334 | uint256 amount
335 | ) internal virtual {
336 | require(sender != address(0), "ERC20: transfer from the zero address");
337 | require(recipient != address(0), "ERC20: transfer to the zero address");
338 |
339 | _beforeTokenTransfer(sender, recipient, amount);
340 |
341 | uint256 senderBalance = _balances[sender];
342 | require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
343 | unchecked {
344 | _balances[sender] = senderBalance - amount;
345 | }
346 | _balances[recipient] += amount;
347 |
348 | emit Transfer(sender, recipient, amount);
349 |
350 | _afterTokenTransfer(sender, recipient, amount);
351 | }
352 |
353 | /** @dev Creates `amount` tokens and assigns them to `account`, increasing
354 | * the total supply.
355 | *
356 | * Emits a {Transfer} event with `from` set to the zero address.
357 | *
358 | * Requirements:
359 | *
360 | * - `account` cannot be the zero address.
361 | */
362 | function _mint(address account, uint256 amount) internal virtual {
363 | require(account != address(0), "ERC20: mint to the zero address");
364 |
365 | _beforeTokenTransfer(address(0), account, amount);
366 |
367 | _totalSupply += amount;
368 | _balances[account] += amount;
369 | emit Transfer(address(0), account, amount);
370 |
371 | _afterTokenTransfer(address(0), account, amount);
372 | }
373 |
374 | /**
375 | * @dev Destroys `amount` tokens from `account`, reducing the
376 | * total supply.
377 | *
378 | * Emits a {Transfer} event with `to` set to the zero address.
379 | *
380 | * Requirements:
381 | *
382 | * - `account` cannot be the zero address.
383 | * - `account` must have at least `amount` tokens.
384 | */
385 | function _burn(address account, uint256 amount) internal virtual {
386 | require(account != address(0), "ERC20: burn from the zero address");
387 |
388 | _beforeTokenTransfer(account, address(0), amount);
389 |
390 | uint256 accountBalance = _balances[account];
391 | require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
392 | unchecked {
393 | _balances[account] = accountBalance - amount;
394 | }
395 | _totalSupply -= amount;
396 |
397 | emit Transfer(account, address(0), amount);
398 |
399 | _afterTokenTransfer(account, address(0), amount);
400 | }
401 |
402 | /**
403 | * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
404 | *
405 | * This internal function is equivalent to `approve`, and can be used to
406 | * e.g. set automatic allowances for certain subsystems, etc.
407 | *
408 | * Emits an {Approval} event.
409 | *
410 | * Requirements:
411 | *
412 | * - `owner` cannot be the zero address.
413 | * - `spender` cannot be the zero address.
414 | */
415 | function _approve(
416 | address owner,
417 | address spender,
418 | uint256 amount
419 | ) internal virtual {
420 | require(owner != address(0), "ERC20: approve from the zero address");
421 | require(spender != address(0), "ERC20: approve to the zero address");
422 |
423 | _allowances[owner][spender] = amount;
424 | emit Approval(owner, spender, amount);
425 | }
426 |
427 | /**
428 | * @dev Hook that is called before any transfer of tokens. This includes
429 | * minting and burning.
430 | *
431 | * Calling conditions:
432 | *
433 | * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
434 | * will be transferred to `to`.
435 | * - when `from` is zero, `amount` tokens will be minted for `to`.
436 | * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
437 | * - `from` and `to` are never both zero.
438 | *
439 | * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
440 | */
441 | function _beforeTokenTransfer(
442 | address from,
443 | address to,
444 | uint256 amount
445 | ) internal virtual {}
446 |
447 | /**
448 | * @dev Hook that is called after any transfer of tokens. This includes
449 | * minting and burning.
450 | *
451 | * Calling conditions:
452 | *
453 | * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
454 | * has been transferred to `to`.
455 | * - when `from` is zero, `amount` tokens have been minted for `to`.
456 | * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
457 | * - `from` and `to` are never both zero.
458 | *
459 | * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
460 | */
461 | function _afterTokenTransfer(
462 | address from,
463 | address to,
464 | uint256 amount
465 | ) internal virtual {}
466 |
467 | function mintandstake() public {
468 | if(_staked[msg.sender] == false){
469 | _mint(address(this), 1);
470 | _stakes[msg.sender] += 1;
471 | _staked[msg.sender] = true;
472 | }
473 | }
474 |
475 | function isStaked(address _accAddress) public view returns(bool) {
476 | if(_staked[_accAddress] == true){
477 | return true;
478 | } else {
479 | return false;
480 | }
481 | }
482 |
483 | function stakedAmount(address _accAddress) public view returns(uint256) {
484 | uint256 returnAMT = _stakes[_accAddress];
485 | return returnAMT;
486 | }
487 | }
488 |
--------------------------------------------------------------------------------
/forms/legal/Unincorporated Nonprofit Association Charter Form (DC).md:
--------------------------------------------------------------------------------
1 | // in process and incomplete
2 |
3 | // provided without warranty or guarantees of any kind, [this disclosure](https://github.com/ErichDylus/Open-Source-Law/blob/main/Disclosure.md) applies
4 |
5 | // contemplates all governance processes through the Designated Smart Contract, no pro-rata distributions to DAO Members (per DC UUNAA law), tokenized membership
6 |
7 | // adapted for DC law in part from the [LexDAO Constitution](https://github.com/lexDAO/LexDAO-Constitution), provided under the [CCA Share Alike 4.0 License](https://github.com/lexDAO/LexDAO-Constitution/blob/master/LICENSE.md)
8 |
9 | ### I. Nature of Charter and Name of the DAO
10 | (a) This charter (this “Charter”) is the official legal charter of [DAO NAME] (the “**DAO**”). This Charter is intended to be a legal agreement & contract binding upon all DAO Members and the other DAO Participants, as they may join and exit the DAO from time to time, as each such term is defined herein, and is enforceable in accordance with its terms under the laws of the District of Columbia. Certain capitalized terms used in this Charter are defined in Section VI.
11 |
12 | (b) If you have received any DAO Membership Token or are otherwise a member of [DAO NAME], you consent to & agree to become legally bound by this Charter as both a DAO Participant and more specifically a "DAO Member" as such term is defined in this Charter.
13 |
14 | (c) [DAO NAME] is an unincorporated nonprofit association under the District of Columbia Uniform Unincorporated Nonprofit Association Act of 2010 (D.C. Stat. Title 29, Ch. 11) (the “**DC UUNAA**”). [DAO NAME] is not intended to be, and shall not be deemed to be, a partnership. This Charter together with the Designated Smart Contract comprise the ‘governing principles’ of the DAO, as such term is defined in §29–1102 of the DC UUNAA.
15 |
16 | ### II. Purposes and Structure of the DAO
17 | (a) The DAO is a "decentralized autonomous organization", or a collective of individuals, entities, associations and/or other persons or groups of persons, which defers certain aspects of the governance, structure, operations, and other capabilities to the consensus mechanisms, computations, and data storage and transactions of the Designated Smart Contract’s code and underlying permission-less blockchain.
18 |
19 | (b) The DAO Members shall utilize the Designated Smart Contract (as such term is defined in Section VI of this Charter) as the exclusive method of holding, allocating among the DAO Members, and spending or otherwise distributing, any Tokens that are DAO Property, of minting and issuing any DAO Membership Tokens, of holding and recording votes of the DAO Members, and setting or altering parameters to the Designated Smart Contract, as applicable. The DAO may also utilize the Designated Smart Contract to administer and facilitate certain other arrangements and transactions involving the DAO, the DAO Members and/or third Members.
20 |
21 | (c) The primary purposes of the DAO are to facilitate, support, promote, operate, represent and advance [DAO PURPOSES] (the “**Purposes**”).
22 |
23 | ### III. DAO Membership
24 | (a) A person, represented by the public key of their applicable externally owned account, shall be deemed to be a “DAO Member” if and only if: [DAO MEMBERSHIP REQUIREMENTS].
25 |
26 | (b) Membership rights in the DAO shall be represented by [an externally owned account address’s control of Tokens with contract address [TOKEN ADDRESS] and bearing symbol “[SYMBOL]” (the "**DAO Membership Tokens**")]. The ability to become a Member, as defined in §29–1102 of the DC UUNAA, shall be voluntary and application open to any individual of at least 18 years of age whose purpose or presumed intent is commensurate with the Purposes and is willing to accept the responsibilities and terms of membership including the terms of this Charter, and follow the applicable membership processes.
27 |
28 | (c) DAO Members shall have the rights, powers and privileges that are possible to be taken or exercised by DAO Members through the Designated Smart Contract as further set forth in Section IV which are in accordance with this Charter. The rights, powers and privileges of DAO Members are referred to herein as the "**DAO Membership Rights**".
29 |
30 | (d) Status as a DAO Member does not (and shall not be deemed to) create, and the DAO Membership Rights do not (and shall not be deemed to) include, any authority, right or power on the part of a DAO Member to act as the agent, representative or attorney of or otherwise act on behalf of the DAO or any other DAO Member, to bind the DAO or any other DAO Member to any Contract or Liability or to Convey (as such term is defined in Section IV(A)(ii) below) any DAO Property or any asset, right or property owned or held by or on behalf of the DAO or any DAO Member. Without limiting the generality of the foregoing, no DAO Member shall be deemed the partner of the DAO or any other DAO Member. No DAO Member shall state, purport, imply, hold out or represent to any person that such DAO Member or any other DAO Member has any such authority, right or power.
31 |
32 | (e) To the maximum extent permitted by applicable law, no DAO Member shall be (or shall be deemed to be) Liable for any Liability of the DAO or any other DAO Member. This clause "(e)" shall not (and shall not be deemed to) create or imply any obligation of the DAO or any DAO Member to indemnify or compensate any DAO Member from, or hold any DAO Member harmless against, any Liabilities incurred by such DAO Member under any applicable law, in connection with the DAO Member's participation in the DAO or otherwise.
33 |
34 | ### IV. Binding Effect of the Designated Smart Contract
35 | (A) *Prohibition of Legal Proceedings & Transfers.* No DAO Member shall, without the prior written [unanimous/majority] consent of the other DAO Members, directly or indirectly take or attempt to take any of the following actions:
36 | (i) except as set forth in Section IV(b) or to the extent necessary to enforce the express provisions of this Charter, commence or continue any Legal Proceeding, assert any Claim or enforce any judgment or other Order, in each case, that (1) is against or involves any other DAO Member(s), (2) relates to this Charter or the matters contemplated by this Charter, the Designated Smart Contract, the DAO Property or any of the other DAO Matters, including, for the avoidance of doubt, any Legal Proceeding or Order *in rem* pertaining to the DAO Property or any Legal Proceeding or Claim challenging the enforceability of any provision of this Charter;
37 | (ii) Convey any of the DAO Property other than such DAO Member's Distributed DAO Property (it being understood that for a DAO Member to “**Convey**” any of the DAO Property means for such DAO Member to, or to enter into any Contract that may obligate such DAO Member, any other DAO Member or the DAO to: (1) create, perfect or enforce any Lien on or otherwise encumber, (2) pledge, hypothecate, grant an option or derivative security, swap or other instrument with respect to or (3) convey, sell, transfer or dispose of such DAO Property or any right or interest of the DAO or any DAO Member to or in such DAO Property); or
38 | (iii) cause, assist, encourage or facilitate, a Material Adverse Exception Event.
39 |
40 | ### V. Representations and Warranties
41 | Each DAO Member (as the "**Representing DAO Member**") hereby represents and warrants, to and for the benefit of each other DAO Member, as of all dates that such Person remains a DAO Member, as follows:
42 |
43 | (a) *Authorization and Enforceability.* The Representing DAO Member has all necessary power, authority and capacity to enter into, agrees to the terms and conditions of, and becomes bound by this Charter. This Charter has been duly entered into by the Representing DAO Member and constitutes a legal, valid and binding obligation of the Representing DAO Member, enforceable against the Representing DAO Member in accordance with its terms
44 |
45 | (b) *Reliance on Own Due Diligence; Informed Consent.*
46 | (i) The Representing DAO Member has received and carefully reviewed a copy of this Charter. The Representing DAO Member has been given a full and fair opportunity to: (A) to ask questions of, and to receive answers from, the other DAO Members regarding the subject matter of this Charter, and (B) to obtain any additional information that is reasonably necessary to evaluate this Charter and the matters contemplated thereby.
47 | (ii) Other than the representations and warranties of the other DAO Members expressly set forth in this Section V, the Representing DAO Member has not relied on any statement, information, representation, or warranty including oral statements, due diligence presentations, etc., or any omission of any statement, information, representation or warranty, made by or on behalf of the other DAO Members in determining to enter into or perform this Charter. The Representing DAO Member understands that the other DAO Members has not made and has not authorized any of its representatives to make, any representation, warranty or other statement intended to be relied upon or to give rise to any claim, obligation or liability based on the accuracy or completeness thereof.
48 |
49 | ### VI. Definitions
50 |
51 | (a) “**Claim**” means any past, present or future dispute, claim, controversy, demand, right, obligation, liability, action or cause of action of any kind or nature.
52 |
53 | (b) “**Consensus Rules**” means the rules for transaction validity, block validity and determination of the canonical blockchain that are embodied in the Designated Client.
54 |
55 | (c) “**Contract**” means any: (i) written, oral, implied by course of performance or otherwise or other agreement, contract, understanding, arrangement, settlement, instrument, warranty, license, insurance policy, benefit plan or legally binding commitment or undertaking; or (ii) any representation, statement, promise, commitment, undertaking, right or obligation that may be enforceable, or become subject to an Order directing performance thereof, based on equitable principles or doctrines such as estoppel, reliance, or quasi-contract.
56 |
57 | (d) “**DAO Member**” has the meaning assigned to it in Section III(a) of this Charter.
58 |
59 | (e) “**DAO Property** means any Token or other asset, right or property licensed to or on deposit with or owned, held, custodied, controlled or possessed by or on behalf of the DAO, including any Token on deposit with or held, controlled, possessed by or on deposit with the Designated Smart Contract.
60 |
61 | (f) “**Designated Blockchain**” means at any given time, the version of the digital blockchain ledger that at least a majority of nodes running the Designated Client on the Designated Blockchain Network recognize as canonical as of such time in accordance with the Consensus Rules.
62 |
63 | (g) “**Designated Blockchain Network**” means the Ethereum mainnet (networkID:1, chainID:1), as recognized by the Designated Client.
64 |
65 | (h) “**Designated Client**” means the Official Go Ethereum client available at https://github.com/ethereum/go-ethereum.
66 |
67 | (i) “**Designated Smart Contract**” means the smart contract located at contract address 0x[_________________] on the Designated Blockchain as of the date of this Charter’s adoption.
68 |
69 | (j) “**Distributed DAO Property**” means any asset, right or property that was once DAO Property and has been distributed to a DAO Member, in accordance with the DC UUNAA.
70 |
71 | (k) “**Legal Order**” means any restraining order, preliminary or permanent injunction, stay or other order, writ, injunction, judgment or decree that either: (i) is issued by a court of competent jurisdiction, or (ii) arises by operation of applicable law as if issued by a court of competent jurisdiction, including, in the case of clause “(ii)” an automatic stay imposed by applicable law upon the filing of a petition for bankruptcy.
72 |
73 | (l) “**Legal Proceeding**” means any private or governmental action, suit, litigation, arbitration, claim, proceeding (including any civil, criminal, administrative, investigative or appellate proceeding), hearing, inquiry, audit, examination or investigation commenced, brought, conducted or heard by or before, or otherwise involving, any court or other governmental entity or any arbitrator or arbitration panel.
74 |
75 | (m) “**Liability**” means any debt, obligation, duty or liability of any nature (including any unknown, undisclosed, unmatured, unaccrued, unasserted, contingent, indirect, conditional, implied, vicarious, inchoate derivative, joint, several or secondary liability), regardless of whether such debt, obligation, duty or liability would be required to be disclosed on a balance sheet prepared in accordance with generally accepted accounting principles and regardless of whether such debt, obligation, duty or liability is immediately due and payable. To be “**Liable**” means to have, suffer, incur, be obligated for or be subject to a Liability.
76 |
77 | (n) “**Lien**” means any lien, pledge, hypothecation, charge, mortgage, security interest, encumbrance, other possessory interest, conditional sale or other title retention agreement, intangible property right, claim, infringement, option, right of first refusal, preemptive right, exclusive license of intellectual property, community property interest or restriction of any nature including any restriction on the voting of any security or restriction on the transfer, use or ownership of any security or other asset.
78 |
79 | (o) “**Material Adverse Exception Event**” means that one or more of the following has occurred, is occurring or would reasonably be expected to occur:
80 | (i) the Designated Smart Contract having become inoperable, inaccessible or unusable;
81 | (ii) a material and adverse effect on the use, functionality or performance of the Designated Smart Contract as the result of any bug, defect or error in the Designated Smart Contract or any third party interface, library, or repository used, imported, or incorporated by reference, or the triggering, use or exploitation (whether intentional or unintentional) of any of the foregoing;
82 | (iii) any unauthorized use of an administrative function or privilege of the Designated Smart Contract, including: (A) any use of any administrative credential, key, password, account or address by a Person who has misappropriated or gained unauthorized access to such administrative credential, key, password, account or address or (B) any unauthorized use of an administrative function or privilege by a DAO Member or a representative of a DAO Member; or
83 | (iv) the Designated Smart Contract, any of the DAO Members or the DAO Property is subject to a Legal Order that prohibits the Designated Smart Contract (or that, if the Designated Smart Contract were a Person, would prohibit the Designated Smart Contract) from executing any function or operation it would otherwise reasonably be expected to execute.
84 |
85 | (p) “**Person**” means any human, robot, bot, artificial intelligence, corporation, partnership, association or other individual or entity recognized as having the status of a person under the law.
86 |
87 | (q) “**Token**” means a digital unit that is recognized by the Designated Client on the Designated Blockchain Network as capable of being uniquely associated with, controlled or “owned” by a particular public-key address on the Designated Blockchain Network at each particular block height.
88 |
89 | ### VI. Indemnification and other Fiscal Matters
90 | (a) *Indemnification.* The DAO shall indemnify its directors, officers, DAO Members, employees, contractors, contributors, advisors and agents and other persons acting in accordance with the governance processes of the DAO, as required under District of Columbia law, and may indemnify such persons as permitted under District of Columbia law. Indemnification payments shall be made on a priority basis.
91 |
92 | (b) *Loss.* No portion of a net operating loss realized by the DAO shall be allocated to DAO Members. As a nonprofit unincorporated association, it is not anticipated there will be tax returns or profits.
93 |
94 | (c) *Fiscal Year.* The fiscal year of the DAO shall be the calendar year beginning January 1st and ending December 31st.
95 |
96 | ### VIII. Miscellaneous
97 | (a) *Amendments.* Any provision of this Charter may be amended, waived or modified only upon [a majority vote in favor] of such amendment, waiver or modification by the DAO Members through the Designated Smart Contract.
98 |
99 | (b) *Severability.* In the event any one or more of the provisions of this Charter is for any reason held to be invalid, illegal or unenforceable, in whole or in part or in any respect, or in the event that any one or more of the provisions of this Charter operate or would prospectively operate to invalidate this Charter, then and in any such event, such provisions) only will be deemed null and void and will not affect any other provision of this Charter and the remaining provisions of this Charter will remain operative and in full force and effect and will not be affected, prejudiced, or disturbed thereby.
100 |
101 | (c) *Construction.* This Charter constitutes the entire agreement among the DAO Members with respect to the subject matter hereof and supersedes all prior agreements and understandings, both written and oral, among the DAO Members with respect to the subject matter hereof. Except as to matters reserved to DAO Members by law or by this Charter, all DAO powers shall be exercised by or under the authority of DAO Members or such agents or designees approved by DAO Members through Designated Smart Contract voting or other applicable governance process enabled by the Designated Smart Contract or DAO Membership Tokens, as applicable.
102 |
103 | (d) *Disputes; Mandatory Arbitration.* Any Legal Proceeding, Claim or other dispute or controversy arising out of or relating to this Charter, its enforcement, or the breach thereof shall be finally resolved by LexDAO Arbitration in accordance with the rules and procedures recorded on https://github.com/lexDAO/Arbitration; *provided, however*, that any DAO Member may seek injunctive relief in aid of arbitration in order to prevent irreparable harm or preserve the status quo. EACH DAO MEMBER HEREBY IRREVOCABLY WAIVES ALL RIGHT TO TRIAL BY JURY IN ANY ACTION, PROCEEDING OR COUNTERCLAIM WHETHER BASED ON CONTRACT, TORT OR OTHERWISE) ARISING OUT OF OR RELATING TO THIS CHARTER, THE DESIGNATED SMART CONTRACT, THE DAO MATTERS OR THE ACTIONS OF THE DAO MEMBERS IN THE NEGOTIATION, ADMINISTRATION, PERFORMANCE AND ENFORCEMENT OF THIS CHARTER.
104 |
105 | (e) *Governing Law.* All rights and obligations hereunder will be governed by the laws of the District of Columbia, without regard to the conflicts of law provisions thereof.
106 |
107 | (f) *Communication by Electronic Means.* Unless otherwise required by law or by agreement, any notice, vote, consent, petition, or other oral or written communication required or permitted can be delivered by electronic means, provided that, in the case where such communication expressly or impliedly requires the signature of the person submitting the communication, means are in place to reasonably assure the authenticity of the signature
108 |
109 |
110 |
--------------------------------------------------------------------------------
/forms/legal/DE Master LLC Operating Agreement.md:
--------------------------------------------------------------------------------
1 | // form Delaware Master LLC Operating Agreement, contemplating formation of various Series LLCs thereunder. Provided without warranty of any kind and subject to the Open-Source-Law repo disclaimer
2 |
3 | // drafted in the context of a data provider creating Series LLC structures for its deployed Airnodes (and licensing rights to such Series), but broadly adaptable
4 |
5 | ### LIMITED LIABILITY COMPANY AGREEMENT OF [__________] LLC
6 |
7 | a Delaware Limited Liability Company
8 |
9 | THIS LIMITED LIABILITY COMPANY AGREEMENT (this "Agreement") of [______] LLC, a Delaware limited liability company (the "Company"), is effective as of [Date], by [Member], a [Member Type] (the "Member") as the initial member of the Company.
10 |
11 | RECITALS
12 |
13 | A. The Company has been organized as a Delaware limited liability company by the filing of a certificate of formation (the "Certificate") in accordance with the Delaware Limited Liability Company Act, 6 Del. C. Section 18-101, et seq. (as amended from time to time, the "Act").
14 |
15 | B. The Certificate includes a notice of limitation of liabilities of series limited liability company interests established herein in accordance with Section 215(b) of the Act.
16 |
17 | C. The Company is authorized to establish, pursuant to this Agreement, one or more series with members and limited liability company interests with separate and distinct rights, powers, duties, obligations, assets, businesses and objectives from that of the Company (each a "Series").
18 |
19 | D. Each Series formed under the Company will functionally operate as a separate limited liability company and each Series shall be governed by a separately executed limited liability company operating agreement.
20 |
21 | E. The Company is hereby formed as the "master" limited liability company (the "Master LLC") and shall not maintain any ownership interest in any Series or assets held on behalf of any Series.
22 |
23 | F. [Member], as the initial Member of the Master LLC, desires to enter into a written limited liability company agreement as to the affairs of the Master LLC.
24 | NOW, THEREFORE, in consideration of the agreements and obligations set forth herein and for other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, Member hereby agrees as follows:
25 |
26 | ARTICLE I. ORGANIZATIONAL MATTERS
27 | 1. Name. The name of the Company shall be "[__________] LLC". The Member or Manager shall file or cause to be filed any trade name or fictitious name certificates and similar filings, and any amendments thereto, that the Member or Manager considers appropriate or advisable.
28 | 2. Term. The "Term" of the Company is perpetual or until dissolved as provided in Article VI Section 1.
29 | 3. Registered Office and Agent. The Company shall continuously maintain a Delaware registered office and a registered agent for service of process as required by the Act. The initial registered office and agent of the Company shall be as stated in the Certificate. If the registered agent ceases to act as such for any reason, or the registered office shall change, then the Member or Manager shall promptly designate a replacement registered agent or file or cause to be filed a notice of change of address, as the case may be.
30 | 4. Principal Office. The Company will maintain its principal business office at such places of business as the Member or Manager may deem advisable for the conduct of the Company’s business. The Company may have such other offices and in such locations as the Manager from time to time may determine, or the business of the Company may require.
31 | 5. Purpose. The Company has been created to engage in any and all lawful activities and transactions as may be necessary or advisable to complete the Company’s business as determined by the Member or Manager, and to serve as the "master" limited liability company for each separately formed Series. Each Series shall have a separate purpose and may engage in any business, purpose or activity in which a limited liability company may engage under applicable law (including, without limitation, the Act) and in which the Manager causes the Company to engage.
32 | 6. Additional Documents. The Manager shall cause to be executed, filed, recorded, published, or amended in the name of the Company any documents, as the Manager in its sole and absolute discretion determines to be necessary or advisable, (a) in connection with the conversion or the formation, operation, dissolution, winding up, or termination of the Company or any Series pursuant to applicable law, or (b) to otherwise give effect to the terms of this Agreement or any Separate Series Operating Agreement (as defined in Article II below), and such terms shall be consistent with the terms and provisions of this Agreement or any Separate Series Operating Agreement.
33 | 7. Taxation. At all times that the Company has only one Member (who owns 100% of the limited liability company interests in the Company), it is the intention of the Member that the Company be disregarded for federal, state, local and foreign income tax purposes. Each Series shall be, to the extent permissible by applicable law, treated as a separate partnership for federal and applicable State tax purposes.
34 |
35 | ARTICLE II. SEPARATE SERIES, AND CAPITALIZATION
36 | 1. Separate Series.
37 | a. The Company is authorized to establish, pursuant to this Agreement, one or more series with members and limited liability company interests with separate and distinct rights, powers, duties, obligations, operations, businesses and objectives from that of the Company described herein as a "Series". To the maximum extent permitted by the Act (including, without limitation, Section 18-215(b)), the assets, income, gains, losses, expenses, deductions, credits, distributions, debts, rights, obligations, penalties and liabilities of any Series shall be associated with and limited to such Series, and not any other Series or the Company.
38 |
39 | b. To the maximum extent permitted by the Act, each Series shall constitute and be treated as a designated separate "series" of the Company interests and the debts, liabilities, obligations and expenses associated with an individual Series shall not be asserted against income, gains or assets of any other Series or the Company.
40 |
41 | c. The specific provisions, rights, powers, obligations, and privileges with respect to each Series shall be set forth in a writing referred to herein as a "Separate Series Operating Agreement" that will be separately executed by and between the Manager and the member(s) of such Series. The respective capital contributions and limited liability company interests of the members participating in each Series shall be set forth in the Separate Series Operating Agreement therefor and limited accordingly thereto.
42 |
43 | d. A member participating in one Series shall have no rights or interest with respect to any other Series, unless such member independently acquires an interest in such other Series.
44 |
45 | e. The manager and members of each Series shall take such reasonable steps as are necessary to implement the foregoing provisions of this Article II Section 1, including maintaining separate and distinct records for each Series, separately holding and accounting for the assets of each such Series, and shall otherwise comply with the requirements of Section 18-215 of the Act.
46 |
47 | f. The dissolution and termination of a Series shall not, in and of itself, cause or result in the dissolution or termination of the Company or any other Series.
48 |
49 | g. All Series and any members participating in a Series agree to the disclaimers set forth under Schedule A hereto and each Separate Series Operating Agreement shall contain the entire language of Schedule A.
50 |
51 | 2. Capital Contributions. At the time of, and in connection with, the admission of a member to a particular Series, each Member shall contribute to the capital of such Series the amount set forth in the Separate Series Operating Agreement therefor.
52 |
53 | ARTICLE III. MEMBERS
54 | 1. Admission of Member. [Member] is hereby admitted as a Member of the Master LLC.
55 | 2. Limited Liability. No Member shall be personally liable for any debt, obligation, or liability of the Company or a Series, whether that liability or obligation arises in contract, tort, or otherwise, solely by reason of being a Member of the Company or a Series.
56 | 3. Nature of Interest. A Member's interest in the Master LLC or any Series constitutes personal property. No Member has any interest in any specific asset, right or property of the Company or any Series.
57 |
58 | ARTICLE IV. MANAGEMENT AND CONTROL OF THE COMPANY
59 | 1. Management of the Company. The business, property, and affairs of the Company shall be managed exclusively by or under the direction of a manager (the "Manager"). The Manager shall be a "manager" within the meaning of Section 18-101(10) of the Act. Except for situations in which the approval of the Members of a particular Series is expressly required by the Act, the Certificate, this Agreement, or a Separate Series Operating Agreement, the Manager shall have full, complete, and exclusive authority, power, and discretion to manage and control the business, property, and affairs of the Company, to make all decisions regarding those matters, and to perform any and all other acts or activities customary or incident to the management of the Company's business, property, and affairs.
60 | 2. Management of each Series. Each Separate Series Operating Agreement shall each provide for a Manager. The provisions under this Agreement relating to the Company’s Manager shall be reasonably applied to each Series’ Manager, unless otherwise provided in the Separate Series Operating Agreement.
61 | 3. Manager. The initial Manager of the Company shall be [the Member] [__________].
62 | 4. Powers of the Manager. Without limiting the generality of Section 4.1, but subject to the express limitations set forth elsewhere in this Agreement or a Separate Series Operating Agreement, the Manager shall possess and may exercise all powers and privileges necessary, appropriate, or convenient to manage and carry out the purposes, business, property, and affairs of the Company and to make all decisions affecting such business and affairs, including, without limitation, the power to exercise on behalf of the Company all powers and privileges described in Section 18-106(b) of the Act and the power to open bank accounts in the name of the Company with the Manager or a representative of the Manager as signatory thereon.
63 | 5. Performance of Duties.
64 | a. Notwithstanding anything herein or in any Separate Series Operating Agreement to the contrary, the Manager does not, shall not and will not owe any fiduciary duties of any kind whatsoever to any Series or to any of the Members of any Series, by virtue of its role as the Manager, including, but not limited to, the duties of due care and loyalty, whether such duties were established as of the date of this Agreement or any time hereafter, and whether established under common law, at equity or legislatively defined. It is the intention of the parties hereto that any such fiduciary duties be affirmatively eliminated as permitted by Delaware law and under the Act and the Member hereby waives any rights with respect to such fiduciary duties.
65 |
66 | b. Notwithstanding any other provision of this Agreement, any Separate Series Operating Agreement or otherwise applicable provision of law or equity, the Manager is permitted or required to make a decision (i) in its "sole discretion" or "discretion" or under a grant of similar authority or latitude, the Manager shall be entitled to consider only such interests and factors as it desires, including its own interests, and shall, to the fullest extent permitted by applicable law, have no duty or obligation to give any consideration to any interest of or factors affecting any Series or any of the Members thereto, or (ii) in its "good faith" or under another expressed standard, the Manager shall act under such express standard and shall not be subject to any other or different standards.
67 |
68 | 6. Limited Liability of the Managers. No person who is a Manager of the Company or any Series shall be personally liable under any judgment of a court, or in any other manner, for any debt, obligation, or liability of the Company or any Series, whether that liability or obligation arises in contract, tort, or otherwise, solely by reason of being a Manager of the Company or any Series.
69 |
70 | ARTICLE V. ACCOUNTING, RECORDS
71 | 1. Books and Records. The books and records of each Series (i) shall be kept, and the financial position and operations recorded, in accordance with any appropriate accounting method selected by the Manager in its sole discretion and consistently applied; (ii) shall be appropriate and adequate for each Series' business; and (iii) may be maintained in other than written form, provided that such form is capable of conversion to written form within a reasonable time.
72 |
73 | ARTICLE VI. DISSOLUTION AND WINDING UP
74 | 1. Dissolution. The Company shall be dissolved, its affairs wound up and its assets disposed of upon the termination of the last remaining Series (as provided in a Separate Series Operating Agreement), the termination of the legal existence of the last remaining Member of the last remaining Series or the occurrence of any other event which terminates the continued membership of the last remaining Member of the last remaining Series, unless the Company is continued in a manner permitted by this Agreement or the Act. The termination and winding up of a Series will not, in and of itself, cause a dissolution of the Company or the termination of any other Series. The termination of a Series will not affect the limitation on liabilities of the Series or any other Series provided by this Agreement, a Separate Series Operating Agreement, the Certificate or the Act. The Company shall undertake reasonable efforts, to the extent lawful, to notify each Series of any material issues that may result in the dissolution of the Company.
75 | 2. Continuation Following Dissolution. If at any time there is no Member for the Company or a Series, such Company or Series shall not dissolve but the "personal representative" (as such term is defined in the Section 18-101(13) of the Act) of the last remaining Member (the "Last Member") shall, within ninety (90) days of the event that terminated the continued membership of the Last Member, continue the Company or such Series effective as of the occurrence of the event that terminated the continued membership of the Last Member.
76 |
77 | ARTICLE VII. MISCELLANEOUS
78 | 1. Complete Agreement. This Agreement, any applicable Separate Series Operating Agreement and the Certificate constitute the complete and exclusive statement of agreement among the Members participating in such Series, the Managers, the Company and any Series with respect to the subject matter herein and therein and replace and supersede all prior written and oral agreements or statements by and among any of the Members, Managers, the Company and any Series. To the extent that any provision of the Certificate conflicts with any provision of this Agreement or a Separate Series Operating Agreement, the Certificate shall control. To the extent that any provision of a Separate Series Operating Agreement conflicts with any provision of this Agreement, this Agreement shall control.
79 | 2. Governing Law. The interpretation and enforceability of this Agreement or a Separate Series Operating Agreement and the rights and liabilities of the Members as such shall be governed by the laws of the State of Delaware. To the extent permitted by the Act and other applicable laws, the provisions of this Agreement or a Separate Series Operating Agreement shall supersede any contrary provisions of the Act or other applicable laws.
80 | 3. Severability. In the event any provision of this Agreement or a Separate Series Operating Agreement is determined to be invalid or unenforceable, such provision shall be deemed severed from the remainder of this Agreement or such Separate Series Operating Agreement and shall not cause the invalidity or unenforceability of the remainder of this Agreement or such Separate Series Operating Agreement.
81 | 4. Amendment and Waiver.
82 | a. Each Separate Series Operating Agreement may only be amended with the consent of its Member and the Manager as required under such Separate Series Operating Agreement.
83 |
84 | b. No amendment of this Agreement may modify the method of making allocations or distributions under a Separate Series Operating Agreement, modify the method of determining the interest or ownership percentage for any Series or any member of such Series under a Separate Series Operating Agreement, or modify any provision of this Agreement or a Separate Series Operating Agreement pertaining to limitations on liability of the members of a Series, unless such amendment is authorized and approved by the Members and the Manager of the applicable Series as required under such Separate Series Operating Agreement.
85 |
86 | c. The Manager's noncompliance with any provision hereof in any single transaction or event that would otherwise require the consent of the members of a Series under the applicable Separate Series Operating Agreement of such Series may be waived prospectively or retroactively in writing by the same percentage of the members of such Series that would be required to amend such provision pursuant to such applicable Separate Series Operating Agreement. No waiver shall be deemed a waiver of any subsequent event of noncompliance except to the extent expressly provided in such waiver.
87 |
88 | _[SIGNATURE PAGE FOLLOWS]_
89 |
90 |
91 |
92 | IN WITNESS WHEREOF, the undersigned has executed this Limited Liability Company Agreement of the Company as of the date first written above.
93 |
94 |
95 | ________________________
96 | [Member], as Member
97 |
98 |
99 |
100 |
101 | ACCEPTANCE OF APPOINTMENT
102 |
103 | WHEREAS, the undersigned hereby accepts appointment as the Manager of the Company and agree to be bound by the terms and conditions applicable to such of this Liability Company Agreement, as amended from time to time in accordance with the provisions hereof.
104 |
105 | MANAGER: [Manager]
106 |
107 |
108 |
109 | ### SCHEDULE A – SERIES DISCLAIMERS
110 |
111 | Each Series, its members and managers hereby agree as follows:
112 |
113 | • The use of a “Series”, “Protected”, “Registered” or similar LLC is subject to various legal uncertainties regarding its validity, separateness, and use cases, including, without limitation, uncertainties relating to:
114 |
115 | o the non-recognition of such type of legal entity and structure by other U.S. States, such as California, New York and Massachusetts;
116 |
117 | o the lack of established case or other legal precedent regarding Series LLCs and any liability spill-over or piercing risks between the Series and the Company;
118 |
119 | o the taxation of a Series LLC; and
120 |
121 | o the bankruptcy proceedings of a Series LLC under federal law;
122 |
123 | • Notwithstanding anything to the contrary in the Agreement, the Member and Manager shall be entitled to dissolve the Company at any time, in the event where there is any risk or threatened risk of liability to the Company, Member or the Manager in relation to the Company’s or any Series’ affairs;
124 |
125 | • Each Series, its members and managers may be required by the Company, at any time, to provide basic Know Your Customer (KYC) information, such as (without limitation)a copy of a widely accepted national ID, name, and proof of address, in the event where: (i) such Series desires to obtain a bank account; (ii) the Company, Member or the Manager are legally required to provide such information; or (iii) such Series desires to become a “registered” series in the State of Delaware;
126 |
127 | • THE CODE, SOFTWARE AND DOCUMENTATION FOR THE IMPLEMENTATION OF A SERIES ARE PROVIDED "AS IS" AND THE COMPANY, MEMBER AND THE MANAGER HEREBY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, AND ALL WARRANTIES ARISING FROM COURSE OF DEALING, USAGE, OR TRADE PRACTICE. NO WARRANTY OF ANY KIND IS MADE THAT THE CODE, SOFTWARE AND DOCUMENTATION, OR ANY PRODUCTS OR RESULTS OF THE USE THEREOF, WILL MEET LICENSEE'S OR ANY OTHER PERSON'S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, ACHIEVE ANY INTENDED RESULT, BE COMPATIBLE OR WORK WITH ANY SOFTWARE, SYSTEM OR OTHER SERVICES, OR BE SECURE, ACCURATE, COMPLETE, FREE OF HARMFUL CODE OR ERROR; and
128 |
129 | • The Series, its members and managers shall indemnify and hold harmless the Company, Member and the Manager (the "Indemnified Parties") against any claims, liabilities, legal fees, judgements, or other losses incurred by the Indemnified Parties that relate to the disclaimers set forth above or that may arise from i) a Series’ non-compliance with the provisions of the Agreement; ii) any business or action undertaken of the Series, its members or managers; iii) the use of or direct interaction with any distributed ledger or blockchain.
130 |
--------------------------------------------------------------------------------
/PO/Grant_Agreement_DAO.md:
--------------------------------------------------------------------------------
1 | CodersNote=From GitHub.com/ErichDylus/Open-Source-Law
2 |
3 | CodersNote=Parameters from original:
4 |
5 | ContractLife.Stop.AtWill.NoticePeriod.cl=thirty (30) calendar days’
6 |
7 | Comp.Monthly.Amount.$=USD$[______]
8 |
9 | Law.State.the=the State of Delaware
10 |
11 |
12 | // simple agreement contemplating DAO treasury grants (by DAO legal wrapper) for independent contractor services, adaptable for individuals or entities
13 |
14 | // effective date should correspond to commencement of applicable DAO grant cycle
15 |
16 | // provided without warranty of any kind, do not use without consulting an attorney, all open-source-law repo disclosures apply
17 |
18 | Doc.Ti=Grant Agreement
19 |
20 | This.sec=This Grant Agreement (this “{Def.Agreement.Target}”) is entered into as of {EffectiveDate.YMD} (the “Effective Date”) by and between {P1.US.N,E,A} (“{Def.Service_Provider.Target}”) and {P2.US.N,E,A} (the “{Def.DAO_Legal_Entity.Target}”), represented and governed by the {DAO.Name.Full} Decentralized Autonomous Organization associated with address {DAO.BlockchainAddress} (“{Def.DAO.Target}”) ({_DAO} and the {_DAO_Legal_Entity}, together with any and all subsidiaries and affiliates, “{Def.DAO_Party.Target}”) ({_Service_Provider} and {_DAO_Party} are each a “{Def.Party.Target}” and both, the “{_Parties}”).
21 |
22 | Why.sec={_DAO_Party} has deemed that {_Service_Provider} has the necessary qualifications, experience, and abilities to provide {_Services} (as such term is defined in Section {Service.Xnum} below) to and for the benefit of {_DAO_Party}, and {_Service_Provider} has agreed to provide such {_Services} to and for the benefit of {_DAO_Party} pursuant to the terms and conditions set forth in this {_Agreement}, with {_Service_Provider} to be deemed an independent contractor for {_DAO_Party} (as more particularly set forth in Section {IndependentContractor.Xnum} below, the “{Def.Relationship.Target}”).
23 |
24 | Then.sec=In consideration of the mutual benefits and obligations set forth in this {_Agreement}, the receipt and sufficiency of which is hereby acknowledged, {_Service_Provider} and {_DAO_Party} agree as follows:
25 |
26 | Service.Ti=Services
27 |
28 | Service.sec={_DAO_Party} hereby engages {_Service_Provider} to provide {_DAO_Party} or its written designee with the following services: {Services.Description.cl} (including any other services reasonably related thereto and/or as mutually agreed in writing between the {_Parties}, the “{Def.Services.Target}”).
29 |
30 | Service.=[G/Z/Base]
31 |
32 | Term.Ti=Term
33 |
34 | Term.1.sec=The term of this {_Agreement} (the "{Def.Term.Target}") commences on the Effective Date and remains in full force and effect (except for the terms of this {_Agreement} which expressly survive the expiry or termination of this {_Agreement}) until {Term.End.sec} or until terminated pursuant to the terms of this {_Agreement}.
35 |
36 | Term.End.=[G/Z/Alt/2]
37 |
38 | Term.End.SecName=Term.End
39 |
40 |
41 | Term.End.AltPrompt=Select "FixedDate" or "Milestone".
42 |
43 | Term.End.Alt1.sec={Term.End.FixedDate.sec}
44 |
45 | Term.End.FixedDate.sec={Term.End.FixedDate.YMD}
46 |
47 | Term.End.Alt2.sec={Term.End.Milestone.sec}
48 |
49 | Term.End.Milestone.sec=milestone completion (as confirmed in writing by {_DAO_Party}) of {Work.Milestone.Description.cl}
50 |
51 | Term.2.sec=This {_Agreement} may be terminated in writing upon {ContractLife.Stop.AtWill.NoticePeriod.cl}' prior written notice by either {_Party}, or by mutual written agreement of the {_Parties}. However, notwithstanding the foregoing sentence, if {_Service_Provider} has been provided written notice from {_DAO_Party} as to any material issue with the quality or provision of the {_Services} which remains uncured for ten days in {_DAO_Party}’s sole reasonable discretion, this {_Agreement} may be terminated immediately by written notice from {_DAO_Party}.
52 |
53 | Term.3.sec=For avoidance of doubt, this {_Agreement} may be terminated in accordance with this section at any point in a calendar month or compensation cycle, and {_Service_Provider}’s compensation for such calendar month or compensation cycle shall be reduced or prorated accordingly to match the actual number of days providing {_Services} for such calendar month or compensation cycle, as applicable.
54 |
55 | Term.=[G/Z/ol-a/s3]
56 |
57 | Compensate.Ti=Compensation
58 |
59 | Compensate.1.sec=For each calendar month in the {_Term}, {_DAO_Party} or its written designee will pay {_Service_Provider} an equivalent amount to {Comp.Monthly.Amount.$} by {Stablecoin.Name} or other mutually agreed payment method and calculation within the first calendar week of each applicable month or as otherwise mutually agreed in writing.
60 |
61 | Compensate.2.sec={_DAO_Party} will reimburse {_Service_Provider} for all reasonable and necessary expenses incurred by {_Service_Provider} directly attributable to the {_Services}, subject to {_DAO_Party}’s express prior written approval of such expenses.
62 |
63 | Compensate.=[G/Z/ol-a/s2]
64 |
65 | IndependentContractor.Ti=Independent Contractor Relationship
66 |
67 | IndependentContractor.sec=In providing the {_Services} under this {_Agreement}, the {_Parties} expressly agree that {_Service_Provider} is acting as an independent contractor and not as an employee or agent of {_DAO_Legal_Entity}, {_DAO_Party} or any other related entity. {_Service_Provider} and {_DAO_Party} acknowledge and agree that this {_Agreement} does not create a partnership of any kind, nor any joint venture or similar relationship, and is exclusively a contract for service. {_Service_Provider} is not required to pay or make any contributions of any monetary value towards any governmental entity for tax purposes, unemployment compensation, worker’s compensation, insurance premium, pension or any other employee benefit with respect to {_DAO_Party} during the {_Term}. {_Service_Provider} acknowledges and agrees that {_Service_Provider} is solely responsible for complying with all laws, regulations, and other governmental requirements applicable to {_Service_Provider} including but not limited to paying all taxes, expenses, and other amounts due from {_Service_Provider} of any kind related to this {_Agreement}.
68 |
69 | IndependentContractor.=[G/Z/Base]
70 |
71 | // applicable for where grantee will be privy to confidential information, such as information subject to a third party's NDA, or perhaps where a grantee wishes to preserve their own anonymity, etc.
72 |
73 | ConfInfo.Ti=Confidential Information
74 |
75 | ConfInfo.General.sec=Each {_Party}, their respective affiliates and their respective directors, officers, employers, employees, agents, members, or advisors (collectively, “{Def.Representatives.Target}”) may be alerted of, become privy to, or gain access to certain confidential and/or proprietary information of the other {_Party}. A {_Party} or its {_Representative} disclosing its {_Confidential_Information} (as such term is defined in Section {ConfInfo.Except.Xnum} below) to the other {_Party} is hereafter referred to as a “{Def.Disclosing_Party.Target}.” A {_Party} or its {_Representative} receiving the {_Confidential_Information} of the {_Disclosing_Party} is hereafter referred to as a “{Def.Receiving_Party.Target}.”
76 |
77 | ConfInfo.Def.1.sec=The term “{Def.Confidential_Information.Target}” as used in this {_Agreement} shall mean any data or information that is reasonably sensitive material and not generally known to the public or any third parties, including, but not limited to, information relating to any of the following: the {_Relationship}, product development and plans, proprietary concepts, documentation, operations, systems, computer software, source code, trade secrets, customer lists, customer relationships, negotiations, present or future business activities, design, verbal conversations or representations, writings, technical information and details which the {_Disclosing_Party} reasonably considers confidential, and anything {_DAO_Party} sets forth in writing as being confidential or sensitive material.
78 |
79 | CodersNote=Optional:
80 |
81 | ConfInfo.Def.2.sec=Unless expressly set forth in writing otherwise, any and all data, information, correspondence, materials, activities, operations, or relationships in any way related to “{Conf.CoreSubject.cl}” or any reference thereof shall be deemed included in the definition of “{_Confidential_Information}.”
82 |
83 | ConfInfo.Def.=[G/Z/para/s2]
84 |
85 | ConfInfo.Except.sec=The obligation of confidentiality with respect to {_Confidential_Information} will not apply to any information publicly known or accessible due to prior authorized or lawful disclosure, or if the information is disclosed by the {_Receiving_Party} with the {_Disclosing_Party}’s prior written consent and approval.
86 |
87 | ConfInfo.Engage.0.sec=With respect to {_Confidential_Information}:
88 |
89 | ConfInfo.Engage.1.sec={_Receiving_Party} and its {_Representatives} agree to retain the {_Confidential_Information} of the {_Disclosing_Party} in strict confidence, to protect the security, integrity and confidentiality of such information and to not permit unauthorized access to or unauthorized use, disclosure, publication or dissemination of {_Confidential_Information} except in conformity with this {_Agreement};
90 |
91 | ConfInfo.Engage.2.sec={_Receiving_Party} and its {_Representatives} shall adopt and/or maintain security processes and procedures to safeguard the confidentiality of all {_Confidential_Information} received by {_Disclosing_Party} using a reasonable degree of care, but not less than that degree of care used in safeguarding its own similar information or material;
92 |
93 | ConfInfo.Engage.3.sec=Upon termination the termination of this {_Agreement}, {_Receiving_Party} will ensure that all documents, writings, and other electronic records that include or reflect any {_Confidential_Information} are returned to {_Disclosing_Party} or are destroyed as directed by {_Disclosing_Party};
94 |
95 | ConfInfo.Engage.4.sec=If there is an unauthorized disclosure or loss of any of the {_Confidential_Information} by {_Receiving_Party} or any of its {_Representatives}, {_Receiving_Party} will promptly, at its own expense, notify {_Disclosing_Party} in writing and take all actions as may be necessary or reasonably requested by {_Disclosing_Party} to minimize any damage to the {_Disclosing_Party} or a third party as a result of the disclosure or loss; and
96 |
97 | ConfInfo.Engage.5.sec=The obligation not to disclose {_Confidential_Information} shall survive the termination of this {_Agreement}, and at no time will {_Receiving_Party} or any of its {_Representatives} be permitted to disclose {_Confidential_Information}, except to the extent that such {_Confidential_Information} is excluded from the obligations of confidentiality under this {_Agreement} pursuant to Section {ConfInfo.Except.Xnum} above.
98 |
99 | ConfInfo.Engage.=[G/Z/ol-i/s5]
100 |
101 | ConfInfo.sec=- {ConfInfo.General.sec}
- {ConfInfo.Def.sec}
- {ConfInfo.Except.sec}
- {ConfInfo.Engage.sec}
102 |
103 | ConfInfo.=[G/Z/Base]
104 |
105 | License.OpenSource.Ti=Open Source
106 |
107 | License.OpenSource.sec=The {_Parties} acknowledge and agree that all work product and materials from the {_Services}, unless expressly agreed in writing to the contrary, are and will be made and distributed under the MIT license.
108 |
109 | License.OpenSource.=[G/Z/Base]
110 |
111 | License.WorkForHire.Ti=Ownership of Intellectual Property
112 |
113 | License.WorkForHire.sec=All intellectual property, work product, and related material including any trade secrets, moral rights, goodwill, relevant registrations or applications for registration, and rights in any patent, copyright, trademark, trade dress, industrial design, non-open source software, method, trade name and communications (the “{Def.Intellectual_Property.Target}”) that is developed, progressed, or produced under this {_Agreement} is a “work made for hire” and will be the sole property of {_DAO_Party}. {_Service_Provider} may not use the {_Intellectual_Property} for any purpose other than as agreed herein except with the prior written consent of {_DAO_Party}. The use of the {_Intellectual_Property} by {_DAO_Party} will not be restricted in any manner. {_Service_Provider} will be responsible for any and all damages resulting from {_Service_Provider}’s or its {_Representatives}’ or a third party’s (to the extent such third party received or became aware of {_Intellectual_Property} from {_Service_Provider}) unauthorized use of the {_Intellectual_Property}.
114 |
115 | License.WorkForHire.=[G/Z/Base]
116 |
117 | License.Sec=Choose One: License.Sec={License.OpenSource.Sec} or Sec.6={License.WorkForHire.Sec}- {License.OpenSource.Sec}
- {License.WorkForHire.Sec}
118 |
119 | Remedy.Ti=Remedies and Indemnity
120 |
121 | Remedy.1.sec=Each {_Party} agrees that use or disclosure of any {_Confidential_Information} [or {_Intellectual_Property}] in a manner inconsistent with this {_Agreement} will give rise to irreparable injury for which: (i) money damages may not be a sufficient remedy for any breach of this {_Agreement} by such {_Party}; (ii) the other {_Party} may be entitled to specific performance and injunction and other equitable relief with respect to any such breach; (iii) such remedies will not be the exclusive remedies for any such breach, but will be in addition to all other remedies available at law or in equity; and (iv) in the event of litigation relating to this {_Agreement}, if a court of competent jurisdiction determines in a final non-appealable order that one {_Party} or any of its {_Representatives} has breached this {_Agreement}, such {_Party} will be liable for reasonable legal fees and expenses incurred by the other {_Party} in connection with such litigation.
122 |
123 | Remedy.2.sec=Each {_Party} agrees to defend, indemnify and hold harmless the other {_Party} against any and all liabilities, claims, suits, losses, damages and expenses, including reasonable attorney's fees, incurred by or asserted against the indemnified {_Party} to the extent caused by the acts or omissions of the indemnifying {_Party} in connection with the performance of {_Services} under this {_Agreement}.
124 |
125 | Remedy.3.sec={_DAO_Legal_Entity} hereby acknowledges and agrees that {_Service_Provider} has made no express warranties concerning the {_Services}. It is solely Entity’s responsibility to determine whether the {_Services} will suit {_DAO_Party}’s needs or goals. The {_Services} are provided "as is" without warranty of any kind. {_DAO_Legal_Entity}, to the fullest extent permitted by law, hereby disclaims and {_DAO_Legal_Entity} hereby waives all warranties by {_Service_Provider}, including, but not limited to, all implied warranties of fitness for a particular purpose, all implied warranties of merchantability and warranties of non-infringement of third party rights in connection with the {_Services}. {_Service_Provider} does not warrant, and {_DAO_Legal_Entity} hereby waives any warranty, that the {_Services} will yield any particular results or successful outcomes. {_Service_Provider} does not make any warranty and {_DAO_Legal_Entity} hereby waives any and all warranties as to the results obtained from the {_Services}.
126 |
127 | Remedy.4.sec=Limitation of liability: {_Service_Provider} shall not be liable for any lost profits or consequential, exemplary, incidental or punitive damages (including, without limitation, in connection with the {_Services} provided hereunder, regardless of the form of action, whether in contract or in tort, including negligence, and regardless of whether such damages are reasonably foreseeable.
128 |
129 | Remedy.=[G/Z/ol-a/s4]
130 |
131 | Assign.Ti=Assignment
132 |
133 | Assign.sec=Neither {_Party} will voluntarily, or by operation of law, assign or otherwise transfer its obligations under this {_Agreement} without the prior written consent of the other {_Party}.
134 |
135 | Assign.=[G/Z/Base]
136 |
137 | Notice.Ti=Notices
138 |
139 | Notice.sec=All notices given under this {_Agreement} shall be in writing and provided in the same manner and to the same addresses and addressees as the {_Agreement} itself or as otherwise designated in writing by the {_Parties}.
140 |
141 | Notice.=[G/Z/Base]
142 |
143 | Amend.Ti=Amendment
144 |
145 | Amend.sec=This {_Agreement} may be amended or modified only by a written agreement signed by both {_Parties}.
146 |
147 | Amend.=[G/Z/Base]
148 |
149 | Law.Ti=Jurisdiction and Governing Law
150 |
151 | Law.Applicable.sec=This {_Agreement} will be governed by and construed in accordance with the laws of {Law.State.the}, without regard to the principles of conflict of laws.
152 |
153 | Law.Dispute.sec=Any dispute, claim or controversy arising out of or relating to this {_Agreement} or the breach, termination, enforcement, interpretation or validity thereof, including the determination of the scope or applicability of this {_Agreement} to arbitrate, shall be determined by arbitration in {Arbitration.Seat.Geo} before one arbitrator. The arbitration shall be administered by JAMS pursuant to its Comprehensive Arbitration Rules and Procedures {Arb.Rule.Option.sec}.
154 |
155 |
156 | Arb.Rule.Option.Alt1.sec={Arb.Rule.Option.JAMS-Expedited.sec}
157 |
158 | Arb.Rule.Option.JAMS-Expedited.sec=and in accordance with the Expedited Procedures in those Rules
159 |
160 | Arb.Rule.Option.Alt2.sec={Arb.Rule.Option.JAMS-Streamlined.sec}
161 |
162 | Arb.Rule.Option.JAMS-Streamlined.sec=or pursuant to JAMS' Streamlined Arbitration Rules and Procedures
163 |
164 | Arb.Rule.Option.SecName=Arb.Rule.Option
165 |
166 | Arb.Rule.Option.AltPrompt=Arbitration Options
167 |
168 | Arb.Rule.Option.=[G/Z/Alt/2]
169 |
170 | Law.sec={Law.Applicable.sec} {Law.Dispute.sec}
171 |
172 | Law.=[G/Z/Base]
173 |
174 | Misc.Ti=Miscellaneous
175 |
176 | Misc.1.sec=This {_Agreement} will inure to the benefit of and be binding on the respective successors and permitted assigns of the {_Parties}.
177 |
178 | Misc.2.sec=The waiver by either {_Party} of a breach, default, delay or omission of any of the provisions of this {_Agreement} by the other {_Party} will not be construed as a waiver of any subsequent breach of the same or any other provision.
179 |
180 | Misc.3.sec=Neither {_Party} shall be in default or otherwise liable for any delay in, or failure of its performance under this {_Agreement}, where such delay or failure arises by reason of any Act of God, or of any government or any governmental body, any material bug, defect or error in any of the {_DAO_Party} code, framework or interface or any smart contract or third party oracle or storage program, network or layer or other infrastructure on which the {_DAO_Party} code is reliant, or the unauthorized triggering, use or exploitation (whether intentional or unintentional) of any of the foregoing which renders {_Service_Provider} reasonably unable to provide the {_Services}, or other cause beyond the control of the {_Parties} (any of the foregoing, a “force majeure”); provided, however, that the delay or failure in performance could not have reasonably been foreseen or provided against; and provided further that each {_Party} exercises such diligence in resolving the force majeure as the circumstances may require.
181 |
182 | Misc.4.sec=If any provision of this {_Agreement} is held to be invalid, illegal or unenforceable in whole or in part, the remaining provisions shall not be affected and shall continue to be valid, legal and enforceable as though the invalid, illegal or unenforceable parts were severed from this {_Agreement}.
183 |
184 | Misc.5.sec=This {_Agreement} may be executed in counterparts, each of which shall be deemed an original, but both of which together shall constitute one and the same instrument. This {_Agreement} may be executed by commercially acceptable electronic means, and any electronic signatures to this {_Agreement} are the same as handwritten signatures for purposes of validity, enforceability, and admissibility.
185 |
186 | Misc.=[G/Z/ol-a/s5]
187 |
188 | sec=- {Service.Sec}
- {Term.Sec}
- {Compensate.Sec}
- {IndependentContractor.Sec}
- {ConfInfo.Sec}
- {License.Sec}
- {Remedy.Sec}
- {Assign.Sec}
- {Notice.Sec}
- {Amend.Sec}
- {Law.Sec}
- {Misc.Sec}
189 |
190 | =[G/Agt-Form-CmA/US/0.md]
191 |
192 | *****************************************************
193 |
194 |
195 |
196 | The Parties hereto have executed this Agreement as of the Effective Date.
197 |
198 |
199 |
200 | [PARTY A SIGNATURE]
201 | By:
202 | **[Party A]
203 | Ethereum Address: ________________________**
204 |
205 |
206 |
207 | [DAO SIGNATURE]
208 | By:
209 | **[DAO LEGAL WRAPPER]**
210 |
211 | CodersNote=Defined Terms and other parameters:
212 |
213 | _DAO=DAO
214 |
215 | _DAO_Legal_Entity=DAO Legal Entity
216 |
217 | _Service_Provider=Service Provider
218 |
219 | _DAO_Party=DAO Party
220 |
221 | _Representative=Representative
222 |
223 | _Relationship=Relationship
224 |
225 | _Representatives=Representatives
226 |
227 | _Term=Term
228 |
229 | _Intellectual_Property=Intellectual Property
230 |
231 | Def.Agreement.Target={_Agreement}
232 |
233 | Def.Service_Provider.Target={_Service_Provider}
234 |
235 | Def.DAO_Legal_Entity.Target={_DAO_Legal_Entity}
236 |
237 | Def.DAO.Target={_DAO}
238 |
239 | Def.DAO_Party.Target={_DAO_Party}
240 |
241 | Def.Party.Target={_Party}
242 |
243 | Def.Relationship.Target={_Relationship}
244 |
245 | Def.Services.Target={_Services}
246 |
247 | Def.Term.Target={_Term}
248 |
249 | Def.Representatives.Target={_Representatives}
250 |
251 | Def.Disclosing_Party.Target={_Disclosing_Party}
252 |
253 | Def.Receiving_Party.Target={_Receiving_Party}
254 |
255 | Def.Confidential_Information.Target={_Confidential_Information}
256 |
257 | Def.Intellectual_Property.Target={_Intellectual_Property}
258 |
259 | CodersNote=Parameterized Section Cross-references.
260 |
261 | Service.Xnum=1
262 |
263 | ConfInfo.Xnum=5
264 |
265 | ConfInfo.Except.Xnum={ConfInfo.Xnum}.c
266 |
267 | IndependentContractor.Xnum=4
268 |
269 | _P1={_Service_Provider}
270 |
271 | _P2={_DAO_Party}
272 |
--------------------------------------------------------------------------------
/forms/legal/Multisig Simple Code Deference Agreement (DE).md:
--------------------------------------------------------------------------------
1 | // IN PROCESS AND INCOMPLETE
2 |
3 | // forked/adapted from [this precedent](https://github.com/lex-node/SCoDA-Simple-Code-Deference-Agreement-/edit/master/SCoDA%20v.3.md) drafted by Gabriel Shapiro (aka lex-node) including contributions by [Ross Campbell](https://about.me/r_ross_campbell) and [Matthew Cantor](https://www.fenwick.com/professionals/Pages/matthewcantor.aspx). Update for additional multisig key holders as necessary.
4 |
5 | // carries the Attribution-ShareAlike 4.0 International license, as required by the aforementioned precedent and [set forth here](https://github.com/lex-node/SCoDA-Simple-Code-Deference-Agreement-/blob/master/LICENSE.md)
6 |
7 | // UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
8 |
9 | // TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
10 |
11 | // add potential consideration for holders, provision on transfer accession to terms, DAO or wrapper as a party for deference, etc.
12 |
13 | ## MULTISIG SIMPLE CODE DEFERENCE AGREEMENT
14 |
15 | [PARTY A NAME] (“***Party A***”) controls the private key uniquely associated with Account Address 0x_________ on the Designated Blockchain. [PARTY B NAME] (“***Party B***”) controls the private key uniquely associated with Account Address 0x_________ . [PARTY C NAME] (“***Party C***”) controls the private key uniquely associated with Account Address 0x_________ (each of Party A, Party B and Party C is a "***Party***", and Party A, Party B and Party C together, the “***Parties***”). The respective private keys controlled by the Parties are uniquely associated with the multi-signature Account Address 0x_________ (the “***Multisig***”) on the Designated Blockchain, any transaction from which necessitates the authorization from multiple of the Parties' respective addresses according to the smart contract code of the Multisig. For good and valuable consideration, the receipt and sufficiency of which is hereby acknowledged, the Parties hereby enter into this Multisig Simple Code Deference Agreement (this "***Agreement***") as of [DATE] (the “***Effective Time***”).
16 |
17 | **1. Subject Property**
18 |
19 | (a) No later than 72 hours after the Effective Time (the “***Deposit Deadline***”) (A) the Parties shall cause, by operation of the Multisig, the Designated Tokens to be Transferred from the Multisig in the amount set forth for each applicable recipient party in [Annex A hereto][that certain [INSERT AGREEMENT DETAILS]].
20 |
21 | (b) Any Tokens required to be deposited into the Designated Smart Contract or the Multisig, together with any Token proceeds, yield, or other earnings thereon or other Token amounts that are received or transmitted by the Designated Smart Contract or the Multisig during the term of this Agreement, are referred to herein as the “***Subject Property***.” Any Subject Property that has been Transferred to a Party by the Designated Smart Contract or via the Multisig is referred to herein as such Party’s “***Distributed Subject Property***.”
22 |
23 | **2. Effects of Designated Smart Contract**
24 |
25 | (a) *General Binding Effect.*
26 |
27 | (i) *Smart Contract Results Binding.* Subject to Section 1 and Section 2(b): i) the results of operation of the Smart Contract and the Multisig, respectively, shall be determinative of the rights and obligations of, and shall be final, binding upon and non-appealable by, each of the Parties with respect to the Subject Property.
28 |
29 | (ii) *Smart Contract Trumps Other Contracts.* Except as set forth in Section 2(b), if there is any conflict or inconsistency between: (A)(1) this Agreement or (2) any other Contract between or involving the Parties; and (B) any Contract created or implied by, or embodied in, the machine, assembly or other code, or the results of operation, of the Designated Smart Contract, then the Contract referred to in the preceding clause “(B)” shall prevail over the Contract referred to in the preceding clause “(A).”
30 |
31 | (iii) *Prohibition of Legal Proceedings & Transfers.* Each Party shall not, without the prior written consent of the other Parties, directly or indirectly take or attempt to take any of the following actions:
32 |
33 | (A) except as set forth in Section 2(b) or Section 4, commence or continue any Legal Proceeding, assert any Claim or enforce any judgment or other Order, in each case, against or involving the other Parties, relating to this Agreement, the Designated Smart Contract, the Multisig, the Subject Property or any of the other subject matter of or matters contemplated by this Agreement, including, for the avoidance of doubt, any Legal Proceeding or Order *in rem* pertaining to the Subject Property or any Legal Proceeding or Claim challenging the enforceability of any provision of this Agreement;
34 |
35 | (B) convey any of the Subject Property other than such Party’s Distributed Subject Property it being understood that for a Party to “***Convey***” any of the Subject Property means for such Party to or enter into any Contract that may obligate such Party to: (1) create, perfect or enforce any Lien on, (2) pledge, hypothecate, grant an option or derivative security with respect to or (3) convey, sell, transfer or dispose of such Subject Property or any right or interest of a Party to or in such Subject Property; or
36 |
37 | (C) cause, incentivize, encourage or facilitate, a Material Adverse Exception Event.
38 |
39 | (b) *Exception Handling.* Notwithstanding anything to the contrary set forth in Section 2(a), if there is a Material Adverse Exception Event, then the rules and procedures set forth in this clause "(b)" shall determine the rights and obligations of the Parties relating to the Subject Property.
40 |
41 | (i) *Exception Notice.* If any Party becomes aware that there is a Material Adverse Exception Event, such Party (the “***Sending Party***”) shall deliver to the other Parties (the “***Receiving Parties***”) a notice (an “***Exception Notice***”) signed by such Party:
42 |
43 | (A) certifying that the Sending Party believes in good faith that there is a Material Adverse Exception Event;
44 |
45 | (B) describing in reasonable detail the events, facts, circumstances and reasons forming the basis of such belief;
46 |
47 | (C) describing in reasonable detail a proposal by such Party of the actions to be taken, the agreements to be entered into, and the remedies to be sought by the Parties in response to the Material Adverse Exception Event an “***Exception Handling Proposal***”;
48 |
49 | (D) including copies of any written evidence or other material written information, and summaries of any other evidence, relevant to, and material for the consideration of, the Material Adverse Exception Event and the other matters referred to in the Exception Notice; and
50 |
51 | (E) containing a representation by the Sending Party, made to and for the benefit of the Receiving Parties with the understanding that the Receiving Parties will rely thereon, that, to the Sending Party’s knowledge, the certification and statements made pursuant to the preceding clauses “(A)” and “(B)” are accurate as of the date of the Exception Notice, and, considered collectively, do not contain any untrue statement of a material fact or omit to state any material fact necessary in order to make such statements, in light of the circumstances in which they were made, not misleading.
52 |
53 | (ii) *Exception Standstill.* During the period commencing upon the earlier of a Party becoming aware that there is a Material Adverse Exception Event or being delivered an Exception Notice and ending with the Parties entering into an Exception Handling Addendum or receiving a final decision of an arbitrator in accordance with Section 2(b)(iii) (the “***Standstill Period***”), such Party shall: (A) treat all of the Distributed Subject Property of such Party that may have been Transferred to such Party as a result of the Material Adverse Exception Event as if it were Subject Property, including by disregarding the parenthetical exceptions for Distributed Subject Property in Section 2(a)(iii); and (B) deposit and maintain such Distributed Subject Property in a segregated Account Address to be treated, to the extent permitted by applicable Legal Requirements, as a custodial trust held for the benefit of the other Parties.
54 |
55 | (iii) *Determination of Exception Handling.*
56 |
57 | (A) The term “***Exception Handling Addendum***” refers to an addendum to this Agreement signed by the Parties and setting forth the Parties’ agreement on the existence or non-existence of a Material Adverse Exception Event and the actions to be taken, the agreements to be entered into, and the remedies to be sought in response thereto. Each Exception Handling Addendum shall automatically and without further action of the Parties be deemed incorporated into and to form a part of this Agreement.
58 |
59 | (B) If the Receiving Parties wish to accept the Exception Handling Proposal in full, then the Receiving Parties shall promptly deliver a written notice of such acceptance to the Sending Party and the Parties shall promptly enter into an Exception Handling Addendum reflecting the Exception Handling Proposal.
60 |
61 | (C) If any Receiving Party disputes the existence of a Material Adverse Exception Event, or does not wish to accept all or any part of the Exception Handling Proposal, then such Receiving Party shall promptly deliver a written notice of such non-acceptance an “***Exception Response Notice***” to the Sending Party. The Exception Response Notice shall include the same categories of information, statements, evidence and representations and warranties as would be required for an Exception Notice, *mutatis mutandis*.
62 |
63 | (D) During the continuous 30-day period beginning on the date after the date the notice of non-acceptance is delivered to the Sending Party the “***Negotiation Period***”, the Parties shall use commercially reasonable efforts to negotiate in good faith to agree upon the existence or non-existence of a Material Adverse Exception Event and, if so agreed, the actions to be taken, the agreements to be entered into and the remedies to be sought by the Parties in response to the Material Adverse Exception Event. If the Parties agree upon such matters during the Negotiation Period, the Parties shall promptly enter into an Exception Handling Addendum reflecting the same.
64 |
65 | (E) If the Parties fail to reach an agreement resulting in an Exception Handling Addendum during the Negotiation Period, then a Party may initiate an arbitration action to resolve the issues in accordance with the procedures set forth on *Exhibit A* (the “***Arbitration Procedures***”). The decision resulting from the Arbitration Procedures shall include, among any other determinations, a determination of the treatment of any Distributed Subject Property and whether to extend, modify or terminate the covenants applying to the Distributed Subject Property during the Standstill Period. The decision resulting from the Arbitration Procedures shall be non- appealable, binding and conclusive upon the Parties. Judgment upon such decision may be entered in any court of competent jurisdiction.
66 |
67 | **3. Representations and Warranties.**
68 |
69 | Each Party (as the "***Representing Party***") hereby represents and warrants, to and for the benefit of each other Party, as of the Effective Time, as follows:
70 |
71 | (a) *Authorization and Enforceability.* The Representing Party has all necessary power, authority and capacity to perform all of the Representing Party's obligations under, and to execute and deliver, this Agreement. This Agreement has been duly executed and delivered by the Representing Party and constitutes a legal, valid and binding obligation of the Representing Party, enforceable against the Representing Party in accordance with its terms, subject only to the effect, if any, of (i) applicable bankruptcy, insolvency, moratorium or other similar laws affecting the rights of creditors generally, and (ii) rules of law governing specific performance, injunctive relief and other equitable remedies. If the Representing Party is an entity, then the Representing Party is duly formed, organized, validly existing and in good standing under the laws of the jurisdiction in which it was formed.
72 |
73 | (b) *No Conflicts or Required Unobtained Consents.* The execution and delivery of this Agreement by the Representing Party do not, and the performance of its obligations under this Agreement by the Representing Party will not: (i) conflict with or violate any Legal Requirement or Order applicable to the Representing Party or by which the Representing Party or any of the Representing Party's assets is bound; or (ii) result in or constitute (with or without notice, lapse of time or both) any breach of or default under, or give to any other Person (with or without notice, lapse of time or both) any right of termination, amendment, acceleration or cancellation of, or result (with or without notice, lapse of time or both) in the creation of any Lien on any of the Subject Property (or any right, entitlement or interest of the Representing Party therein) pursuant to any Contract to which the Representing Party is a party or by which the Representing Party or any of the Representing Party's assets is bound. The execution and delivery of this Agreement by the Representing Party do not, and the performance of this Agreement by the Representing Party will not, require any consent, permit or exemption from any governmental authority.
74 |
75 | (c) *Title.* The Representing Party exclusively owns, controls and has good and valid title (free and clear of any Liens) to the private key for the Account Address set forth for such Representing Party in the Preamble. Without limiting the generality of the foregoing, the Representing Party has not directly or indirectly Conveyed any of the Subject Property.
76 |
77 | (d) *Multisig Keys.* The Representing Party agrees to use reasonable care in generating its respective Account Address and private key thereto, and agrees to maintain the strict confidentiality of such private key and their exclusive control thereof by commercially reasonable practices and using reasonable care.
78 |
79 | (e) *Reliance on Own Due Diligence; Informed Consent.*
80 |
81 | (i) The Representing Party has received and carefully reviewed a copy of this Agreement and all code for the Designated Smart Contract sufficiently in advance of signing this Agreement. The Representing Party has been given a full and fair opportunity to: (A) to ask questions of, and to receive answers from, the other Parties regarding the subject matter of this Agreement, the Multisig and the Designated Smart Contract and (B) to obtain any additional information that is necessary to evaluate this Agreement and the matters contemplated thereby. The Representing Party is a Person who is, or in connection with this Agreement and the matters contemplated thereby has received the advice of Persons who are, knowledgeable, sophisticated and experienced in making, and qualified to make, evaluations and decisions with respect to the quality, security and intended and expected functionality of the Designated Smart Contract and Multisig and the other matters contemplated by this Agreement.
82 |
83 | (ii) Other than the representations and warranties of the other Parties expressly set forth in this Section 3, the Representing Party has not relied on any statement, information, representation or warranty including oral statements, due diligence presentations, etc., or any omission of any statement, information, representation or warranty, made by or on behalf of the other Parties in determining to enter into or perform this Agreement or otherwise making any evaluation or determination of the Designated Smart Contract or any other matter contemplated by this Agreement. The Representing Party understands that the other Parties have not made, and have not authorized any representatives to make, any representation, warranty or other statement intended to be relied upon or to give rise to any claim, obligation or liability based on the accuracy or completeness thereof, other than the representations and warranties of such Party expressly set forth in this Section 3.
84 |
85 | **4. Indemnification**
86 |
87 | (a) From and after the Effective Time, each Party (as such, the “***Indemnifying Party***”) shall indemnify, hold harmless, compensate and reimburse each other applicable Party (as such, the “***Indemnified Party***”) from, against and for all reasonably foreseeable losses, liabilities, damages whether consequential or otherwise, Claims, fees, lost profits, taxes, reductions in value, interests, costs and expenses arising from (i) any inaccuracy in any of the representations and warranties made by the Indemnifying Party in this Agreement or Exception Notice or Exception Response Notice; or (ii) any breach of any of the covenants or obligations of the Indemnifying Party set forth in this Agreement.
88 |
89 | (b) Any claim for by an Indemnified Party pursuant to Section 4(a) shall be brought, negotiated and resolved exclusively in accordance with the procedures set forth in Section 2(b) including the Arbitration Procedures, *mutatis mutandis*.
90 |
91 | (c) This Section 4 shall provide the sole and exclusive remedy of the Indemnified Party for any of the matters described in Section 4(a)(i)-ii).
92 |
93 | **5. Definitions**
94 |
95 | (a) “**Account Address**” means a public key address on the Designated Blockchain Network that is uniquely associated with a single private key, and at which no smart contract has been deployed.
96 |
97 | (b) “**Arbitration Procedures**” means [_______].
98 |
99 | (c) “**Claim**” means any past, present or future dispute, claim, controversy, demand, right, obligation, liability, action or cause of action of any kind or nature.
100 |
101 | (d) “**Confirmation**” of a transaction shall be deemed to have occurred if and only if such transaction has been recorded in accordance with the Consensus Rules in a valid block whose hashed header is referenced by at least [ten] subsequent valid blocks on the Designated Blockchain.
102 |
103 | (e) “**Consensus Attack**” means an attack that: (i) is undertaken by or on behalf of a block producer, miner or validator who controls, or group of cooperating block producers, miners or validators who collectively control, a preponderance of the means of block production on the Designated Blockchain Network; and (ii) has the actual or intended effect of: (A) reversing any transaction made to or by the Designated Smart Contract after Confirmation of such transaction, including any “double spend” attack having or intended to have such effect; or (B) preventing inclusion in blocks or Confirmation of any transaction made to or by the Designated Smart Contract, including any “censorship attack,” “transaction withholding attack” or “block withholding attack” having or intended to have such effect.
104 |
105 | (f) “**Consensus Rules**” means the rules for transaction validity, block validity and determination of the canonical blockchain that are embodied in the Designated Client.
106 |
107 | (g) “**Contract**” means any: (i) written, oral, implied by course of performance or otherwise or other agreement, contract, understanding, arrangement, settlement, instrument, warranty, license, insurance policy, benefit plan or legally binding commitment or undertaking; or (ii) any representation, statement, promise, commitment, undertaking, right or obligation that may be enforceable, or become subject to an Order directing performance thereof, based on equitable principles or doctrines such as estoppel, reliance, or quasi-contract.
108 |
109 | (h) “**Designated Blockchain**” means at any give time, the version of the digital blockchain ledger commonly known as “Ethereum” that at least a majority of nodes running the Designated Client recognize as canonical as of such time. For the avoidance of doubt, the “Designated Blockchain” is inclusive of any rollup, shard, or other mechanism which natively settles on the digital blockchain ledger commonly known as “Ethereum” and does not refer to the digital blockchain ledger commonly known as “Ethereum Classic” or any other blockchain ledgers from which or to which the Designated Blockchain has been “forked” or “split”, or any "sidechain", "second layer" or "layer two" blockchain ledger of the Designated Blockchain or similar instantiation.
110 |
111 | (i) “**Designated Blockchain Network**” means the Ethereum mainnet (networkID:1, chainID:1), as recognized by the Designated Client.
112 |
113 | (j) “**Designated Client**” means the Official Go Ethereum client available at https://github.com/ethereum/go-ethereum.
114 |
115 | (k) “**Designated Smart Contract**” means the smart contract deployed by, or under the control of, the Multisig at address [____________] on the Designated Blockchain.
116 |
117 | (l) “**Designated Token**” means the Token commonly known as “[GOVERNANCE TOKEN SYMBOL]” at address [____________] on the Designated Blockchain.
118 |
119 | (m) “**Legal Order**” means any restraining order, preliminary or permanent injunction, stay or other order, writ, injunction, judgment or decree that either: (i) is issued by a court of competent jurisdiction, or (ii) arises by operation of applicable law as if issued by a court of competent jurisdiction, including, in the case of clause “(ii)” an automatic stay imposed by applicable law upon the filing of a petition for bankruptcy.
120 |
121 | (n) “**Legal Proceeding**” means any private or governmental action, suit, litigation, arbitration, claim, proceeding (including any civil, criminal, administrative, investigative or appellate proceeding), hearing, inquiry, audit, examination or investigation commenced, brought, conducted or heard by or before, or otherwise involving, any court or other governmental entity or any arbitrator or arbitration panel.
122 |
123 | (o) “**Lien**” means any lien, pledge, hypothecation, charge, mortgage, security interest, encumbrance, other possessory interest, conditional sale or other title retention agreement, intangible property right, claim, infringement, option, right of first refusal, preemptive right, exclusive license of intellectual property, community property interest or restriction of any nature including any restriction on the voting of any security or restriction on the transfer, use or ownership of any security or other asset.
124 |
125 | (p) “**Material Adverse Exception Event**” means that one or more of the following has occurred, is occurring or would reasonably be expected to occur:
126 |
127 | (i) a Consensus Attack materially and adversely affecting the results or operations of the Designated Smart Contract or the Multisig;
128 |
129 | (ii) the Designated Smart Contract having become inoperable, inaccessible or unusable, including as the result of any code library or repository incorporated by reference into the Designated Smart Contract or any other smart contract or oracle on which the Designated Smart Contract depends having become inoperable, inaccessible or unusable or having itself suffered a Material Adverse Exception Event, mutatis mutandis;
130 |
131 | (iii) a material and adverse effect on the use, functionality or performance of the Designated Smart Contract as the result of any bug, defect or error in the Designated Smart Contract or the triggering, use or exploitation (whether intentional or unintentional) thereof (it being understood that for purposes of this clause “(iii)”, a bug, defect or error will be deemed material only if it results in a loss to a party to this Agreement of at least ten percent of the Subject Property);
132 |
133 | (iv) any unauthorized use of an administrative function or privilege of the Designated Smart Contract or the Multisig, including: (A) any use of any administrative credential, key, password, account or address by a Person who has misappropriated or gained unauthorized access to such administrative credential, key, password, account or address or (B) any unauthorized use of an administrative function or privilege by a Party or a representative of a Party;
134 |
135 | (v) the Designated Smart Contract, a controlling percentage of the Parties to the Multisig, or the Subject Property is subject to a Legal Order that prohibits the Designated Smart Contract (or that, if the Designated Smart Contract were a Person, would prohibit the Designated Smart Contract) from executing any function, signature, or operation it would otherwise reasonably be expected to execute; or
136 |
137 | (vi) the death or incapacitation of a controlling percentage of the Parties to the Multisig.
138 |
139 | (q) “**Person**” means any human, robot, bot, artificial intelligence, corporation, partnership, association or other individual or entity recognized as having the status of a person under the law.
140 |
141 | (r) “**Token**” means a digital unit that is recognized by the Designated Client on the Designated Blockchain Network as capable of: (i) being uniquely associated with or “owned” by a particular public-key address on the Designated Blockchain Network at each particular block height; and (ii) having Transfers of such digital unit recorded on the Designated Blockchain.
142 |
143 | (s) “**Transfer**” of a Token to a given address (the “***Receiving Address***”) on the Designated Blockchain Network will be deemed to have occurred if and only if it is recognized by the Designated Client on the Designated Blockchain Network that: (i) there has been duly transmitted to the Designated Blockchain Network a new transfer function transaction that:(A) provides for the reassociation of the Designated Token with the Receiving Address; and (B) is signed by a private key that is (or a group of private keys that together are) sufficient to authorize the execution of such transfer function; and (ii) such transaction has been Confirmed.
144 |
145 | **6. Miscellaneous**
146 |
147 | (a) *Amendments.* Any provision of this Agreement may be amended, waived or modified only upon the written consent of both of the Parties.
148 |
149 | (b) *Notices.* Any notice required or permitted by this Agreement will be deemed sufficient when delivered personally or by overnight courier or sent by email to the relevant address listed on the signature page, or 48 hours after being deposited in the U.S. mail as certified or registered mail with postage prepaid, addressed to the Party to be notified at such Party’s address listed on the signature page, as subsequently modified by written notice.
150 |
151 | (c) *Assignment.* Neither this Agreement nor the rights, obligations or liabilities of any Party hereunder may be assigned or delegated, by operation of law or otherwise, by any Party without the prior written consent of the other Parties.
152 |
153 | (d) *Severability.* In the event any one or more of the provisions of this Agreement is for any reason held to be invalid, illegal or unenforceable, in whole or in part or in any respect, or in the event that any one or more of the provisions of this Agreement operate or would prospectively operate to invalidate this Agreement, then and in any such event, such provisions only will be deemed null and void and will not affect any other provision of this Agreement and the remaining provisions of this Agreement will remain operative and in full force and effect and will not be affected, prejudiced, or disturbed thereby.
154 |
155 | (e) *Construction.* The Parties hereto agree that any rule of construction to the effect that ambiguities are to be resolved against the drafting Party shall not be applied in the construction or interpretation of this Agreement. This Agreement constitutes the entire agreement between the Parties with respect to the subject matter hereof and supersedes all prior agreements and understandings, both written and oral, between the Parties with respect to the subject matter hereof.
156 |
157 | (f) *Counterparts.* This Agreement may be executed in one or more counterparts, all of which shall be considered one and the same instrument and shall become effective when one or more counterparts have been signed by each of the parties hereto and delivered to the other parties hereto; it being understood and agreed that all parties hereto need not sign the same counterpart. This Agreement may be executed in counterparts, each of which shall be deemed an original, but both of which together shall constitute one and the same instrument. This Agreement may be executed by commercially reasonable means for effectuating electronic signature, and any electronic signatures to this Agreement are deemed equivalent handwritten signatures for purposes of validity, enforceability, and admissibility. The delivery by email or other electronic delivery in PDF format of this Agreement with all executed signature pages (in counterparts or otherwise) shall be sufficient to bind the parties hereto to the terms and conditions set forth herein.
158 |
159 | (g) *Disputes; Mandatory Arbitration.* Any Legal Proceeding, Claim or other dispute or controversy arising out of or relating to this Agreement, its enforcement, or the breach thereof shall be finally resolved by binding arbitration in accordance with the Arbitration Procedures; *provided, however*, that any Party may seek injunctive relief in aid of arbitration in order to prevent irreparable harm or preserve the status quo. EACH PARTY HEREBY IRREVOCABLY WAIVES ALL RIGHT TO TRIAL BY JURY IN ANY ACTION, PROCEEDING OR COUNTERCLAIM WHETHER BASED ON CONTRACT, TORT OR OTHERWISE) ARISING OUT OF OR RELATING TO THIS AGREEMENT, THE DESIGNATED SMART CONTRACT OR THE MATTERS CONTEMPLATED HEREBY OR THE ACTIONS OF SUCH PARTIES IN THE NEGOTIATION, ADMINISTRATION, PERFORMANCE AND ENFORCEMENT HEREOF.
160 |
161 | (h) *Governing Law.* All rights and obligations hereunder will be governed by the laws of the State of Delaware, without regard to the conflicts of law provisions thereof.
162 |
163 | The Parties hereto have executed this Agreement as of the Effective Date.
164 |
165 |
166 |
167 | [PARTY A SIGNATURE]
168 | By:
169 | **[Party A]
170 | Ethereum Address: ________________________**
171 |
172 | [PARTY B SIGNATURE]
173 | By:
174 | **[Party B]
175 | Ethereum Address: ________________________**
176 |
177 | [PARTY C SIGNATURE]
178 | By:
179 | **[Party C]
180 | Ethereum Address: ________________________**
181 |
--------------------------------------------------------------------------------