Getting Started

Getting started with your own ADO. This document will show you how to create/transform your smart contract into an ADO.


If you're starting from scratch the best way to begin is to use the fork of the CosmWasm smart contract template. This can be found on our Github here.

Andromeda Standard Crate

Our crate can be found here.

Contract Messages

The message definitions for an ADO can be added to any existing message definitions using our andromeda-macros crate (this is also available via the andromeda-std crate, so if you're using our full suite you don't need to install this crate explicitly). There are three macros for instantiation, execute and query messages.

use andromeda_std::{andr_exec, andr_instantiate, andr_query};

pub struct InstantiateMsg {
    // ... Your instantiation variables

pub enum ExecuteMsg {
    // ... Your execute messages

pub enum QueryMsg {
    // ... Your query messages

These macros work by merging your existing message types with the available Andromeda message types. If you'd like to take a look at these messages you can see them here.


All interactions with the Andromeda ecosystem can be done via the ADOContract interface. To use this interface you must first import it from the andromeda-std crate.

use andromeda_std::ado_contract::ADOContract;

Once imported you can create an instance of the contract in your code execution like so:

let ado_contract = ADOContract::default();

From this struct we can access all of the state variables and various cross-contract calls that are needed by an ADO.

Last updated

Additional Resources