syntax = "proto3"; package emerald; option java_package = "io.emeraldpay.api.proto"; message Chain { ChainRef type = 1; } enum ChainRef { CHAIN_UNSPECIFIED = 0; CHAIN_BITCOIN = 1; CHAIN_GRIN = 2; CHAIN_ETHEREUM = 100; CHAIN_ETHEREUM_CLASSIC = 101; // Sidechains and state channels CHAIN_LIGHTNING = 1001; // Testnets CHAIN_MORDEN = 10001; CHAIN_KOVAN = 10002; CHAIN_TESTNET_BITCOIN = 10003; CHAIN_FLOONET = 10004; // Non-standard starts from 50000 } message SingleAddress { string address = 1; } message XpubAddress { bytes xpub = 1; string path = 2; uint64 start = 3; uint64 limit = 4; } message MultiAddress { repeated SingleAddress addresses = 1; } message ReferenceAddress { uint64 refid = 1; } message AnyAddress { oneof addr_type { SingleAddress address_single = 1; MultiAddress address_multi = 2; XpubAddress address_xpub = 3; ReferenceAddress address_ref = 4; } } message Asset { ChainRef chain = 1; string code = 2; } message BlockInfo { uint64 height = 1; string block_id = 2; uint64 timestamp = 3; bytes weight = 4; }