{
  "endpoint": "/samples",
  "description": "Multi-tier sample manifests for orchestrator static analysis. Each tier bundles legal markdown (bilingual EN/ID), Digital Twin v3 matrix (clause-to-code mapping), and raw Solidity source code.",
  "node_id": "nexus.legal.contractdrafter",
  "generated_at": "2026-08-31T00:00:00Z",
  "tiers": [
    {
      "tier_id": "tier1",
      "name": "Basic ERC-20 Token Sale Agreement",
      "price_usd": 300,
      "price_credits": 30000,
      "service_type": "legal_code",
      "description": "Simple token sale contract with basic legal terms. Suitable for small-scale token launches.",
      "artifacts": {
        "legal_markdown": {
          "format": "markdown",
          "language_pair": "EN-ID",
          "contract_type": "token_sale",
          "jurisdiction": "ID",
          "content": [
            {
              "clause_id": "C1",
              "heading_en": "Parties",
              "heading_id": "Pihak",
              "text_en": "This Token Sale Agreement is entered into between the Token Issuer (\"Issuer\") and the Token Purchaser (\"Purchaser\").",
              "text_id": "Perjanjian Penjualan Token ini dibuat antara Penerbit Token (\"Penerbit\") dan Pembeli Token (\"Pembeli\")."
            },
            {
              "clause_id": "C2",
              "heading_en": "Token Specifications",
              "heading_id": "Spesifikasi Token",
              "text_en": "The Issuer shall create an ERC-20 token with the name, symbol, decimals, and total supply as specified in the smart contract.",
              "text_id": "Penerbit akan membuat token ERC-20 dengan nama, simbol, desimal, dan total pasokan sebagaimana ditentukan dalam smart contract."
            },
            {
              "clause_id": "C3",
              "heading_en": "Minting",
              "heading_id": "Pencetakan",
              "text_en": "The total supply shall be minted to the Issuer's address upon contract deployment. No additional minting is permitted after deployment.",
              "text_id": "Total pasokan akan dicetak ke alamat Penerbit saat penyebaran kontrak. Pencetakan tambahan tidak diizinkan setelah penyebaran."
            },
            {
              "clause_id": "C4",
              "heading_en": "Governing Law",
              "heading_id": "Hukum yang Berlaku",
              "text_en": "This agreement shall be governed by the laws of the Republic of Indonesia.",
              "text_id": "Perjanjian ini tunduk pada hukum Republik Indonesia."
            }
          ]
        },
        "digital_twin_v3_matrix": {
          "version": "v3",
          "contract_type": "token_sale",
          "mapping": [
            {
              "clause_id": "C1",
              "legal_concept": "Parties identification",
              "contract_function": "constructor()",
              "contract_event": "Transfer(from=0x0, to=issuer)",
              "code_line": 25,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C2",
              "legal_concept": "Token specifications (name, symbol, decimals, supply)",
              "contract_function": "ERC20(name, symbol)",
              "contract_event": "Approval",
              "code_line": 25,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C3",
              "legal_concept": "Minting to issuer address",
              "contract_function": "_mint(msg.sender, supply)",
              "contract_event": "Transfer(from=0x0, to=msg.sender)",
              "code_line": 26,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C4",
              "legal_concept": "Governing law (off-chain)",
              "contract_function": "N/A (legal metadata only)",
              "contract_event": "N/A",
              "code_line": null,
              "verification": "off-chain",
              "status": "legal-only"
            }
          ],
          "coverage": "3/4 clauses mapped to code. 1 clause is legal-only (off-chain)."
        },
        "raw_code_sol": {
          "filename": "TokenSale.sol",
          "language": "Solidity",
          "compiler_version": "^0.8.20",
          "license": "MIT",
          "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract TokenSale is ERC20 {\n    constructor(\n        string memory name,\n        string memory symbol,\n        uint8 decimals,\n        uint256 totalSupply\n    ) ERC20(name, symbol) {\n        _setupDecimals(decimals);\n        _mint(msg.sender, totalSupply);\n    }\n}"
        }
      },
      "static_analysis": {
        "target_latency_ms": 800,
        "artifact_count": 3,
        "clause_count": 4,
        "matrix_mappings": 4,
        "code_lines": 14,
        "audit_checks": [
          "SPDX-License-Identifier",
          "Solidity ^0.8.20",
          "ERC20 standard",
          "No additional minting"
        ]
      }
    },
    {
      "tier_id": "tier2",
      "name": "NFT Minting & Royalty Agreement",
      "price_usd": 500,
      "price_credits": 50000,
      "service_type": "legal_code",
      "description": "ERC-721 NFT contract with minting function, token URI storage, and royalty terms. Suitable for digital art and collectibles platforms.",
      "artifacts": {
        "legal_markdown": {
          "format": "markdown",
          "language_pair": "EN-ID",
          "contract_type": "nft_minting",
          "jurisdiction": "ID",
          "content": [
            {
              "clause_id": "C1",
              "heading_en": "Parties",
              "heading_id": "Pihak",
              "text_en": "This NFT Minting Agreement is entered into between the Collection Creator (\"Creator\") and the Minting Platform (\"Platform\").",
              "text_id": "Perjanjian Pencetakan NFT ini dibuat antara Pembuat Koleksi (\"Pembuat\") dan Platform Pencetakan (\"Platform\")."
            },
            {
              "clause_id": "C2",
              "heading_en": "NFT Specifications",
              "heading_id": "Spesifikasi NFT",
              "text_en": "The Creator shall deploy an ERC-721 contract with a specified name and symbol. Each NFT shall have a unique token URI pointing to its metadata.",
              "text_id": "Pembuat akan menyebarkan kontrak ERC-721 dengan nama dan simbol yang ditentukan. Setiap NFT akan memiliki token URI unik yang menunjuk ke metadatanya."
            },
            {
              "clause_id": "C3",
              "heading_en": "Minting Authority",
              "heading_id": "Wewenang Pencetakan",
              "text_en": "The minting function shall be callable by any address. Each mint shall increment the token ID sequentially and assign the provided token URI.",
              "text_id": "Fungsi pencetakan dapat dipanggil oleh alamat mana pun. Setiap pencetakan akan menambah ID token secara berurutan dan menetapkan token URI yang diberikan."
            },
            {
              "clause_id": "C4",
              "heading_en": "Token URI & Metadata",
              "heading_id": "Token URI & Metadata",
              "text_en": "The token URI shall be stored on-chain via ERC721URIStorage extension. Metadata immutability is the responsibility of the Creator.",
              "text_id": "Token URI akan disimpan on-chain melalui ekstensi ERC721URIStorage. Kekekalan metadata adalah tanggung jawab Pembuat."
            },
            {
              "clause_id": "C5",
              "heading_en": "Royalty",
              "heading_id": "Hak Royalti",
              "text_en": "The Creator shall receive a royalty of 5% on secondary market sales. Royalty enforcement is off-chain unless EIP-2981 is implemented.",
              "text_id": "Pembuat akan menerima royalti sebesar 5% pada penjualan pasar sekunder. Penegakan royalti bersifat off-chain kecuali EIP-2981 diterapkan."
            },
            {
              "clause_id": "C6",
              "heading_en": "Governing Law",
              "heading_id": "Hukum yang Berlaku",
              "text_en": "This agreement shall be governed by the laws of the Republic of Indonesia.",
              "text_id": "Perjanjian ini tunduk pada hukum Republik Indonesia."
            }
          ]
        },
        "digital_twin_v3_matrix": {
          "version": "v3",
          "contract_type": "nft_minting",
          "mapping": [
            {
              "clause_id": "C1",
              "legal_concept": "Parties identification",
              "contract_function": "constructor()",
              "contract_event": "Transfer(from=0x0, to=0x0)",
              "code_line": 30,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C2",
              "legal_concept": "NFT specifications (name, symbol, URI storage)",
              "contract_function": "ERC721(name, symbol) + ERC721URIStorage",
              "contract_event": "Transfer",
              "code_line": 30,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C3",
              "legal_concept": "Minting authority and sequential ID",
              "contract_function": "mint(address to, string tokenURI)",
              "contract_event": "Transfer(from=0x0, to=caller)",
              "code_line": 33,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C4",
              "legal_concept": "Token URI storage on-chain",
              "contract_function": "_setTokenURI(tokenId, tokenURI)",
              "contract_event": "N/A (state change, no event)",
              "code_line": 35,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C5",
              "legal_concept": "Royalty (5% secondary sales)",
              "contract_function": "N/A (off-chain unless EIP-2981)",
              "contract_event": "N/A",
              "code_line": null,
              "verification": "off-chain",
              "status": "legal-only"
            },
            {
              "clause_id": "C6",
              "legal_concept": "Governing law (off-chain)",
              "contract_function": "N/A (legal metadata only)",
              "contract_event": "N/A",
              "code_line": null,
              "verification": "off-chain",
              "status": "legal-only"
            }
          ],
          "coverage": "4/6 clauses mapped to code. 2 clauses are legal-only (off-chain)."
        },
        "raw_code_sol": {
          "filename": "NFTMinting.sol",
          "language": "Solidity",
          "compiler_version": "^0.8.20",
          "license": "MIT",
          "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\n\ncontract NFTMinting is ERC721URIStorage {\n    uint256 private _nextId;\n\n    constructor(\n        string memory name,\n        string memory symbol\n    ) ERC721(name, symbol) {}\n\n    function mint(address to, string memory tokenURI) external returns (uint256) {\n        uint256 tokenId = _nextId++;\n        _safeMint(to, tokenId);\n        _setTokenURI(tokenId, tokenURI);\n        return tokenId;\n    }\n}"
        }
      },
      "static_analysis": {
        "target_latency_ms": 850,
        "artifact_count": 3,
        "clause_count": 6,
        "matrix_mappings": 6,
        "code_lines": 20,
        "audit_checks": [
          "SPDX-License-Identifier",
          "Solidity ^0.8.20",
          "ERC721 + ERC721URIStorage",
          "Sequential minting",
          "Safe minting (_safeMint)"
        ]
      }
    },
    {
      "tier_id": "tier3",
      "name": "Full Escrow Agreement with Arbiter",
      "price_usd": 800,
      "price_credits": 80000,
      "service_type": "legal_code",
      "description": "Complete escrow contract with buyer, seller, arbiter, fund, release, and refund logic. ReentrancyGuard protected. Suitable for high-value transactions requiring dispute resolution.",
      "artifacts": {
        "legal_markdown": {
          "format": "markdown",
          "language_pair": "EN-ID",
          "contract_type": "escrow",
          "jurisdiction": "ID",
          "content": [
            {
              "clause_id": "C1",
              "heading_en": "Parties",
              "heading_id": "Pihak",
              "text_en": "This Escrow Agreement is entered into between the Buyer, the Seller, and an independent Arbiter. The Buyer initiates the escrow by deploying the contract.",
              "text_id": "Perjanjian Escrow ini dibuat antara Pembeli, Penjual, dan Arbiter independen. Pembeli memulai escrow dengan menyebarkan kontrak."
            },
            {
              "clause_id": "C2",
              "heading_en": "Escrow Parameters",
              "heading_id": "Parameter Escrow",
              "text_en": "The escrow shall be established with a specified seller address, arbiter address, ERC-20 token address, and escrow amount. The contract state shall be set to Created upon deployment.",
              "text_id": "Escrow akan dibuat dengan alamat penjual, alamat arbiter, alamat token ERC-20, dan jumlah escrow yang ditentukan. Status kontrak akan diatur ke Created saat penyebaran."
            },
            {
              "clause_id": "C3",
              "heading_en": "Funding",
              "heading_id": "Pendanaan",
              "text_en": "The Buyer shall fund the escrow by calling the fund() function. This transfers the specified token amount from the Buyer to the escrow contract. The state shall transition from Created to Funded.",
              "text_id": "Pembeli akan mendanai escrow dengan memanggil fungsi fund(). Ini akan memindahkan jumlah token yang ditentukan dari Pembeli ke kontrak escrow. Status akan berubah dari Created ke Funded."
            },
            {
              "clause_id": "C4",
              "heading_en": "Release of Funds",
              "heading_id": "Pelepasan Dana",
              "text_en": "Upon confirmation of delivery, the funds shall be released to the Seller. The release() function may be called by the Buyer or the Arbiter. The state shall transition from Funded to Released.",
              "text_id": "Setelah konfirmasi pengiriman, dana akan dilepas ke Penjual. Fungsi release() dapat dipanggil oleh Pembeli atau Arbiter. Status akan berubah dari Funded ke Released."
            },
            {
              "clause_id": "C5",
              "heading_en": "Refund",
              "heading_id": "Pengembalian Dana",
              "text_en": "In the event of a dispute, the Arbiter may initiate a refund by calling the refund() function. This returns the funds to the Buyer. The state shall transition from Funded to Refunded.",
              "text_id": "Dalam hal sengketa, Arbiter dapat memulai pengembalian dana dengan memanggil fungsi refund(). Ini akan mengembalikan dana ke Pembeli. Status akan berubah dari Funded ke Refunded."
            },
            {
              "clause_id": "C6",
              "heading_en": "Reentrancy Protection",
              "heading_id": "Perlindungan Reentransi",
              "text_en": "All state-changing functions (fund, release, refund) shall be protected against reentrancy attacks using the ReentrancyGuard pattern (nonReentrant modifier).",
              "text_id": "Semua fungsi yang mengubah status (fund, release, refund) akan dilindungi dari serangan reentransi menggunakan pola ReentrancyGuard (modifier nonReentrant)."
            },
            {
              "clause_id": "C7",
              "heading_en": "Access Control",
              "heading_id": "Kontrol Akses",
              "text_en": "Only the Buyer may fund the escrow. Only the Buyer or Arbiter may release funds. Only the Arbiter may initiate a refund. All unauthorized calls shall revert.",
              "text_id": "Hanya Pembeli yang dapat mendanai escrow. Hanya Pembeli atau Arbiter yang dapat melepas dana. Hanya Arbiter yang dapat memulai pengembalian dana. Semua panggilan tidak sah akan ditolak (revert)."
            },
            {
              "clause_id": "C8",
              "heading_en": "Governing Law",
              "heading_id": "Hukum yang Berlaku",
              "text_en": "This agreement shall be governed by the laws of the Republic of Indonesia. The Arbiter's decision on-chain shall be considered binding as per the parties' agreement.",
              "text_id": "Perjanjian ini tunduk pada hukum Republik Indonesia. Keputusan Arbiter on-chain akan dianggap mengikat sesuai kesepakatan para pihak."
            }
          ]
        },
        "digital_twin_v3_matrix": {
          "version": "v3",
          "contract_type": "escrow",
          "mapping": [
            {
              "clause_id": "C1",
              "legal_concept": "Parties (Buyer, Seller, Arbiter) — Buyer deploys",
              "contract_function": "constructor(_seller, _arbiter, _token, _amount)",
              "contract_event": "N/A (constructor, no event)",
              "code_line": 39,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C2",
              "legal_concept": "Escrow parameters (seller, arbiter, token, amount, state=Created)",
              "contract_function": "constructor() → state = State.Created",
              "contract_event": "N/A (constructor)",
              "code_line": 44,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C3",
              "legal_concept": "Funding — Buyer deposits tokens, state → Funded",
              "contract_function": "fund()",
              "contract_event": "EscrowFunded (implied by state change)",
              "code_line": 47,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C4",
              "legal_concept": "Release — funds to Seller, state → Released",
              "contract_function": "release()",
              "contract_event": "EscrowReleased (implied by state change)",
              "code_line": 53,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C5",
              "legal_concept": "Refund — Arbiter returns funds to Buyer, state → Refunded",
              "contract_function": "refund()",
              "contract_event": "EscrowRefunded (implied by state change)",
              "code_line": 60,
              "verification": "on-chain",
              "status": "mapped"
            },
            {
              "clause_id": "C6",
              "legal_concept": "Reentrancy protection (nonReentrant on fund/release/refund)",
              "contract_function": "nonReentrant modifier on fund(), release(), refund()",
              "contract_event": "N/A (security pattern)",
              "code_line": 47,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C7",
              "legal_concept": "Access control (buyer-only fund, buyer/arbiter release, arbiter-only refund)",
              "contract_function": "require(msg.sender == buyer/arbiter) in fund/release/refund",
              "contract_event": "N/A (validation)",
              "code_line": 48,
              "verification": "static",
              "status": "mapped"
            },
            {
              "clause_id": "C8",
              "legal_concept": "Governing law (off-chain, Indonesia)",
              "contract_function": "N/A (legal metadata only)",
              "contract_event": "N/A",
              "code_line": null,
              "verification": "off-chain",
              "status": "legal-only"
            }
          ],
          "coverage": "7/8 clauses mapped to code. 1 clause is legal-only (off-chain)."
        },
        "raw_code_sol": {
          "filename": "Escrow.sol",
          "language": "Solidity",
          "compiler_version": "^0.8.20",
          "license": "MIT",
          "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/security/ReentrancyGuard.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract Escrow is ReentrancyGuard {\n    address public buyer;\n    address public seller;\n    address public arbiter;\n    IERC20 public token;\n    uint256 public amount;\n    enum State { Created, Funded, Released, Refunded }\n    State public state;\n\n    constructor(address _seller, address _arbiter, address _token, uint256 _amount) {\n        buyer = msg.sender;\n        seller = _seller;\n        arbiter = _arbiter;\n        token = IERC20(_token);\n        amount = _amount;\n        state = State.Created;\n    }\n\n    function fund() external nonReentrant {\n        require(msg.sender == buyer, \"Only buyer\");\n        require(state == State.Created, \"Not in Created state\");\n        token.transferFrom(buyer, address(this), amount);\n        state = State.Funded;\n    }\n\n    function release() external nonReentrant {\n        require(state == State.Funded, \"Not funded\");\n        require(msg.sender == buyer || msg.sender == arbiter, \"Not authorized\");\n        token.transfer(seller, amount);\n        state = State.Released;\n    }\n\n    function refund() external nonReentrant {\n        require(state == State.Funded, \"Not funded\");\n        require(msg.sender == arbiter, \"Only arbiter\");\n        token.transfer(buyer, amount);\n        state = State.Refunded;\n    }\n}"
        }
      },
      "static_analysis": {
        "target_latency_ms": 900,
        "artifact_count": 3,
        "clause_count": 8,
        "matrix_mappings": 8,
        "code_lines": 40,
        "audit_checks": [
          "SPDX-License-Identifier",
          "Solidity ^0.8.20",
          "ReentrancyGuard (nonReentrant)",
          "Access control (require msg.sender)",
          "State machine (enum State)",
          "ERC-20 token interaction (IERC20)"
        ]
      }
    }
  ]
}