Skip to main content

Atlas Integration

Atlas was developed in collaboration with Genius Yield, MLabs, Well-Typed and Plank. Atlas is a Haskell-based PAB that took inspiration from IOG PAB and improved on its limitations. It offers an intuitive type system that abstracts away the complexity around building transactions, balancing UTxOs and interfacing with Plutus contracts. In addition, it supports modular data providers and leverages Vasil upgrade features such as reference inputs and inline datums. Finally, it provides a testing framework for debugging your application in a simulated environment.

Easily build transactions

Use an intuitive API to abstract away the complexity around building transactions, balancing UTxOs, and interfacing with Plutus smart contracts.

Leverage first-class Haskell

Avoid code duplication between on-chain and off-chain code, interoperate with advanced functionalities offered by IOG's Cardano/Plutus libraries, and easily convert between Atlas and Cardano/Plutus types.

Utilize modular data providers

Query ledger state information from Maestro, a local node or Cardano DB Sync. You can also build and contribute your own data provider.

Test extensively

Use Atlas' test harness to write realistic unit tests that correspond to on-chain behavior, and execute integration tests against the cardano node in a private network.

Stay up to date

Benefit from Cardano's latest innovations such as Reference Inputs, Inline Datums and Reference Scripts.

Maestro Data Provider

Atlas must be configured with a data provider in order to interface with Cardano. Users have the choice to host their own node locally or use a managed service such as Maestro.

In your project create a config.json file with the following format:

config.json
{
"coreProvider": { "maestroToken": "<Your-API-Key>" },
"networkId": "testnet-preprod",
"logging": [{ "type": { "tag": "stderr" }, "severity": "Debug", "verbosity": "V2" }],
"utxoCacheEnable": false
}

JSON keys definition:

  • coreProvider: Define your data provider (Maestro or local node) and pass in your API key.
  • networkId: Define your network and must be one of mainnet, testnet-preprod, testnet-preview, testnet (for legacy testnet) & privnet (for local private network).
  • logging: Define your Katip logging configs.
  • utxoCacheEnable: Enable cache using Data.Cache. Queries related to fetching UTxOs won't generate call to provider if the entry exists in cache.