Home

Jonathan Harris edited this page Jan 15, 2017 · 26 revisions
Clone this wiki locally

What is EDDN?

The Elite: Dangerous Data Network is a system for willing Commanders to share dynamic data about the galaxy with others. By pooling data in a common format, tools and analyses can be produced that add an even greater depth and vibrancy to the in-game universe.

EDDN is not run by or affiliated with Frontier Developments. Hosting has been very generously provided by Vivio Technologies.

Using EDDN

How you use EDDN depends on who you are:

Trading software users

If you use one of the following trading tools then you're already taking advantage of data supplied by the EDDN network:

Tool Commander
eddb themroc
ED-TD AnthorNet
Elite Trade Net Joe113
Inara Artie
Maddavo's Market Share maddavo
Roguey's Roguey
Thrudd's Trading Tools Thrudd
ED-Intelligent Boardcomputer Extension Duke Jones
edda troydm

If you're playing E:D on PC or Mac please consider running one of the following apps to contribute data to EDDN for your own and others' benefit:

Tool Commander
E:D Market Connector Otis B.
ED-Intelligent Boardcomputer Extension Duke Jones
edce-client Andargor
Elite G19s Companion app MagicMau
Elite Virtual Assistant
Trade Dangerous + EDAPI orphu

If your preferred trading tool or app isn't on these lists ask the developer to incorporate support for EDDN!

App developers (data uploaders)

To upload market data to EDDN, you'll need to make a POST request to the URL:

The body of the request should be a JSON-format message corresponding to one of the supported schemas, e.g.:

{
  "$schemaRef": "http://schemas.elite-markets.net/eddn/shipyard/2",
  "header": {
    "uploaderID": "Bill",
    "softwareName": "My excellent app",
    "softwareVersion": "0.0.1"
  },
  "message": {
    "systemName": "Munfayl",
    "stationName": "Samson",
    "timestamp": "2016-10-01T16:01:18Z",
    "ships": [
      "Adder",
      "Asp_Scout",
      "CobraMkIII",
      "Python",
      "SideWinder",
      "Viper"
    ]
  }
}

There are two readily accessible sources for this data; the Companion API which supplies data that can be used for the commodity, outfitting and shipyard schemas and (from E:D 2.2) the Journal which supplies data that can be used for the journal and blackmarket schemas.

EDDN is intended to transport generic data not specific to any particular Cmdr and to reflect the data that a player would see in-game in station services or the local map. To that end, uploading apps SHOULD ensure that messages do not contain any Cmdr-specific data (other than uploaderID). In practice this means:

  • commodity: Skip commodities with "categoryname": "NonMarketable" (i.e. limpets - not purchasable in station market).
  • outfitting: Skip items whose availability depends on the Cmdr's status rather than on the station. Namely:
    • Items that aren't weapons/utilities (Hpt_*), standard/internal modules (Int_*) or armour (*_Armour_*) (i.e. bobbleheads, decals, paintjobs and shipkits).
    • Items that have a non-null "sku" property, unless its "ELITE_HORIZONS_V_PLANETARY_LANDINGS" (i.e. PowerPlay items).
    • The "Int_PlanetApproachSuite" module (not purchasable in station outfitting).
  • shipyard: Include ships listed in the "unavailable_list" property (i.e. available at this station, but not to this Cmdr).
  • journal/docked: Strip out the "CockpitBreach" property.
  • journal/FDSJump: Strip out the "BoostUsed", "FuelLevel", "FuelUsed" and "JumpDist" properties.

Some of these requirements are also enforced by the schemas.

Trading tool developers (data consumers)

EDDN provides a continuous stream of information from uploaders. To use this data you'll need to connect to the stream using ZeroMQ (a library is probably available for your language of choice).

Currently available relays:

  • tcp://eddn-relay.elite-markets.net:9500

You'll need to use your ZeroMQ library to connect to that stream, then zlib-decompress (as simple as zlib.decompress(message) in Python!) the messages as they come over the stream. And that's all - you then have access to all the data being uploaded to the network, almost instantly.

Consumers of data SHOULD examine the $schemaRef property to determine what kind of message has been received, and what if any processing to carry out on the data.

Sample applications are available. These simply dump the data to the console - you'll probably want to do something more exciting with it!

Contact