openapi: 3.1.1 info: title: EnergyGift version: '2.0' description: Gift parameters for P2P energy gifting. Enables a prosumer (gifter) to make an energy offer available at 0 price on the catalog, discoverable by the SHA-256 hash of the recipient's phone number and claimable via a secret shared out-of-band from the gifter to the recipient. components: schemas: EnergyGift: type: object additionalProperties: false required: - lookupHash - claimVerifier - expiresAt x-tags: - energy-trade - p2p-trading - gifting x-jsonld: '@context': ./context.jsonld '@type': EnergyGift properties: lookupHash: type: string pattern: ^[A-Fa-f0-9]{64}$ description: 'SHA-256 hash of the recipient''s phone number (E.164 format, e.g. +919876543210). Used for privacy-preserving discovery — the catalog can be searched by this hash so that only the intended recipient finds the gift offer. ' example: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 x-jsonld: '@id': lookupHash claimVerifier: type: string pattern: ^[A-Fa-f0-9]{64}$ description: 'SHA-256 hash of a claim secret shared out-of-band from the gifter to the recipient. The recipient proves ownership by presenting the pre-image (the original secret) which is hashed and compared to this value during claim validation. ' example: f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3b2a1f6e5 x-jsonld: '@id': claimVerifier expiresAt: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$ description: 'Gift expiration timestamp in UTC (ISO 8601 with Z suffix). After this time the gift offer is no longer claimable and may be removed from the catalog. ' example: '2025-07-01T00:00:00Z' x-jsonld: '@id': expiresAt