Chainlink Developers

Welcome to the Chainlink documentation site. You'll find comprehensive guides and documentation to help you start working with Chainlink as quickly as possible, as well as support if you get stuck. Click here for an introductory walkthrough on how to create a Chainlink request on the Ropsten test network!

Building on Chainlink? Click here to get started!

Get Started

External Adapters in Solidity

Using parameters with an External Adapter

As a contract creator, using an external adapter is no different than creating a request for any other job spec. You will simply need to know which parameters are supported by the adapter. for example, our BraveNewCoin Chainlink requires that the parameters endpoint, coin, and market are used. Notice the method below uses req.add to create a run parameter for each required value.

function requestMWAPrice(string _coin, string _market)
  returns (bytes32 requestId) 
  Chainlink.Request memory req = buildChainlinkRequest(SPEC_ID, this, this.fulfill.selector);
  req.add("endpoint", "mwa-historic");
  req.add("coin", _coin);
  req.add("market", _market);
  req.add("copyPath", "data.-1.1");
  req.addInt("times", 100);
  requestId = sendChainlinkRequest(req, oraclePayment);

Using the Copy adapter with an External Adapter

The Copy adapter allows for the same functionality of the JsonParse adapter but for getting data from the external adapter's response.

For example, if an adapter returns JSON data like what is below:

    "firstValue": "SomeValue",
    "details": {
        "close": "100",
        "open": "110",
        "current": "111"
    "other": "GetData"

And you wanted the value in the field "open", you would specify the path for the adapter to walk through the JSON object to your desired field.

"copyPath": ["details", "open"]

In Solidity, this would look like:

string[] memory path = new string[](2);
path[0] = "details";
path[1] = "open";
run.addStringArray("copyPath", path);

Or you can use dot-notation JSONPath to simplify it:

run.add("copyPath", "");

Updated 3 months ago

External Adapters in Solidity

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.