Specialized vocabulary for global trade of agricultural commodities and traceable humanitarian donation programs: transparency, traceability, and financing. Enables semantic interoperability between ERP, DKG, and blockchain.
Compatible with OriginTrail DKG v8 and public/private assertion separation.
Complete trade transaction between parties. Subclass: skyocean:CommodityTrade.
DetailsRecords of trade events on the blockchain.
Trade financing arrangements and token positions.
Added v2.1.0 — the richer classification of payment signal sources and institutional attestations lives here in the DKG, keeping the on-chain contract minimal.
An independent observation by an operational institution (port, customs, inspection, carrier, condition monitor, payment rail, financial institution, or human verifier) about a trade event.
A record of a signal confirming payment occurred — mobile money, national switch, regional settlement, SWIFT, LC, CAD, on-chain escrow, or human-attested. Subclass of InstitutionalAttestation.
The aggregate cross-validated state of a trade, built from the convergence of independent institutional attestations. Carries the computed verification strength.
Added v2.1.1 — cargo insurance is a first-class element of every trade. The audit trail follows a damaged-cargo scenario from incident → surveyor attestation → claim filing → claim approval → payout.
A cargo or marine insurance policy bound to one or more trades. Subclass of Document. Carries policy number, insurer, coverage type, sum insured, deductible, effective and expiry dates.
An event affecting cargo that may trigger an insurance claim — damage, loss, theft, contamination, delay, casualty. Captures location, date, affected quantity, loss extent, and the surveyor attestation that grounds it.
A formal claim filed against an InsurancePolicy in respect of a CargoIncident. Carries claim status, claimed amount, payout amount and date, with references to both the policy and the incident.
Added v2.1.2 — logistics record, trade-level extensions (shipper, corridor, funding-branch, payment-trigger), on-chain anchoring, financing extensions, private-layer wrappers, and the trade: sub-namespace. Semantics align with GS1 / DCSA where applicable; canonical mapping reserved for a future major version.
A summary of the logistics for a shipping leg — vessel, voyage, carrier, loading / discharge ports, BL number, container count and type. Attaches to a Trade via skyocean:logistics.
A typeable marker class indicating that a Trade KA is published as a public-overview assertion (paired with a private TradePrivateData KA). Used as a secondary @type alongside CommodityTrade.
trade: sub-namespaceHigh-level commodity attributes (trade:quantity, trade:origin, trade:destination) and timeline dates (trade:expectedShipmentDate, trade:expectedArrivalDate, trade:expectedSettlementDate, trade:originatedAt) under https://skyocean.io/ontology/trade/.
Extension namespace: https://skyocean.io/ontology/donation/
A bounded humanitarian-aid campaign with a packing list, target amount, and delivery timeline. Anchored by a backend-issued donation:campaignId; funding sources (wallets and/or bank accounts) are attached to the campaign rather than acting as its anchor.
A single donor contribution to a campaign, via stablecoin or bank transfer. Links to the campaign KA.
A delivery event recording kits distributed to beneficiaries, verified by state officials on the ground.
Private assertion data for a campaign: supplier details, distribution plan, bank account, and access permissions.
Real-time signals from IoT sensors, partner confirmations, or field reports linked to a campaign.
Specification of a kit's contents — food, medicine, prevention items — with quantities and sourcing details.
Added v2.1.3 — six new classes for granular operational signals (vessel position, production plot, cold-chain logging, donation aggregate receipt, distribution observation, last-mile acknowledgment) plus ~20 new properties used in the private layer of Document KAs (logistics, treatment, EDIFACT, SWIFT, insurance, EUDR, cold-chain, donation aggregation).
A point-in-time vessel position read (lat/lon/SOG/COG, timestamp, source AIS/SafeSeaNet). Series-style attestation produced by carrier or condition monitor; aggregated into the in-transit verification feed.
EUDR plot record — geometry (WKT polygon or GeoJSON), country of production, deforestation-cut-off date, and sourcing-location reference. Attaches to a Document KA carrying the EUDR Due Diligence Statement.
Continuous cold-chain telemetry — sensor reference, temperature range, deviation events, container/voyage scope. Used by donation campaigns shipping cold-chain medicines and by perishable trade corridors.
Aggregated record of donor contributions for a campaign or wave — total amount, contributor count, channel mix (stablecoin / SEPA / SWIFT). Public-tier counts only; per-donor identities live in private contribution KAs.
Independent observer's record of a distribution event (location, date, kit count handed out, observer DID, attestation hash). Pairs with a donation:DonationDistribution KA for verification.
Last-mile recipient acknowledgment — distributor DID, recipient role (community lead / clinic / school), kit count, optional digital signature. Closes the loop on supply-chain visibility.
New properties surfaced on Document KAs, organized by domain. Most live in the document's private assertion (auth-token-gated); a few are public-tier (issuer DID, attestor role, document number, doc type).
| Category | Properties |
|---|---|
| Logistics | containerNumber, sealNumber, imoNumber, mmsiNumber, vesselName, bookingReference, grossWeight, netWeight |
| Treatment & Inspection | treatmentMethod, samplingMethod, qualityParameters, lotReference, hsCode |
| EDIFACT | edifactMessageType, edifactStatus |
| SWIFT | swiftUETR, senderReference, beneficiaryReference |
| Insurance | insuredValue, premiumAmount |
| EUDR | via skyocean:ProductionPlot (plot geometry, country of production, deforestation cut-off date) |
| Cold-Chain | via skyocean:ColdChainLog (sensor reference, temperature range, deviation events) |
| Donations | via donation:DonorAggregateReceipt, donation:DistributionObservation, donation:LastMileAcknowledgment |
| Property | Domain | Range | Description |
|---|---|---|---|
| skyocean:tradeStatus | Trade | xsd:string | Trade transaction status |
| skyocean:financingStatus | Trade | xsd:string | Financing status |
| skyocean:documentStatus | Document | xsd:string | Document status |
| skyocean:verificationStatus | Document | xsd:string | Verification status |
| skyocean:role | TradeParty | xsd:string | Entity role |
| skyocean:walletAddress | TradeParty | xsd:string | Blockchain wallet |
| skyocean:financierProfitRate | FinancingRecord | xsd:decimal | Financier profit rate |
| Verification & Convergence Properties (v2.1.0) | |||
| skyocean:attestorType | InstitutionalAttestation | xsd:string | Category of institution (PortAuthority, CustomsAuthority, InspectionAgency, Carrier, ConditionMonitor, PaymentRail, FinancialInstitution, Human) |
| skyocean:attestorIdentity | InstitutionalAttestation | xsd:string | Name of the specific attesting institution |
| skyocean:attestationType | InstitutionalAttestation | xsd:string | Nature of the observation (VesselCall, CargoHandling, CustomsClearance, QualityInspection, ConditionReading, Departure, PaymentConfirmation) |
| skyocean:attestationTimestamp | InstitutionalAttestation | xsd:dateTime | Time of the observation |
| skyocean:attestationSignature | InstitutionalAttestation | xsd:string | Integrity hash or signature of the payload |
| skyocean:tradeRef | InstitutionalAttestation | xsd:anyURI | Link to the Trade KA this attestation feeds |
| skyocean:sourceType | PaymentSource | xsd:string | MobileMoney, NationalSwitch, RegionalSettlement, SWIFT, LetterOfCredit, CashAgainstDocuments, OnChainEscrow, HumanAttested |
| skyocean:sourceProvider | PaymentSource | xsd:string | Specific rail or network (MTN MoMo, GhIPSS, PAPSS, etc.) |
| skyocean:confirmationReference | PaymentSource | xsd:string | External txn ID or reference |
| skyocean:confirmedAmount | PaymentSource | schema:MonetaryAmount | Settled amount as reported by the source |
| skyocean:attestationCount | ConvergenceRecord | xsd:integer | Total attestations linked to the trade |
| skyocean:independentAttestorCount | ConvergenceRecord | xsd:integer | Distinct attesting institutions |
| skyocean:verificationStrength | ConvergenceRecord | xsd:decimal | Computed score (0.0–1.0) |
| skyocean:consensusStatus | ConvergenceRecord | xsd:string | Insufficient, Partial, Strong, Full |
| Donation Properties (donation: namespace, v2.1.0) | |||
| donation:campaignId | DonationCampaign | xsd:string | Canonical anchor — backend-issued campaign ID (e.g. CMP-2026-SUD-001) |
| donation:status | DonationCampaign | xsd:string | Campaign status (Active, Funded, Procuring, Shipping, Delivered) |
| donation:targetAmount | DonationCampaign | schema:MonetaryAmount | Funding goal for the campaign |
| donation:currentAmount | DonationCampaign | schema:MonetaryAmount | Current funds received |
| donation:fundingSource | DonationCampaign | skyocean:PaymentSource | One or more funding sources — wallet(s) and/or bank account(s) (Revolut, SEPA, SWIFT, stablecoin) |
| donation:campaignWallet | DonationCampaign | xsd:string | Optional. EVM wallet address — one possible funding source, never the anchor |
| donation:consignedTo | DonationCampaign | skyocean:Party | Skyocean in-region entity (e.g. Skyocean Sudan) that receives the goods on consignment |
| donation:packingList | DonationCampaign | donation:DonationKit | Campaign packing list (kits, quantities, specs) — analog to trade agreement in core flow |
| donation:costSummary | DonationCampaign | schema:MonetaryAmount | Public. Top-level cost summary (kits vs operations) |
| donation:operationalCostBreakdown | DonationCampaignPrivate | schema:MonetaryAmount | Private. Detailed ops breakdown (freight, customs, insurance, last-mile, platform) |
| donation:contributorCount | DonationCampaign | xsd:integer | Number of contributors |
| donation:targetBeneficiaries | DonationCampaign | xsd:integer | Target number of families served |
| donation:region | DonationCampaign | xsd:string | Target distribution region |
| donation:campaignRef | DonationContribution, DonationDistribution, SupplyChainSignal | xsd:string | Reference to parent campaign by donation:campaignId (and optionally KA UAL) |
| donation:method | DonationContribution | xsd:string | Payment rail (stablecoin, revolut, sepa, swift) |
| donation:paymentSource | DonationContribution | skyocean:PaymentSource | Rail-specific payment record (provider, reference, institutional flag) |
| donation:onChainTxHash | DonationContribution | xsd:string | On-chain transaction hash |
| donation:kycRef | DonationContribution | xsd:string | KYC attestation reference — required for every contribution (no anonymous donations) |
| donation:deliveryStatus | DonationDistribution | xsd:string | Public. Delivered / partially-delivered / not-delivered + recipient category |
| donation:familiesServed | DonationDistribution | xsd:integer | Private. Number of families who received kits |
| donation:kitsDistributed | DonationDistribution | xsd:integer | Private. Number of kits delivered |
| donation:verifiedBy | DonationDistribution | skyocean:Party | State official, NGO or partner witness |
| donation:attestationRef | DonationDistribution | skyocean:InstitutionalAttestation | Reference to an independent institutional attestation feeding the convergence evaluator |
| donation:signalType | SupplyChainSignal | xsd:string | Signal type (contribution, procurement, shipment, customs, handover, distribution) |
Values for skyocean:sourceType. The on-chain contract only knows CAD / LetterOfCredit / OnChainEscrow; this richer set lives in the DKG.
Values for skyocean:attestorType. Each attestation comes from one of these categories.
Values for skyocean:consensusStatus. Derived from verificationStrength and the mix of independent attestors.
Values for skyocean:attestationType.
"@context": {
"schema": "http://schema.org/",
"skyocean": "https://skyocean.io/ontology/",
"xsd": "http://www.w3.org/2001/XMLSchema#"
},
"@id": "urn:skyocean:trade:PO-12345678",
"@type": ["skyocean:Trade", "skyocean:CommodityTrade"],
"schema:identifier": "PO-12345678",
"schema:name": "Soybean Shipment PO-12345678",
"skyocean:tradeStatus": "Pending",
"skyocean:financingStatus": "NotStarted"
}
"@context": {
"schema": "http://schema.org/",
"skyocean": "https://skyocean.io/ontology/"
},
"@id": "urn:skyocean:paymentsource:MOMO-2026-0042",
"@type": ["skyocean:PaymentSource", "skyocean:InstitutionalAttestation"],
"skyocean:tradeRef": "urn:skyocean:trade:PO-12345678",
"skyocean:attestorType": "PaymentRail",
"skyocean:attestorIdentity": "MTN MoMo Ghana",
"skyocean:attestationType": "PaymentConfirmation",
"skyocean:sourceType": "MobileMoney",
"skyocean:sourceProvider": "MTN MoMo",
"skyocean:confirmationReference": "MOMO-TXN-8846201",
"skyocean:confirmedAmount": { "schema:value": 185000, "schema:currency": "USD" },
"skyocean:attestationTimestamp": "2026-04-02T09:00:00Z"
}
"@context": {
"schema": "http://schema.org/",
"skyocean": "https://skyocean.io/ontology/",
"donation": "https://skyocean.io/ontology/donation/"
},
"@id": "urn:skyocean:donation:CMP-2026-SUD-001",
"@type": ["donation:DonationCampaign"],
"donation:campaignId": "CMP-2026-SUD-001",
"schema:name": "Sudan Relief — Food & Medicine Kits (Batch 001)",
"donation:status": "Active",
"donation:targetAmount": { "schema:value": 100000, "schema:currency": "EUR" },
"donation:currentAmount": { "schema:value": 47500, "schema:currency": "EUR" },
"donation:consignedTo": "Skyocean Sudan",
"donation:fundingSource": [
{ "skyocean:rail": "stablecoin", "skyocean:provider": "Polygon", "skyocean:reference": "0xabc...def" },
{ "skyocean:rail": "sepa", "skyocean:provider": "Revolut", "skyocean:reference": "LT00 0000 0000 0000 0001" }
],
"donation:costSummary": [
{ "schema:name": "Kits", "schema:value": 75000, "schema:currency": "EUR" },
{ "schema:name": "Operations", "schema:value": 25000, "schema:currency": "EUR" }
],
"donation:contributorCount": 38,
"donation:targetBeneficiaries": 500,
"donation:region": "Khartoum State, Sudan"
}