# Rubin Documentation > Rubin (rubin.trade) is a decentralized perpetual futures exchange on Rubin Chain, a sovereign proof-of-stake chain with EVM support. Trading and account operations for AI agents go through the MCP server at https://mcp.testnet.rubin.trade/mcp (mainnet: https://mcp.mainnet.rubin.trade/mcp). ## Docs - [Contacts](/contacts): Questions, integration requests, listings, bug reports — reach the team through either channel: - [TODO](/todo) - [Bridge Contracts](/bridge/contracts): Rubin accepts USDC collateral deposited through native bridges on **Ethereum** and **Arbitrum**. On each source chain the deposited USDC is held by the Rubin bridge contract; validators observe the deposit, wait for finality, and credit your Rubin main account. - [IBC Transfers](/bridge/ibc): Besides the Ethereum and Arbitrum [bridge contracts](/bridge/contracts), Rubin is connected to the Cosmos ecosystem over IBC. USDC arrives from [Noble](https://www.noble.xyz/) across a standard ICS-20 transfer channel. - [Indexer API](/indexer-client): The Indexer is a high-availability system designed to provide structured data. It serves both over its [HTTP/REST API](/indexer-client/http) for spontaneous requests and over its [WebSockets API](/indexer-client/websockets) for continuous data streaming. - [AI Agents & MCP](/interaction/ai-agents): Rubin ships an official [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server so that AI agents can trade and read account data without hand-rolling REST calls. The MCP server signs transactions with a scoped on-chain trading key, verifies fills, and enforces safety limits that raw REST cannot. - [Connecting to Rubin](/interaction/endpoints): Rubin provides two networks for trading: a **mainnet**, and a **testnet**: - [Guide](/interaction) - [Wallet Setup](/interaction/wallet-setup): To manage your accounts, issue orders, and perform other operations that are required to be signed, a Wallet is required. To instantiate a Wallet, you must first have your associated **mnemonic**. - [Addresses: EVM & Native](/concepts/addresses): Every Rubin account has exactly one address — the same 20 bytes — shown in two encodings: - [Node API](/node-client): Nodes are the servers that manage and maintain the Rubin network. Trading transactions are broadcast to these, which then are evaluated and eventually comitted into state by the underlying consensus mechanim. It serves both a [Private API](/node-client/private), which receives transactions signed by the user, and a [Public API](/node-client/public), available for different data queries. The [Permissioned Keys API](/node-client/authenticators) is also available. - [Network Constants](/nodes/network-constants): **mainnet**: `ritbit-mainnet` - [Resources](/nodes/resources): Genesis files, peer lists and per-network configuration live in the `networks` repository: - [Security](/policies/security): The upstream open-source protocol that Rubin Chain is built on has been audited by the [Informal Systems](https://informal.systems/) team. - [Terms-of-Use & Privacy Policy](/policies/terms): By using, recording, referencing, or downloading (i.e., any “action”) any information contained on this page or in any Rubin Lab ("Rubin") database or documentation, you hereby and thereby agree to the [v4 Terms of Use](https://rubin.trade/terms) and [Privacy Policy](https://rubin.trade/privacy) governing such information, and you agree that such action establishes a binding agreement between you and Rubin. - [HTTP API](/indexer-client/http) - [WebSockets API](/indexer-client/websockets/intro): The WebSockets API provides data feeds providing the trader real-time information. - [Account](/types/account): `address`: [Address] - [AccountAuthenticator](/types/account_authenticator): `id`: [u64] `type`: [string] `config`: [bytes] - [AccountState](/types/account_state): `address`: [string] `timestamp_nonce_details`: [TimestampNonceDetails] - [AccountStateRequest](/types/account_state_request): *No fields.* - [AccountWithParentSubaccountNumber](/types/account_with_parent_subaccount_number): `address`: [Address] - [AddBridgeEventsRequest](/types/add_bridge_events_request): `bridge_events`: [BridgeEvent][] `is_finalized`: [bool][] `skipped_events`: [SkippedBridgeEvent][] - [AddBridgeEventsResponse](/types/add_bridge_events_response): *No fields.* - [AddWithdrawalSignaturesRequest](/types/add_withdrawal_signatures_request): `signatures`: [WithdrawalSignatureProto][] - [AddWithdrawalSignaturesResponse](/types/add_withdrawal_signatures_response): *No fields.* - [Address](/types/address): An address of an account, represented by a string. - [AffiliateInfoRequest](/types/affiliate_info_request): `address`: [string] - [AffiliateInfoResponse](/types/affiliate_info_response): `is_whitelisted`: [bool] `tier`: [u32] `fee_share_ppm`: [u32] `referred_volume`: [bytes] `staked_amount`: [bytes] `referred_volume_30d_rolling`: [bytes] - [AffiliateOverrides](/types/affiliate_overrides): `addresses`: [string][] - [AffiliateParameters](/types/affiliate_parameters): `maximum_30d_attributable_volume_per_referred_user_quote_quantums`: [u64] `referee_minimum_fee_tier_idx`: [u32] `maximum_30d_affiliate_revenue_per_referred_user_quote_quantums`: [u64] - [AffiliateTiers](/types/affiliate_tiers): `tiers`: [Tier][] - [AffiliateWhitelist](/types/affiliate_whitelist): `tiers`: [Tier][] - [AggregatedWithdrawal](/types/aggregated_withdrawal): `withdrawal`: [Withdrawal] `signatures`: [WithdrawalSignature][] `signature_count`: [u64] `required_signatures`: [u64] `ready_for_relay`: [bool] `ready_at_block`: [i64] `assigned_relayer`: [string] - [AllAffiliateTiersRequest](/types/all_affiliate_tiers_request): *No fields.* - [AllDowntimeInfo](/types/all_downtime_info): `infos`: [DowntimeInfo][] - [ApiOrderStatus](/types/api_order_status): `ApiOrderStatus` is an enum consists of the following values - [ApiTimeInForce](/types/api_time_in_force): `ApiTimeInForce` is an enum consists of the following values - [Asset](/types/asset): `id`: [u32] `symbol`: [string] `denom`: [string] `denom_exponent`: [i32] `has_market`: [bool] `market_id`: [u32] `atomic_resolution`: [i32] - [AssetChainDailyLimitConfig](/types/asset_chain_daily_limit_config): `chain_id`: [u64] `asset_id`: [u32] `daily_limit`: [string] - [AssetChainWithdrawalDailyUsage](/types/asset_chain_withdrawal_daily_usage): `chain_id`: [u64] `asset_id`: [u32] `daily_used`: [string] `last_reset`: [i64] - [AssetId](/types/asset_id): A string identifier representing a specific asset (e.g., "USDC"). Used to uniquely reference assets within the system. - [AssetId](/types/asset_id_node): A `u32` integer identifier representing a specific asset (e.g., USDC, RIT token). See more on [Perpetuals and Assets](/concepts/trading/assets). - [AssetPosition](/types/asset_position): `asset_id`: [u32] - [AssetPositionResponseObject](/types/asset_position_response_object): `symbol`: [Symbol] - [AssetPositionSubaccountMessage](/types/asset_position_subaccount_message): Update sub-message received on the `v4_subaccounts` channel. - [AssetPositionsMap](/types/asset_positions_map): Key: [Ticker] - [AssetWithdrawalConfig](/types/asset_withdrawal_config): `asset_id`: [u32] `large_withdrawal_threshold`: [string] `timelock_blocks`: [u64] `withdrawal_fee`: [Coin][] - [Authenticator](/types/authenticator): `Authenticator` is an enum represented by the following values - [AuthenticatorData](/types/authenticator_data): `address`: [string] `authenticators`: [AccountAuthenticator][] - [Bad Request](/types/bad-request): [https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1](https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1) - [BaseAccount](/types/base_account): `address`: string - [BigDecimal](/types/big_decimal): A high-precision decimal number type used to represent values requiring exact precision, such as prices or quantities. Typically serialized as a string to avoid precision loss. - [Block](/types/block): \`header: [Header] - [BlockHeightInitialMessage](/types/block_height_initial_message): Initial message received on the `v4_block_height` channel. - [BlockHeightMessage](/types/block_height_message): `block_height`: [string] `time`: [string] `version`: [string] - [BlockHeightUpdateMessage](/types/block_height_update_message): Update message received on the `v4_block_height` channel. - [BlockId](/types/block_id): `hash`: [u8] ⛁ - [BlockInfo](/types/block_info): `height`: [u32] `timestamp`: [Timestamp] - [BlockMessageIds](/types/block_message_ids): `ids`: [u32][] - [BlockRateLimitConfiguration](/types/block_rate_limit_configuration): `max_short_term_orders_per_n_blocks`: [MaxPerNBlocksRateLimit][] `max_stateful_orders_per_n_blocks`: [MaxPerNBlocksRateLimit][] `max_leverage_updates_per_n_blocks`: [MaxPerNBlocksRateLimit][] - [BlockStats](/types/block_stats): `fills`: [Fill][] - [BridgeEvent](/types/bridge_event): `id`: [u32] - [BridgeEventInfo](/types/bridge_event_info): `next_id`: [u32] `eth_block_height`: [u64] - [BridgeOperation](/types/bridge_operation): *No fields.* - [BroadcastMode](/types/broadcast_mode): `BroadcastMode` is an enum consists of the following values: - [BuilderCodeParameters](/types/builder_code_parameters): Represents the metadata for the partner or builder of an order. This allows them to specify a fee for providing their service which will be paid out in the event of an order fill. - [CachedStakedBaseTokens](/types/cached_staked_base_tokens): `staked_base_tokens`: [bytes] `cached_at`: [i64] - [CandleMessage](/types/candle_message): `contents`: [string] `clob_pair_id`: [string] `resolution`: [Resolution] `version`: [string] - [CandleResolution](/types/candle_resolution): `CandleResolution` is an enum represented by the following values - [CandleResponseObject](/types/candle_response_object): `ticker`: [Ticker] - [CandlesInitialMessage](/types/candles_initial_message): Initial message received on the `v4_candles` channel. - [CandlesUpdateMessage](/types/candles_update_message): Update message received on the `v4_candles` channel. - [ChainBridgeEventInfo](/types/chain_bridge_event_info): `chain_id`: [u64] `info`: [BridgeEventInfo] - [ChainConfig](/types/chain_config): `chain_id`: [u64] `bridge_address`: [string] `token_mappings`: [TokenMapping][] - [ChainWithdrawalConfig](/types/chain_withdrawal_config): `chain_id`: [u64] `asset_configs`: [AssetWithdrawalConfig][] - [ChainWithdrawalConfirmationInfo](/types/chain_withdrawal_confirmation_info): `chain_id`: [u64] `info`: [WithdrawalConfirmationInfo] - [ChainWithdrawalState](/types/chain_withdrawal_state): `chain_id`: [u64] `next_id`: [u64] - [ClientId](/types/client_id): `ClientId` is represented by [u32] - [ClientMetadata](/types/client_metadata): A wrapper around a [u32] value used to attach optional, client-defined metadata to orders or fills. Useful for tracking or categorizing actions on the client side. - [ClobMatch](/types/clob_match): *No fields.* - [ClobMidPrice](/types/clob_mid_price): `clob_pair`: [ClobPair] `subticks`: [u64] - [ClobPair](/types/clob_pair): `id`: [u32] - [ClobPairId](/types/clob_pair_id): A CLOB (Central Limit Order Book) Pair ID refers to the identifier for a specific order book (spot, perpetual, etc.). It uniquely identifies where liquidity rests, tick sizes, step sizes, and other trading configuration for that product. - [ClobPairStatus](/types/clob_pair_status): `ClobPairStatus` is an enum consists of the following values: - [ClobStagedFinalizeBlockEvent](/types/clob_staged_finalize_block_event): *No fields.* - [Coin](/types/coin): `denom`: string - [Commission](/types/commission): `commission_rates`: [CommissionRates] - [CommissionRates](/types/commission_rates): `rate`: string - [Commit](/types/commit): `height`: [i64] - [CommitSig](/types/commit_sig): `block_id_flag`: [i32] - [ComplianceReason](/types/compliance_reason): `ComplianceReason` is an enum consists of the following values - [ComplianceReason](/types/compliance_status): `ComplianceReason` is an enum consists of the following values - [ConditionalOrderPlacement](/types/conditional_order_placement): `order`: [Order] `placement_index`: [TransactionOrdering] `trigger_index`: [TransactionOrdering] - [Consensus](/types/consensus): `block`: [u64] - [Cosmos](/types/cosmos): // TODO - [Data](/types/data): `txs`: [u8] ⛁⛁ - [DateTime](/types/date_time): A a timestamp type representing a specific date and time in Coordinated Universal Time (UTC), with nanosecond precision. - [DelayedCompleteBridgeMessages](/types/delayed_complete_bridge_messages): `message`: [MessageCompleteBridge] - [DelayedMessage](/types/delayed_message): `id`: [u32] `msg`: [Any] `block_height`: [u32] - [Delegation](/types/delegation): `delegator_address`: string - [Denom](/types/denom): `Denom` is an enum consists of the following values - [DenomCapacity](/types/denom_capacity): `denom`: [string] `capacity_list`: [bytes][] - [DepositOperation](/types/deposit_operation): `event`: [BridgeEvent] `is_finalized`: [bool] - [Description](/types/description): `moniker`: string - [DowntimeParams](/types/downtime_params): `durations`: [Duration][] - [EpochInfo](/types/epoch_info): `name`: [string] `next_tick`: [u32] `duration`: [u32] `current_epoch`: [u32] `current_epoch_start_block`: [u32] `is_initialized`: [bool] `fast_forward_next_tick`: [bool] - [EpochStats](/types/epoch_stats): `epoch_end_time`: [Timestamp] `stats`: [UserWithStats][] - [EquityTierLimit](/types/equity_tier_limit): `usd_tnc_required`: [u8] ⛁ - [EquityTierLimitConfiguration](/types/equity_tier_limit_configuration): `short_term_order_equity_tiers`: [EquityTierLimit] ⛁ - [EventParams](/types/event_params): `chains`: [ChainConfig][] - [Evidence](/types/evidence): `sum`: [EvidenceSum] - [EvidenceList](/types/evidence_list): `evidence`: [Evidence] ⛁ - [EvidenceSum](/types/evidence_sum): `EvidenceSum` is an enum consists of the following values: - [FillId](/types/fill_id): A wrapper around a String that uniquely identifies a specific fill event. - [FillResponseObject](/types/fill_response_object): Represents the details of a trade fill, including size, price, market information, and metadata related to the order and subaccount. - [FillSubaccountMessage](/types/fill_subaccount_message): `id`: [`FillId`] - [FillType](/types/fill_type): An enum representing the origin or nature of a fill. Possible string values are: - [FillablePriceConfig](/types/fillable_price_config): `bankruptcy_adjustment_ppm`: [u32] `spread_to_maintenance_margin_ratio_ppm`: [u32] - [FinalityConfirmation](/types/finality_confirmation): `event_id`: [u32] `eth_chain_id`: [u64] - [FundingEventV1](/types/funding_event_v1): `updates`: [FundingUpdateV1][] `type`: [Type] - [FundingPaymentResponseObject](/types/funding_payment_response_object): Represents the details of a funding payment, including payment amount, funding rate, position information, and metadata related to the perpetual market and subaccount. - [FundingPaymentsResponseObject](/types/funding_payments_response_object): Represents a paginated response containing funding payment data for a subaccount or parent subaccount. - [FundingUpdateV1](/types/funding_update_v1): `perpetual_id`: [u32] `funding_value_ppm`: [i32] `funding_index`: [bytes] - [GasInfo](/types/gas_info): `gas_wanted`: [u64] `gas_used`: [u64] - [GenesisState](/types/genesis_state): `vest_entries`: [VestEntry][] - [GenesisStateV6](/types/genesis_state_v6): `vaults`: [Vault][] `default_quoting_params`: [QuotingParams] - [GlobalStats](/types/global_stats): `notional_traded`: [u64] - [GoodTilOneof](/types/good_til_oneof): `GoodTilOneof` is an enum consists of the following values - [Header](/types/header): `version`: [Consensus] - [Height](/types/height): A block number representing a specific point in the blockchain's history. - [HistoricalBlockTradingReward](/types/historical_block_trading_reward): `trading_reward`: [BigDecimal] - [HistoricalFundingResponseObject](/types/historical_funding_response_object): `ticker`: [Ticker] - [HistoricalTradingRewardAggregation](/types/historical_trading_reward_aggregation): `trading_reward`: [BigDecimal] - [i32](/types/i32): signed integer - [i64](/types/i64): signed 64 bit integer - [IndexerAssetPosition](/types/indexer_asset_position): `asset_id`: [u32] `quantums`: [bytes] `index`: [u64] - [IndexerEventsStoreValue](/types/indexer_events_store_value): `events`: [IndexerTendermintEventWrapper][] - [IndexerOrder](/types/indexer_order): `order_id`: [IndexerOrderId] `side`: [Side] `quantums`: [u64] `subticks`: [u64] `time_in_force`: [TimeInForce] `reduce_only`: [bool] `client_metadata`: [u32] `condition_type`: [ConditionType] `conditional_order_trigger_subticks`: [u64] `builder_code_params`: [BuilderCodeParameters] `order_router_address`: [string] `twap_parameters`: [TwapParameters] - [IndexerOrderId](/types/indexer_order_id): `subaccount_id`: [IndexerSubaccountId] `client_id`: [u32] `order_flags`: [u32] `clob_pair_id`: [u32] - [IndexerPerpetualPosition](/types/indexer_perpetual_position): `perpetual_id`: [u32] `quantums`: [bytes] `funding_index`: [bytes] `funding_payment`: [bytes] - [IndexerSubaccountId](/types/indexer_subaccount_id): `owner`: [string] `number`: [u32] - [IndexerTendermintBlock](/types/indexer_tendermint_block): `height`: [u32] `time`: [Timestamp] `events`: [IndexerTendermintEvent][] `tx_hashes`: [string][] - [IndexerTendermintEvent](/types/indexer_tendermint_event): `subtype`: [string] `event_index`: [u32] `version`: [u32] `data_bytes`: [bytes] - [IndexerTendermintEventWrapper](/types/indexer_tendermint_event_wrapper): `event`: [IndexerTendermintEvent] `txn_hash`: [string] - [InternalOperation](/types/internal_operation): *No fields.* - [KeyPair](/types/key_pair): `key`: string - [LeverageData](/types/leverage_data): `entries`: [PerpetualLeverageEntry][] - [LimitParams](/types/limit_params): `denom`: [string] `limiters`: [Limiter][] - [Limiter](/types/limiter): `period`: [Duration] `baseline_minimum`: [bytes] `baseline_tvl_ppm`: [u32] - [LimiterCapacity](/types/limiter_capacity): `limiter`: [Limiter] `capacity`: [bytes] - [LiquidateSubaccountsRequest](/types/liquidate_subaccounts_request): `block_height`: [u32] `liquidatable_subaccount_ids`: [SubaccountId][] `negative_tnc_subaccount_ids`: [SubaccountId][] - [LiquidateSubaccountsResponse](/types/liquidate_subaccounts_response): *No fields.* - [LiquidationsConfig](/types/liquidations_config): `max_liquidation_fee_ppm`: [u32] `position_block_limits`: [PositionBlockLimits] `subaccount_block_limits`: [SubaccountBlockLimits] `fillable_price_config`: [FillablePriceConfig] - [Liquidity](/types/liquidity): An enum indicating the liquidity role of the fill. Possible string values are: - [LiquidityTier](/types/liquidity_tier): `id`: [u32] `name`: [string] `initial_margin_ppm`: [u32] `maintenance_fraction_ppm`: [u32] `base_position_notional`: [u64] `impact_notional`: [u64] `open_interest_lower_cap`: [u64] `open_interest_upper_cap`: [u64] - [ListLimitParamsRequest](/types/list_limit_params_request): *No fields.* - [ListingVaultDepositParams](/types/listing_vault_deposit_params): `new_vault_deposit_amount`: [bytes] `main_vault_deposit_amount`: [bytes] `num_blocks_to_lock_shares`: [u32] - [LongTermOrderPlacement](/types/long_term_order_placement): `order`: [Order] `placement_index`: [TransactionOrdering] - [MEVLiquidationMatch](/types/m_e_v_liquidation_match): `liquidated_subaccount_id`: [SubaccountId] `insurance_fund_delta_quote_quantums`: [i64] `maker_order_subaccount_id`: [SubaccountId] `maker_order_subticks`: [u64] `maker_order_is_buy`: [bool] `maker_fee_ppm`: [i32] `clob_pair_id`: [u32] `fill_amount`: [u64] - [MEVMatch](/types/m_e_v_match): `taker_order_subaccount_id`: [SubaccountId] `taker_fee_ppm`: [i32] `maker_order_subaccount_id`: [SubaccountId] `maker_order_subticks`: [u64] `maker_order_is_buy`: [bool] `maker_fee_ppm`: [i32] `clob_pair_id`: [u32] `fill_amount`: [u64] - [MakerFill](/types/maker_fill): `fill_amount`: [u64] `maker_order_id`: [OrderId] - [MarketBaseEventV1](/types/market_base_event_v1): `pair`: [string] `min_price_change_ppm`: [u32] - [MarketCreateEventV1](/types/market_create_event_v1): `base`: [MarketBaseEventV1] `exponent`: [i32] - [MarketEventV1](/types/market_event_v1): `market_id`: [u32] - [MarketMapperRevShareDetails](/types/market_mapper_rev_share_details): `expiration_ts`: int - [MarketMapperRevenueShareParams](/types/market_mapper_revenue_share_params): `address`: [string] `revenue_share_ppm`: [u32] `valid_days`: [u32] - [MarketMessage](/types/market_message): `contents`: [string] `version`: [string] - [MarketModifyEventV1](/types/market_modify_event_v1): *No fields.* - [MarketParam](/types/market_param): `id`: [u32] `pair`: [string] `exponent`: [i32] `min_exchanges`: [u32] `min_price_change_ppm`: [u32] `exchange_config_json`: [string] - [MarketPremiums](/types/market_premiums): `perpetual_id`: [u32] `premiums`: [i32][] - [MarketPrice](/types/market_price): `id`: [u32] - [MarketPriceUpdateEventV1](/types/market_price_update_event_v1): `price_with_exponent`: [u64] - [Market Type](/types/market_type): An enum indicating the type of market, with possible case-insensitive string values: - [MarketsInitialMessage](/types/markets_initial_message): Initial message received on the `v4_markets` channel. - [MarketsUpdateMessage](/types/markets_update_message): Update message received on the `v4_markets` channel. - [MatchOrders](/types/match_orders): `taker_order_id`: [OrderId] `fills`: [MakerFill][] - [MatchPerpetualDeleveraging](/types/match_perpetual_deleveraging): `liquidated`: [SubaccountId] `perpetual_id`: [u32] `fills`: [Fill][] `is_final_settlement`: [bool] - [MatchPerpetualLiquidation](/types/match_perpetual_liquidation): `liquidated`: [SubaccountId] `clob_pair_id`: [u32] `perpetual_id`: [u32] `total_size`: [u64] `is_buy`: [bool] `fills`: [MakerFill][] - [MaxPerNBlocksRateLimit](/types/max_per_n_blocks_rate_limit): `num_blocks`: [u32] `limit`: [u32] - [MessageCompleteBridge](/types/message_complete_bridge): `authority`: string - [Metadata](/types/metadata): `Metadata` is an enum consists of the following values - [MevNodeToNodeMetrics](/types/mev_node_to_node_metrics): `validator_mev_matches`: [ValidatorMevMatches] `clob_mid_prices`: [ClobMidPrice][] `bp_mev_matches`: [ValidatorMevMatches] `proposal_receive_time`: [u64] - [Module](/types/module): `path`: string `version`: string `sum`: string - [MsgAcknowledgeBridges](/types/msg_acknowledge_bridges): `operations`: [BridgeOperation][] `confirmations`: [FinalityConfirmation][] - [MsgAcknowledgeBridgesResponse](/types/msg_acknowledge_bridges_response): *No fields.* - [MsgAddAuthenticator](/types/msg_add_authenticator): `sender`: [string] `authenticator_type`: [string] `data`: [bytes] - [MsgAddAuthenticatorResponse](/types/msg_add_authenticator_response): *No fields.* - [MsgCreateAsset](/types/msg_create_asset): `authority`: [string] `asset`: [Asset] - [MsgCreateAssetResponse](/types/msg_create_asset_response): *No fields.* - [MsgCreateClobPair](/types/msg_create_clob_pair): `authority`: [string] `clob_pair`: [ClobPair] - [MsgCreateClobPairResponse](/types/msg_create_clob_pair_response): *No fields.* - [MsgCreateOracleMarket](/types/msg_create_oracle_market): `authority`: [string] `params`: [MarketParam] - [MsgCreateOracleMarketResponse](/types/msg_create_oracle_market_response): *No fields.* - [MsgCreatePerpetual](/types/msg_create_perpetual): `authority`: [string] `params`: [PerpetualParams] - [MsgCreatePerpetualResponse](/types/msg_create_perpetual_response): *No fields.* - [MsgCreateTransfer](/types/msg_create_transfer): *No fields.* - [MsgDelayMessage](/types/msg_delay_message): `authority`: [string] `msg`: [Any] `delay_blocks`: [u32] - [MsgDelayMessageResponse](/types/msg_delay_message_response): `id`: [u64] - [MsgDeleteVestEntry](/types/msg_delete_vest_entry): `authority`: [string] `vester_account`: [string] - [MsgDeleteVestEntryResponse](/types/msg_delete_vest_entry_response): *No fields.* - [MsgDepositToMegavault](/types/msg_deposit_to_megavault): `subaccount_id`: [SubaccountId] `quote_quantums`: [bytes] - [MsgDepositToMegavaultResponse](/types/msg_deposit_to_megavault_response): `minted_shares`: [NumShares] - [MsgDepositToSubaccount](/types/msg_deposit_to_subaccount): `sender`: [string] `recipient`: [SubaccountId] `asset_id`: [u32] `quantums`: [u64] - [MsgRegisterAffiliate](/types/msg_register_affiliate): `referee`: [string] `affiliate`: [string] - [MsgRegisterAffiliateResponse](/types/msg_register_affiliate_response): *No fields.* - [MsgSendFromModuleToAccount](/types/msg_send_from_module_to_account): `authority`: [string] `sender_module_name`: [string] `recipient`: [string] `coin`: [Coin] - [MsgSetLimitParams](/types/msg_set_limit_params): `authority`: [string] `limit_params`: [LimitParams] - [MsgSetLimitParamsResponse](/types/msg_set_limit_params_response): *No fields.* - [MsgSetMarketMapperRevenueShare](/types/msg_set_market_mapper_revenue_share): `authority`: [string] `params`: [MarketMapperRevenueShareParams] - [MsgSetMarketMapperRevenueShareResponse](/types/msg_set_market_mapper_revenue_share_response): *No fields.* - [MsgSetMarketsHardCap](/types/msg_set_markets_hard_cap): `authority`: [string] `hard_cap_for_markets`: [u32] - [MsgSetMarketsHardCapResponse](/types/msg_set_markets_hard_cap_response): *No fields.* - [MsgSlashValidator](/types/msg_slash_validator): `authority`: [string] `validator_address`: [string] `infraction_height`: [u32] `tokens_at_infraction_height`: [bytes] `slash_factor`: [string] - [MsgSlashValidatorResponse](/types/msg_slash_validator_response): *No fields.* - [MsgTransfer](/types/msg_transfer): `sender`: [SubaccountId] `recipient`: [SubaccountId] `asset_id`: [u32] `amount`: [u64] - [MsgUpdateDefaultQuotingParams](/types/msg_update_default_quoting_params): `authority`: [string] `default_quoting_params`: [QuotingParams] - [MsgUpdateDefaultQuotingParamsResponse](/types/msg_update_default_quoting_params_response): *No fields.* - [MsgUpdateDowntimeParams](/types/msg_update_downtime_params): `authority`: [string] `params`: [DowntimeParams] - [MsgUpdateDowntimeParamsResponse](/types/msg_update_downtime_params_response): *No fields.* - [MsgUpdateParams](/types/msg_update_params): `authority`: [string] `params`: [Params] - [MsgUpdateParamsResponse](/types/msg_update_params_response): *No fields.* - [MsgUpdatePerpetualFeeParams](/types/msg_update_perpetual_fee_params): `authority`: [string] `params`: [PerpetualFeeParams] - [MsgUpdatePerpetualFeeParamsResponse](/types/msg_update_perpetual_fee_params_response): *No fields.* - [MsgWithdrawFromMegavault](/types/msg_withdraw_from_megavault): `subaccount_id`: [SubaccountId] `shares`: [NumShares] `min_quote_quantums`: [bytes] - [MsgWithdrawFromMegavaultResponse](/types/msg_withdraw_from_megavault_response): `quote_quantums`: [bytes] - [MsgWithdrawFromSubaccount](/types/msg_withdraw_from_subaccount): `sender`: [SubaccountId] `recipient`: [string] `asset_id`: [u32] `quantums`: [u64] - [Not Found](/types/not-found): [https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.4](https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.4) - [NumShares](/types/num_shares): `num_shares`: [u8] ⛁ - [OffChainUpdateV1](/types/off_chain_update_v1): *No fields.* - [OK](/types/ok): [https://datatracker.ietf.org/doc/html/rfc7231#section-6.3.1](https://datatracker.ietf.org/doc/html/rfc7231#section-6.3.1) - [Operation](/types/operation): *No fields.* - [OperatorMetadata](/types/operator_metadata): `name`: [string] `description`: [string] - [OperatorParams](/types/operator_params): `operator`: [string] `metadata`: [OperatorMetadata] - [OraclePriceMarket](/types/oracle_price_market): `oraclePrice`: [`Price`] - [Order](/types/order): Order represents a single order belonging to a `Subaccount` for a particular `ClobPair`. - [OrderBatch](/types/order_batch): `clob_pair_id`: [u32] `client_ids`: [u32] ⛁ - [OrderBookResponseObject](/types/order_book_response_object): `bids`: List of [OrderbookResponsePriceLevel] - [OrderbookResponsePriceLevel](/types/order_book_response_price_level): `price`: [Price] - [OrderFillState](/types/order_fill_state): `fill_amount`: [u64] `prunable_block_height`: [u32] - [OrderFlags](/types/order_flags): `OrderFlags` is an enum represented by the following values - [OrderId](/types/order_id): A string value that uniquely identifies a specific order. Used to track and reference orders within the system. - [OrderId](/types/order_id_obj): `subaccount_id`: [SubaccountId] - [OrderMarketParams](/types/order_market_params): `atomic_resolution`: [i32] - [OrderPlaceV1](/types/order_place_v1): `order`: [IndexerOrder] `placement_status`: [OrderPlacementStatus] `time_stamp`: [Timestamp] - [OrderRemoval](/types/order_removal): `order_id`: [OrderId] `removal_reason`: [RemovalReason] - [OrderRemovalReason](/types/order_removal_reason): `OrderRemovalReason` is an enum with the following values: - [OrderRemoveV1](/types/order_remove_v1): `removed_order_id`: [IndexerOrderId] `reason`: [OrderRemovalReason] `removal_status`: [OrderRemovalStatus] `time_stamp`: [Timestamp] - [OrderReplaceV1](/types/order_replace_v1): `order`: [IndexerOrder] `time_stamp`: [Timestamp] - [OrderResponseObject](/types/order_response_object): `client_id`: [ClientId] - [OrderRouterRevShare](/types/order_router_rev_share): `address`: string - [OrderSide](/types/order_side): An enum representing the direction of an order. Possible string values are: - [OrderStatus](/types/order_status): `OrderStatus` is an enum consists of the following values - [OrderSubaccountMessage](/types/order_subaccount_message): Update sub-message received on the `v4_subaccounts` channel. - [OrderType](/types/order_type): An enum specifying the type of order to be placed or processed. Possible string values include: - [OrderUpdateV1](/types/order_update_v1): `order_id`: [IndexerOrderId] `total_filled_quantums`: [u64] - [OrderbookMessage](/types/orderbook_message): `contents`: [string] `clob_pair_id`: [string] `version`: [string] - [OrdersFilledDuringLatestBlock](/types/orders_filled_during_latest_block): `order_ids`: [OrderId][] - [OrdersInitialMessage](/types/orders_initial_message): Initial message received on the `v4_orderbook` channel. - [OrdersInitialMessage](/types/orders_update_message): Update message received on the `v4_orderbook` channel. - [OwnerShare](/types/owner_share): `owner`: [string] `shares`: [NumShares] - [OwnerShareUnlocks](/types/owner_share_unlocks): `owner_address`: [string] `share_unlocks`: [ShareUnlock][] - [Params](/types/params): `layers`: [u32] `spread_min_ppm`: [u32] `spread_buffer_ppm`: [u32] `skew_factor_ppm`: [u32] `order_size_pct_ppm`: [u32] `order_expiration_seconds`: [u32] `activation_threshold_quote_quantums`: [bytes] - [ParentSubaccountNumber](/types/parent_subaccount_number): The value is represented by [u32]. - [ParentSubaccountResponseObject](/types/parent_subaccount_response_object): `address`: [Address] - [ParentSubaccountTransferResponseObject](/types/parent_subaccount_transfer_response_object): `id`: [TransferId] - [ParentSubaccountsInitialMessage](/types/parent_subaccounts_initial_message): Initial message received on the `v4_parent_subaccounts` channel. - [ParentSubaccountsUpdateMessage](/types/parent_subaccounts_update_message): Update message received on the `v4_parent_subaccounts` channel. - [PartSetHeader](/types/part_set_header): `total`: [u32] - [PendingFinalityEvent](/types/pending_finality_event): `event`: [BridgeEvent] `acknowledged_at_block`: [i64] - [PendingSendPacket](/types/pending_send_packet): `channel_id`: [string] `sequence`: [u64] - [PerMarketFeeDiscountParams](/types/per_market_fee_discount_params): `clob_pair_id`: [u32] `start_time`: [Timestamp] `end_time`: [Timestamp] `charge_ppm`: [u32] - [Perpetual](/types/perpetual): `params`: [PerpetualParams] - [PerpetualClobMetadata](/types/perpetual_clob_metadata): `perpetual_id`: [u32] - [PerpetualFeeParams](/types/perpetual_fee_params): `tiers`: [PerpetualFeeTier][] - [PerpetualFeeTier](/types/perpetual_fee_tier): `name`: string - [PerpetualLeverageEntry](/types/perpetual_leverage_entry): `perpetual_id`: [u32] `custom_imf_ppm`: [u32] - [PerpetualLiquidationInfo](/types/perpetual_liquidation_info): `subaccount_id`: [SubaccountId] `perpetual_id`: [u32] - [PerpetualMarket](/types/perpetual_market): `atomicResolution`: [i32] - [PerpetualMarketMap](/types/perpetual_market_map): Key-value pair of [Ticker] and [PerpetualMarket] where [Ticker] is the `key`. - [PerpetualMarketStatus](/types/perpetual_market_status): `PerpetualMarketStatus` is an enum represented by following values - [PerpetualMarketType](/types/perpetual_market_type): `PerpetualMarketType` is an enum consists of the following values - [PerpetualParams](/types/perpetual_params): `id`: [u32] - [PerpetualPosition](/types/perpetual_position): `perpetual_id`: [u32] - [PerpetualPositionResponseObject](/types/perpetual_position_response_object): `market`: [Ticker] - [PerpetualPositionStatus](/types/perpetual_position_status): A `PerpetualPositionStatus` is an enum having one of the following string in case insensitive manner - [PerpetualPositionSubaccountMessage](/types/perpetual_position_subaccount_message): Update sub-message received on the `v4_subaccounts` channel. - [PerpetualPositionsMap](/types/perpetual_positions_map): Key: [Ticker] - [PnlTickId](/types/pnl_tick_id): `PnlTickId` is represented by `string`. - [PnlTickInterval](/types/pnl_tick_interval): `PnlTickInterval` is an enum consists of the following values - [PnlTicksResponseObject](/types/pnl_ticks_response_object): `blockHeight`: [Height] - [PositionBlockLimits](/types/position_block_limits): `min_position_notional_liquidated`: [u64] `max_position_portion_liquidated_ppm`: [u32] - [PositionSide](/types/position_side): An enum representing the direction of a position, with possible case-insensitive string values: - [PositionStatus](/types/position_status): A PositionStatus is an enum having one of the following string in case insensitive manner - [PotentiallyPrunableOrders](/types/potentially_prunable_orders): `order_ids`: [OrderId][] - [PremiumStore](/types/premium_store): `all_market_premiums`: [MarketPremiums][] `num_premiums`: [u32] - [Price](/types/price): A [BigDecimal] value that is representing the execution price of a trade. Uses high-precision decimal format to ensure accuracy in financial calculations. - [ProcessProposerMatchesEvents](/types/process_proposer_matches_events): `placed_long_term_order_ids`: [OrderId][] `expired_stateful_order_ids`: [OrderId][] `order_ids_filled_in_last_block`: [OrderId][] `placed_stateful_cancellation_order_ids`: [OrderId][] `removed_stateful_order_ids`: [OrderId][] `placed_conditional_order_ids`: [OrderId][] `block_height`: [u32] - [ProposeParams](/types/propose_params): `max_bridges_per_block`: [u32] `propose_delay_duration`: [Duration] `skip_rate_ppm`: [u32] `skip_if_block_delayed_by_duration`: [Duration] - [Quantity](/types/quantity): A numeric value representing the amount of an asset. - [QueryAllSubaccountRequest](/types/query_all_subaccount_request): `pagination`: [PageRequest] - [QueryAssetRequest](/types/query_asset_request): *No fields.* - [QueryCollateralPoolAddressRequest](/types/query_collateral_pool_address_request): *No fields.* - [QueryEventParamsRequest](/types/query_event_params_request): *No fields.* - [QueryGetClobPairRequest](/types/query_get_clob_pair_request): *No fields.* - [QueryGetEpochInfoRequest](/types/query_get_epoch_info_request): *No fields.* - [QueryGetSubaccountRequest](/types/query_get_subaccount_request): `owner`: [string] `number`: [u32] - [QueryGetWithdrawalAndTransfersBlockedInfoRequest](/types/query_get_withdrawal_and_transfers_blocked_info_request): `perpetual_id`: [u32] - [QueryGetWithdrawalAndTransfersBlockedInfoResponse](/types/query_get_withdrawal_and_transfers_blocked_info_response): `negative_tnc_subaccount_seen_at_block`: [u32] `chain_outage_seen_at_block`: [u32] `withdrawals_and_transfers_unblocked_at_block`: [u32] - [QueryMarketMapperRevenueShareParams](/types/query_market_mapper_revenue_share_params): *No fields.* - [QueryMarketPriceRequest](/types/query_market_price_request): *No fields.* - [QueryMarketsHardCap](/types/query_markets_hard_cap): *No fields.* - [QueryNextDelayedMessageIdRequest](/types/query_next_delayed_message_id_request): *No fields.* - [QueryParamsRequest](/types/query_params_request): *No fields.* - [QueryPerpetualFeeParamsRequest](/types/query_perpetual_fee_params_request): *No fields.* - [QueryPerpetualRequest](/types/query_perpetual_request): *No fields.* - [QuerySubaccountAllResponse](/types/query_subaccount_all_response): `subaccount`: [Subaccount][] `pagination`: [PageResponse] - [QuerySubaccountResponse](/types/query_subaccount_response): `subaccount`: [Subaccount] - [QuerySynchronyParamsRequest](/types/query_synchrony_params_request): *No fields.* - [QueryVestEntryRequest](/types/query_vest_entry_request): *No fields.* - [QuotingParams](/types/quoting_params): `layers`: [u32] `spread_min_ppm`: [u32] `spread_buffer_ppm`: [u32] `skew_factor_ppm`: [u32] `order_size_pct_ppm`: [u32] `order_expiration_seconds`: [u32] `activation_threshold_quote_quantums`: [bytes] - [RecipientConfig](/types/recipient_config): `address`: string - [RedisOrder](/types/redis_order): `id`: [string] `order`: [IndexerOrder] `ticker`: [string] `ticker_type`: [TickerType] `price`: [string] `size`: [string] - [ReferredByRequest](/types/referred_by_request): `address`: [string] - [ReferredByResponse](/types/referred_by_response): `affiliate_address`: [string] - [ReviewMessage](/types/review_message): `contents`: [string] `id`: [string] `version`: [string] - [RewardShare](/types/reward_share): `address`: [string] `weight`: [bytes] - [RewardParams](/types/rewards_params): `treasury_account`: string - [SafetyParams](/types/safety_params): `is_disabled`: [bool] `delay_blocks`: [u32] - [ShareUnlock](/types/share_unlock): `shares`: [NumShares] - [SkippedBridgeEvent](/types/skipped_bridge_event): `id`: [u32] `eth_chain_id`: [u64] `eth_block_height`: [u64] - [SparklineResponseObject](/types/sparkline_response_object): `SparklineResponseObject` is a key-value pair of [Ticker] and List of [BigDecimal] - [SparklineTimePeriod](/types/sparkline_time_period): `SparklineTimePeriod` is an enum consists of the following values - [SpotClobMetadata](/types/spot_clob_metadata): `base_asset_id`: [u32] - [StagedFinalizeBlockEvent](/types/staged_finalize_block_event): *No fields.* - [StakingLevel](/types/staking_level): `min_staked_base_tokens`: [bytes] `fee_discount_ppm`: [u32] - [StakingTier](/types/staking_tier): `fee_tier_name`: [string] `levels`: [StakingLevel][] - [StatefulOrderTimeSliceValue](/types/stateful_order_time_slice_value): `order_ids`: [OrderId][] - [StatsMetadata](/types/stats_metadata): `trailing_epoch`: [u32] - [StreamLiquidationOrder](/types/stream_liquidation_order): `liquidation_info`: [PerpetualLiquidationInfo] `clob_pair_id`: [u32] `is_buy`: [bool] `quantums`: [u64] `subticks`: [u64] - [StreamPriceUpdate](/types/stream_price_update): `market_id`: [u32] `price`: [MarketPrice] `snapshot`: [bool] - [StreamSubaccountUpdate](/types/stream_subaccount_update): `subaccount_id`: [SubaccountId] `updated_perpetual_positions`: [SubaccountPerpetualPosition][] `updated_asset_positions`: [SubaccountAssetPosition][] `snapshot`: [bool] - [String](/types/string): String - [Subaccount](/types/subaccount): `address`: [Address] - [SubaccountAssetPosition](/types/subaccount_asset_position): `asset_id`: [u32] `quantums`: [u64] - [SubaccountBlockLimits](/types/subaccount_block_limits): `max_notional_liquidated`: [u64] `max_quantums_insurance_lost`: [u64] - [SubaccountId](/types/subaccount_id): `SubaccountId` is represented by `string`. - [SubaccountInfo](/types/subaccount_info): `id`: [SubaccountId] - [SubaccountLiquidationInfo](/types/subaccount_liquidation_info): `perpetuals_liquidated`: [u32][] `notional_liquidated`: [u64] `quantums_insurance_lost`: [u64] - [SubaccountMessage](/types/subaccount_message): `block_height`: [string] `transaction_index`: [i32] `event_index`: [u32] `contents`: [string] `subaccount_id`: [IndexerSubaccountId] `version`: [string] - [SubaccountNumber](/types/subaccount_number): A [u32] integer used to identify a specific subaccount within a main account. - [SubaccountOpenPositionInfo](/types/subaccount_open_position_info): `perpetual_id`: [u32] - [SubaccountPerpetualPosition](/types/subaccount_perpetual_position): `perpetual_id`: [u32] `quantums`: [i64] - [SubaccountResponseObject](/types/subaccount_response_object): `assetPositions`: [AssetPositionsMap] - [SubaccountsInitialMessage](/types/subaccounts_initial_message): Initial message received on the `v4_subaccounts` channel. - [SubaccountsUpdateMessage](/types/subaccounts_update_message): Update message received on the `v4_subaccounts` channel. - [Symbol](/types/symbol): A string identifier representing a trading pair or asset (e.g., "BTC-USD"). - [SynchronyParams](/types/synchrony_params): `next_block_delay`: [Duration] - [Ticker](/types/ticker): A Ticker is a pair of currency like "BTC-USD", represented by a string. - [Time in Force](/types/time_in_force): An enum which indicates how long an order will remain active before it is executed or expires. - [Timestamp](/types/timestamp): `seconds`: [i64] - [TimestampNonceDetails](/types/timestamp_nonce_details): `timestamp_nonces`: [u64][] `max_ejected_nonce`: [u64] - [TokenMapping](/types/token_mapping): `eth_token_address`: [string] `asset_id`: [u32] `instant_bridge_max_amount`: [string] - [TokenReserve](/types/token_reserve): `asset_id`: [u32] `chain_id`: [u64] `reserved_amount`: [string] `token_address`: [string] - [Tokenized](/types/tokenized): `denom`: [Denom] `coin`: [Coin] - [TradeId](/types/trade_id): `TradeId` is represented by `string` - [TradeMessage](/types/trade_message): `block_height`: [string] `contents`: [string] `clob_pair_id`: [string] `version`: [string] - [TradeResponseObject](/types/trade_response_object): `id`: [TradeId] - [TradeType](/types/trade_type): `TradeType` is an enum represented by the following values - [TradeUpdate](/types/trade_update): `id`: [`TradeId`] - [TradesInitialMessage](/types/trades_initial_message): `trades`: [`TradeResponseObject`] - [TradesUpdateMessage](/types/trades_update_message): Update message received on the `v4_trades` channel. - [TradingPerpetualMarket](/types/trading_perpetual_market): `atomicResolution`: [`i32`] - [TradingRewardAggregationPeriod](/types/trading_reward_aggregation_period): A `TradingRewardAggregationPeriod` is an enum having one of the following string - [TradingRewardSubaccountMessage](/types/trading_reward_subaccount_message): Update sub-message received on the `v4_subaccounts` channel. - [TransactionOrdering](/types/transaction_ordering): `block_height`: [u32] `transaction_index`: [u32] - [Transfer](/types/transfer): `sender`: [SubaccountId] `recipient`: [SubaccountId] `asset_id`: [u32] `amount`: [u64] `memo`: [string] - [TransferResponseObject](/types/transfer_response_object): `id`: string - [TransferSubaccountMessageContents](/types/transfer_subaccount_message): Update sub-message received on the `v4_subaccounts` channel. - [TransferType](/types/transfer_type): TransferType is an enum having one of the following value - [TwapOrderPlacement](/types/twap_order_placement): `order`: [Order] `remaining_legs`: [u32] `remaining_quantums`: [u64] - [TwapParameters](/types/twap_parameters): When using TWAP parameters, the `OrderFlags` value must be set to 128 (TWAP) on `OrderId.OrderFlags` in the order placement message. - [Tx](/types/tx): `Tx` is represented by binary/byte data. - [TxHash](/types/tx_hash): `TxHash` is represented by a string. - [TxOptions](/types/tx_options): `authenticators`: [i32] ⛁ - [u32](/types/u32): An unsigned 32-bit integer type, representing whole numbers in the range from **0** to **4,294,967,295** (2³² − 1). - [u64](/types/u64): unsigned 64 bit integer - [u8](/types/u8): An unsigned 8-bit integer type, representing whole numbers in the range from **0** to **255** (28 − 1). - [UnbondingDelegation](/types/unbonding_delegations): `delegator_address`: string - [UnbondingDelegationEntry](/types/unbounding_delegation_entry): `created_height`: [i64] - [UnconditionalRevShareConfig](/types/unconditional_rev_share_config): `configs`: [RecipientConfig] - [UpdateMarketPricesRequest](/types/update_market_prices_request): `market_price_updates`: [MarketPriceUpdate][] - [UpdateMarketPricesResponse](/types/update_market_prices_response): *No fields.* - [UserStats](/types/user_stats): `taker_notional`: [u64] - [Validator](/types/validator): `operator_address`: string - [ValidatorEvmAddress](/types/validator_evm_address): `validator_address`: [string] `evm_address`: [string] `registered_at_block`: [i64] - [ValidatorMevMatches](/types/validator_mev_matches): `matches`: [MEVMatch][] `liquidation_matches`: [MEVLiquidationMatch][] - [Vault](/types/vault): `vault_id`: [VaultId] `vault_params`: [VaultParams] `most_recent_client_ids`: [u32][] - [VaultHistoricalPnl](/types/vault_historical_pnl): `ticker`: string - [VaultId](/types/vault_id): `type`: [VaultType] `number`: [u32] - [VaultParams](/types/vault_params): `status`: [VaultStatus] `quoting_params`: [QuotingParams] - [VaultPosition](/types/vault_position): `ticker`: string - [VaultRevShareConfig](/types/vault_rev_share_config): `share_ppm`: [u32] - [VaultStatus](/types/vault_status): `VaultStatus` is an enum with the following values: - [VaultType](/types/vault_type): `VaultType` is an enum with the following values: - [VaultV6](/types/vault_v6): `vault_id`: [VaultId] `total_shares`: [NumShares] `owner_shares`: [OwnerShare][] `vault_params`: [VaultParams] `most_recent_client_ids`: [u32][] - [VersionInfo](/types/version_info): `name`: string `app_name`: string `version`: string `git_commit`: string `build_tags`: string `go_version`: string `build_deps`: [Module] ⛁ - [VestEntry](/types/vest_entry): `vester_account`: [string] `treasury_account`: [string] `denom`: [string] `start_time`: [Timestamp] `end_time`: [Timestamp] - [Wallet](/types/wallet): `key`: [KeyPair] - [Withdrawal](/types/withdrawal): `id`: [u64] `amount`: [string] `eth_recipient`: [string] `sender`: [string] `status`: [WithdrawalStatus] `created_at_block`: [i64] `timelock_blocks`: [u64] `eth_chain_id`: [u64] `eth_tx_hash`: [string] `error_message`: [string] `asset_id`: [u32] `relay_attempts`: [u32] `ready_at_block`: [i64] `fee`: [Coin][] `fee_payer`: [string] - [WithdrawalConfirmationEvent](/types/withdrawal_confirmation_event): `event_id`: [u32] `withdrawal_id`: [u64] `eth_chain_id`: [u64] `eth_block_height`: [u64] `sender`: [string] `coin`: [Coin] `eth_token_address`: [string] `log_index`: [u32] `chain_block_height`: [u64] - [WithdrawalConfirmationInfo](/types/withdrawal_confirmation_info): `next_event_id`: [u32] `eth_block_height`: [u64] - [WithdrawalParams](/types/withdrawal_params): `chain_withdrawal_configs`: [ChainWithdrawalConfig][] `daily_limit_configs`: [AssetChainDailyLimitConfig][] `withdrawals_disabled`: [bool] `signing_timeout_blocks`: [u64] `max_relay_attempts`: [u32] `relay_timeout_blocks`: [u64] `confirmation_timeout_blocks`: [u64] - [WithdrawalSignature](/types/withdrawal_signature): `withdrawal_id`: [u64] `validator_address`: [string] `validator_eth_address`: [string] `eth_signature`: [bytes] `signed_at_block`: [i64] - [WithdrawalSignatureProto](/types/withdrawal_signature_proto): `validator_eth_address`: [string] `withdrawal_id`: [u64] `eth_signature`: [bytes] `eth_chain_id`: [u64] - [WithdrawalStatus](/types/withdrawal_status): `WithdrawalStatus` is an enum with the following values: - [Quick Start with Python](/interaction/client/quick-start-py): This guide will walk you through the steps to set up and start using the Rubin API Python library. - [Quick Start with Rust](/interaction/client/quick-start-rs): This guide will walk you through the steps to set up and start using the Rubin API Rust library. - [Quick Start with TypeScript](/interaction/client/quick-start-ts): This guide will walk you through the steps to set up and start using the Rubin API TypeScript library. - [Accounts](/interaction/data/accounts): All of your trading activity is associated with your account which corresponds to an address. In Rubin, accounts are also composed by subaccounts. All trading is done through a subaccount. See more on the [Accounts and Subaccounts](/concepts/trading/accounts) page. - [WebSockets](/interaction/data/feeds): The Indexer can provide realtime data through its WebSockets endpoint. - [Trading Data](/interaction/data/market): This section guides you on how to fetch some important data points. We focus here on getting data using spontaneous (single) requests. For continuous data streams of data see also the [WebSockets guide](/interaction/data/feeds). - [Watch orderbook](/interaction/data/watch-orderbook): Depending on your trading strategy, keeping track of the current orderbook can be essential. The orderbook is a list of all the unmatched orders, divided into the **bids** (buy orders) and the **asks** (sell orders). - [Deposit](/interaction/deposits-withdrawals/deposit): Depositing funds into Rubin moves assets from a supported source chain into the user's main account, and then into a trading subaccount. - [Deposits and Withdrawals](/interaction/deposits-withdrawals/overview): Rubin Chain uses a native bridge to move funds between supported source chains and the Rubin main account. Deposits and withdrawals are confirmed by Rubin validators — there is no third-party bridge or relayer in the path. - [Withdrawal](/interaction/deposits-withdrawals/withdrawal): Withdrawing from Rubin moves funds from your trading subaccount back to your main account, and then to an address on the destination chain. - [Builder Codes](/interaction/integration/integration-builder-codes): Builder codes enables external parties to submit orders to Rubin and collect fees (per-order) for building and routing an order to the exchange. The address and fee, in parts per million, needs to be configured via the `BuilderCodeParameters` in the order message itself. The fee will be paid out when the given order is filled. - [Placing orders and verifying Order Router Address in Fills](/interaction/integration/integration-builder-codes): `builderAddress` - where fees will be routed - [Compliance](/interaction/integration/integration-compliance): Per the [terms of service](https://rubin.trade/terms) of the open-source software, the following categories of persons are currently prohibited from using Rubin Software: - [Market data](/interaction/integration/integration-markets): The client application typically displays a list of tradable and launchable markets as follows: - [Onboarding](/interaction/integration/integration-onboarding): The client application onboards the user by asking the user to sign a message using an existing wallet address. The v4-client-js library provides a [function](https://github.com/ritbit/v4-clients/blob/a2c7adcc64b33fefaf56ffb6fc1d2bb8b174601e/v4-client-js/src/lib/onboarding.ts#L43) that deterministically generates the Rubin chain address (see [accounts](/concepts/trading/accounts#main-account)) and keys from the signed message. Once the keys are generated, the client application can use them to sign transactions on the Rubin chain on the user’s behalf, enabling secure and seamless interaction with the platform. - [User Portfolio](/interaction/integration/integration-portfolio): After onboarding to Rubin and depositing funds, the app displays the portfolio view. Once the user places a trade, the app updates to show open positions. - [Revenue Share](/interaction/integration/integration-revshare): Order Router Rev Share enables third-party order routers to direct orders to Rubin and earn a portion of the trading fees (maker and taker). The revenue share, specified in parts per million (ppm), must be voted in via Governance and set in the `order_router_address` field in the order message itself. - [Placing a Trade](/interaction/integration/integration-trade): Market trade lets users execute an order based on the current state of the orderbook. - [Integration Guide](/interaction/integration/integration): This guide outlines the development of a perpetual trading front-end application using the Rubin v4 application chain APIs. It covers backend data interpretation and rendering for end users, as well as trade execution. While maintaining a high-level perspective, it addresses specific details as needed. For in-depth implementation details, refer to the Rubin source repository, where Rubin Lab maintains the trading application's source code for web, iOS, and Android platforms. - [Permissioned Keys](/interaction/permissioned-keys): Permissioned Keys provide a way for different traders to share the same account. Using this mechanism, the owner of an account can provide different types of permissions, allowing flexibility to what and what not the permissioned users can do with its account. - [Trading](/interaction/trading): Interacting with the Rubin perpetual markets and managing your positions is done by placing orders. Enter `LONG` positions by placing buy orders and `SHORT` positions by placing sell orders. - [Indexer Deep Dive](/concepts/architecture/indexer): A good way to think about the Indexer is as similar to Infura or Alchemy’s role in the Ethereum ecosystem. However, unlike Infura/Alchemy, and like everything else in Rubin Chain, the Indexer is completely open source and can be run by anyone! - [Intro to Rubin Chain Architecture](/concepts/architecture/overview): Rubin Chain has been designed to be completely decentralized end-to-end. The main components broadly include the protocol, the Indexer, and the front end. Each of these components are available as open source software. None of the components are run by Rubin Lab. - [Onboarding FAQs](/concepts/onboarding-faqs): 1. How does the network work? - [Accounts and Subaccounts](/concepts/trading/accounts): Accounts and subaccounts serve as identifiers in the Rubin ecosystem. - [Perpetuals and Assets](/concepts/trading/assets): Perpetual contracts, or "perps," is a derivative and a type of futures contract commonly used in crypto trading. Unlike traditional futures, they do not have an expiration date, allowing traders to hold positions indefinitely. This makes them ideal for continuous speculation on asset prices. - [Permissioned Keys](/concepts/trading/authenticators): Permissioned Keys are a Rubin specific extension to the Cosmos authentication system that allows an account to add custom logic for verifying and confirming transactions placed on that account. For example, an account could enable other accounts to sign and place transactions on their behalf, limit those transactions to certain message types or clob pairs etc, all in a composable way. - [Contract Loss Mechanisms](/concepts/trading/contract-loss-mechanism): During periods of high volatility in the markets underlying the perpetual contracts, the value of some accounts may drop below zero before they can be liquidated. In these cases, the protocol’s deleveraging system kicks in. - [Funding](/concepts/trading/funding): Funding rates contemplated in the default v4 software will be subject to adjustments by the applicable Governance Community. - [Governance Functionalities](/concepts/trading/governance): Below is a current list of all module parameters that `x/gov` has the ability to update directly. Further documentation will be released which outlines overviews of each custom module, how modules interact with one another, and technical guides regarding how to properly submit governance proposals. - [Isolated Markets](/concepts/trading/isolated-markets): The below is an overview of how trading works on Isolated Markets. - [Trading Isolated Markets](/concepts/trading/isolated-markets): Note: This document covers how the feature works from the protocol point of view and not the front end or the indexer. - [Querying for Isolated Markets](/concepts/trading/isolated-markets): Note: This document covers how the feature works from the protocol point of view and not the front end or the indexer. - [Isolated Positions](/concepts/trading/isolated-positions): **Isolated positions** on the **Rubin frontend** are perpetual positions held in subaccounts with a subaccount number greater than 127, up to the limit of 128,000. Each isolated position is held in a separate subaccount. - [Limit Order Book and Matching](/concepts/trading/limit-orderbook): This document outlines the key differences between centralized exchanges and Rubin Chain, focusing on the decentralized limit order book and matching engine. - [Liquidations](/concepts/trading/liquidations): As part of the default settings of the v4 open source software (”Rubin Chain”), accounts whose total value falls below their maintenance margin requirement may have their positions automatically closed by the liquidation engine. Positions are closed via protocol-generated liquidation matches where a protocol-generated liquidation order uses a calculated “Fillable Price” as the limit price to match against liquidity resting on the order book.\ Profits or losses from liquidations are taken on by the insurance fund. A liquidated subaccount may have its position partially or fully closed. v4 open source software includes a liquidations configuration which — as determined by the applicable Governance Community — will determine how much of the position is liquidated. - [Margining](/concepts/trading/margin): As part of default settings on the Rubin Chain open source software, each market has two risk parameters, Initial Margin Fraction (IMF) and Maintenance Margin Fraction (MMF): - [Oracle Prices](/concepts/trading/oracle): Oracle prices are aggregated prices that provide up-to-date price data for different assets. The oracle price for each trading pair is used for the following: - [Orders](/concepts/trading/orders): An order is the way a trader manages positions in the Rubin markets. Different types of orders exist to support different trading strategies. - [Quantums and Subticks](/concepts/trading/quantums): In Rubin, quantities and prices are represented in quantums (for quantities) and subticks (for prices), which need conversion for practical understanding. - [Vaults](/concepts/trading/vaults): Vaults is a live feature on Rubin that allows users to deposit **USDC** and earn yield by providing liquidity to various markets. It operates as an automated liquidity provisioning system, using deposited funds to run **automated market-making (AMM)** strategies across multiple trading pairs. - [Permissioned Keys](/node-client/authenticators) - [gRPC Streaming Example](/nodes/full-node-streaming/example): [Indexer-based orderbook streaming](/interaction/data/watch-orderbook), due to the increased latency introduced by the Indexer, can cause issues like more outdated orders or a crossed orderbook. In a full node, the orderbook available will be more up-to-date and should be preferred over the Indexer-based solution. This requires a full node with [gRPC streaming enabled](/nodes/full-node-streaming). - [Full Node gRPC Streaming](/nodes/full-node-streaming): Enable full node streaming to expose a stream of orderbook updates (L3), fills, taker orders, and subaccount updates, allowing clients to maintain a full view of the orderbook and various exchange activities. Note that the orderbook state can vary slightly between nodes due to Rubin's offchain orderbook design. - [Hardware Requirements](/nodes/running-node/hardware-requirement): The minimum recommended specs for running a node is the following: - [Optimize Your Full Node](/nodes/running-node/optimize): Optimizing your full node helps keep it online, up to date, and operating quickly. Faster nodes have an advantage over slower nodes because they tend to receive new data first and they minimize the time between placing and resolving orders. Optimize your full node by connecting to trusted nodes, taking precautions against falling out of sync with the network, and configuring storage settings. - [Required Node Configs](/nodes/running-node/required-node-configs): These configurations must be applied for both full nodes and validators. - [Running a Validator](/nodes/running-node/running-a-validator): 💡Note: failure to set up below configurations on a validator node may compromise chain functionality. - [Set Up a Full Node](/nodes/running-node/setup): Installing and running a full node allows you to read orderbook and onchain data from a network, as well as place, confirm and cancel orders directly on that network. - [Snapshots](/nodes/running-node/snapshots): Services that provide snapshots for the network can be found [here](/nodes/resources#snapshots). These snapshots will be used as a backup point in case an upgrade fails or a new node wants to start up and does not want to start from block 1 to catchup. - [Voting](/nodes/running-node/voting): Save the [chain-id](/nodes/network-constants#chain-id). This will make it so you do not have to manually pass in the chain-id flag for every CLI command. - [Cosmovisor](/nodes/upgrades/cosmovisor): `cosmovisor` is a small process manager for Cosmos SDK application binaries that monitors the governance module for incoming chain upgrade proposals. If it sees a proposal that gets approved, `cosmovisor` can automatically download the new binary, stop the current binary, switch from the old binary to the new one, and finally restart the node with the new binary. - [Performing Upgrades](/nodes/upgrades/performing-upgrades): Validators can choose how to run a validator and manage software upgrades according to their preferred option: - [Types of upgrades](/nodes/upgrades/types-of-upgrades): Major and minor changes can be consensus breaking. These upgrades usually go through a governance proposal and happen at specific heights. - [Using Cosmovisor to stage Rubin Chain binary upgrade](/nodes/upgrades/using-cosmovisor): Linux (Ubuntu Server 22.04.3 recommended) - [Rate Limits](/concepts/trading/limits/rate-limits): All rate limits are subject to change. The latest limits can be queried via the `https:///ritbit/clob/block_rate` endpoint. - [Withdrawal Limits](/concepts/trading/limits/withdrawal-limits): In an effort to reduce risk across the protocol, withdrawals can be rate limited and gated in specific circumstances.​ - [Rewards, Fees and Parameters](/concepts/trading/rewards): There are several reward mechanisms available with the protocol software. - [Staking Rewards](/concepts/trading/rewards/staking-rewards): Staking rewards are designed to reward `Validators` and `Stakers` (=Delegators). The sources of staking rewards are trading fees and gas fees collected by the protocol. - [Trading Rewards](/concepts/trading/rewards/trading-rewards): Trading rewards are subject to adjustments by the applicable Governance Community. Note that the community has voted to set the C parameter to 0