{
    "networks": {
        "list": {
            "NOLUS": {
                "currencies": {
                    "NLS": {
                        "native": {
                            "name": "Nolus",
                            "symbol": "unls",
                            "ticker": "NLS",
                            "decimal_digits": "6"
                        }
                    }
                }
            },
            "OSMOSIS": {
                "currencies": {
                    "OSMO": {
                        "native": {
                            "name": "Osmosis OSMO",
                            "symbol": "uosmo",
                            "ticker": "OSMO",
                            "decimal_digits": "6"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-osmo.svg"
                    },
                    "USDC_AXELAR": {
                        "ibc": {
                            "network": "AXELAR",
                            "currency": "USDC"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-usdc.svg"
                    },
                    "ATOM": {
                        "ibc": {
                            "network": "COSMOS_HUB",
                            "currency": "ATOM"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-atom.svg"
                    },
                    "NLS": {
                        "ibc": {
                            "network": "NOLUS",
                            "currency": "NLS"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-nls.svg"
                    },
                    "AKT": {
                        "ibc": {
                            "network": "AKASH",
                            "currency": "AKT"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-akt.svg"
                    },
                    "JUNO": {
                        "ibc": {
                            "network": "JUNO",
                            "currency": "JUNO"
                        },
                        "icon": "https://nolus.io/currencies/osmosis-juno.svg"
                    }
                },
                "amm_pools": [
                    {
                        "id": "12",
                        "token_0": "ATOM",
                        "token_1": "OSMO"
                    },
                    {
                        "id": "5",
                        "token_0": "OSMO",
                        "token_1": "USDC_AXELAR"
                    },
                    {
                        "id": "229",
                        "token_0": "NLS",
                        "token_1": "USDC_AXELAR"
                    },
                    {
                        "id": "18",
                        "token_0": "AKT",
                        "token_1": "OSMO"
                    }
                ]
            },
            "AXELAR": {
                "currencies": {
                    "USDC": {
                        "native": {
                            "name": "Usdc",
                            "symbol": "uausdc",
                            "ticker": "USDC",
                            "decimal_digits": "6"
                        }
                    }
                }
            },
            "COSMOS_HUB": {
                "currencies": {
                    "ATOM": {
                        "native": {
                            "name": "Cosmos Hub ATOM",
                            "symbol": "uatom",
                            "ticker": "ATOM",
                            "decimal_digits": "6"
                        }
                    }
                }
            },
            "AKASH": {
                "currencies": {
                    "AKT": {
                        "native": {
                            "name": "Akash",
                            "symbol": "uakt",
                            "ticker": "AKT",
                            "decimal_digits": "6"
                        }
                    }
                }
            },
            "JUNO": {
                "currencies": {
                    "JUNO": {
                        "native": {
                            "name": "Juno",
                            "symbol": "ujunox",
                            "ticker": "JUNO",
                            "decimal_digits": "6"
                        }
                    }
                }
            },
            "NEUTRON": {
                "currencies": {
                    "NTRN": {
                        "native": {
                            "name": "Neutron",
                            "symbol": "untrn",
                            "ticker": "NTRN",
                            "decimal_digits": "6"
                        },
                        "icon": "https://nolus.io/currencies/neutron-ntrn.svg"
                    },
                    "USDC_AXELAR": {
                        "ibc": {
                            "network": "AXELAR",
                            "currency": "USDC"
                        },
                        "icon": "https://nolus.io/currencies/neutron-usdc.svg"
                    },
                    "ATOM": {
                        "ibc": {
                            "network": "COSMOS_HUB",
                            "currency": "ATOM"
                        },
                        "icon": "https://nolus.io/currencies/neutron-atom.svg"
                    },
                    "NLS": {
                        "ibc": {
                            "network": "NOLUS",
                            "currency": "NLS"
                        },
                        "icon": "https://nolus.io/currencies/neutron-nls.svg"
                    }
                },
                "amm_pools": [
                    {
                        "id": "",
                        "token_0": "NTRN",
                        "token_1": "USDC_AXELAR"
                    },
                    {
                        "id": "",
                        "token_0": "ATOM",
                        "token_1": "USDC_AXELAR"
                    },
                    {
                        "id": "",
                        "token_0": "NTRN",
                        "token_1": "NLS"
                    }
                ]
            }
        },
        "channels": [
            {
                "a": {
                    "network": "NOLUS",
                    "ch": "channel-0"
                },
                "b": {
                    "network": "OSMOSIS",
                    "ch": "channel-1636"
                }
            },
            {
                "a": {
                    "network": "OSMOSIS",
                    "ch": "channel-3"
                },
                "b": {
                    "network": "AXELAR",
                    "ch": "channel-227"
                }
            },
            {
                "a": {
                    "network": "OSMOSIS",
                    "ch": "channel-73"
                },
                "b": {
                    "network": "AKASH",
                    "ch": "channel-1"
                }
            },
            {
                "a": {
                    "network": "COSMOS_HUB",
                    "ch": "channel-2500"
                },
                "b": {
                    "network": "OSMOSIS",
                    "ch": "channel-12"
                }
            },
            {
                "a": {
                    "network": "OSMOSIS",
                    "ch": "channel-1"
                },
                "b": {
                    "network": "JUNO",
                    "ch": "channel-190"
                }
            },
            {
                "a": {
                    "network": "NOLUS",
                    "ch": "channel-116"
                },
                "b": {
                    "network": "NEUTRON",
                    "ch": "channel-209"
                }
            },
            {
                "a": {
                    "network": "NEUTRON",
                    "ch": "channel-8"
                },
                "b": {
                    "network": "AXELAR",
                    "ch": "channel-237"
                }
            },
            {
                "a": {
                    "network": "NEUTRON",
                    "ch": "channel-1"
                },
                "b": {
                    "network": "COSMOS_HUB",
                    "ch": "channel-16"
                }
            }
        ]
    },
    "protocols": {
        "osmosis_axlusdc": {
            "DexNetwork": "OSMOSIS",
            "Lpn": {
                "dex_currency": "USDC_AXELAR"
            },
            "Lease": {
                "ATOM": {
                    "dex_currency": "ATOM",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "12",
                                "pool_token": "OSMO"
                            },
                            {
                                "pool_id": "5",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                },
                "OSMO": {
                    "dex_currency": "OSMO",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "5",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                },
                "AKT": {
                    "dex_currency": "AKT",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "18",
                                "pool_token": "OSMO"
                            },
                            {
                                "pool_id": "5",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                },
                "JUNO": {
                    "dex_currency": "JUNO",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "3",
                                "pool_token": "OSMO"
                            },
                            {
                                "pool_id": "5",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                }
            },
            "Native": {
                "dex_currency": "NLS",
                "swap_routes": [
                    [
                        {
                            "pool_id": "229",
                            "pool_token": "USDC_AXELAR"
                        }
                    ]
                ]
            }
        },
        "astroport_axlusdc": {
            "DexNetwork": "NEUTRON",
            "Lpn": {
                "dex_currency": "USDC_AXELAR"
            },
            "Lease": {
                "ATOM": {
                    "dex_currency": "ATOM",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                },
                "NTRN": {
                    "dex_currency": "NTRN",
                    "swap_routes": [
                        [
                            {
                                "pool_id": "",
                                "pool_token": "USDC_AXELAR"
                            }
                        ]
                    ]
                }
            },
            "Native": {
                "dex_currency": "NLS",
                "swap_routes": [
                    [
                        {
                            "pool_id": "",
                            "pool_token": "NTRN"
                        },
                        {
                            "pool_id": "",
                            "pool_token": "USDC_AXELAR"
                        }
                    ]
                ]
            }
        }
    },
    "definitions": [
        "This is the descriptor of the network topology, currencies and their usage at the Nolus AMM protocol.",
        "",
        "The network topology is represented as a collection of networks and the ICS-20 transfer channels that connect them.",
        "Some networks may have DEX services available. Their description contain the pools of interest for the Nolus AMM protocol.",
        "",
        "On a given network, each currency is identified by its 'ticker'. A currency with ticker NLS on a network NOLUS is required.",
        "The Nolus network description should not contain other currencies. They are defined in the 'protocols' object.",
        "",
        "A currency is either native or ibc on a network. In the latter case it points to the 'burning' currency residing at a network",
        "that is at one hop distance. In the former case it is described with name, symbol and number of decimal digits.",
        "",
        "The 'name' is a human-readable description of the currency",
        "",
        "The 'symbol' is the base denomination of the currency at its native chain.",
        "",
        "The 'decimal_digits' value represents the number of decimal digits this denomination has.",
        "For example, '6' for OSMO means 10^8 units of its base denomination uosmo are equal to 1 OSMO",
        "",
        "The 'icon' is an optional currency attribute that provides a visual representation of the currency at that network and the others",
        "where the currency might be sent over ibc. In other workds, if there is no icon attribute of an ibc originating currency then ",
        "the icon is derived from the network and currency it points to. This might be applied multiple times traversing the ibc path ",
        "toward its native network.",
        "",
        "The currency symbol at a given network is either equal to the currency 'symbol' if it is a native for that network, or ",
        "'ibc/' + sha256('transfer' + '/' + ch[0] + '/' + ... + 'transfer' + '/' + ch[k] + '/' + symbol) if it is a native on ",
        "network 'K' reachable through a sequence of channels with names 'ch[0]', 'ch[1]' ... 'ch[k]' at their minting side.",
        "More info is available [here](https://github.com/cosmos/ibc-go/blob/c86d27fc280cfb342a9e4689b381e5823441b694/modules/apps/transfer/types/trace.go#L19).",
        "",
        "The usage of the currencies at the Nolus AMM protocol is described with a dictionary of 'protocols' JSON objects",
        "The key has the structure <dex>_<lpn>. The first property of a protocol, 'DexNetwork', is the name of the network it operates on.",
        "Each currency is classified as either Lpn, Lease or Native. Lpn contains the Lpp currencies. Lease currencies are the ones ",
        "customers may open lease in. Native defines the native currency for the Nolus AMM protocol.",
        "Leases may be paid with any of the provided currencies.",
        "",
        "Each of the currencies should provide in the 'swap_routes' array a separate swapping route to each of the Lpn currencies.",
        "That holds true for the Lpn currencies, for example, if there are three Lpn items then each of them should provide two paths, ",
        "each ending to some of the other currency",
        "Routes should refer to pools at the closest DEX common for the currency and its Lpn. Nolus AMM uses the swapping routes ",
        "to obtain prices and order swap transactions.",
        "Please note, that some pools may not be limited to operate only on two currencies, therefore DEX APIs and",
        "Nolus AMM swapping routes always specify the target currency within the pool."
    ]
}
