---
title: "Get multisig details (Safe / Squads / Altitude / Realms)"
method: GET
path: "/v2/multisig/details"
tags: ["Multisig"]
---

# Get multisig details (Safe / Squads / Altitude / Realms)

`GET /v2/multisig/details`

Stateless read of a multisig: config + members, balances, and pending proposals. Mirrors the data an account-connection exposes, so it can be used whether or not the wallet is a saved connection. `network` is required for `safe` (EVM chain) and rejected for `squads`/`altitude`/`realms` (Solana-only).

## Query parameters

- `address` string, required
- `type` 'safe' | 'squads' | 'altitude' | 'realms', required
- `network` 'ethereum' | 'arbitrum' | 'base' | 'optimism' | 'polygon' | 'bnb'

## Response `200`

- MultisigDetailsResponseDto
  - `address` string, required — Canonical address: resolved multisig for Squads, checksummed for Safe.
  - `network` string, required
  - `type` string, required
  - `provider` 'safe' | 'squads' | 'altitude' | 'realms', required
  - `balances` AccountBalance[], required
    - `asset` string, required
    - `amount` string, required — Raw quantity reported by the provider, in asset units.
    - `usd` string, nullable — USD equivalent of `amount`. `null` when no USD price is available. For fiat accounts, equals `amount`.
    - `updated_at` string, required
  - `details` MultisigDetailsBodyDto, required
    - `safe` AccountConnectionSafePublicDataDto
      - `safe_address` string, required — EIP-55 checksummed Safe address
      - `network` 'ethereum' | 'arbitrum' | 'base' | 'optimism' | 'polygon' | 'bnb', required
      - `version` string, required — Safe contract version (e.g. 1.3.0, 1.4.1)
      - `threshold` number, required
      - `nonce` number, required
      - `owners` string[], required
      - `pending_proposals` AccountConnectionSafePendingProposalDto[], required
        - `safe_tx_hash` string, required
        - `nonce` number, required
        - `destination_address` string, required
        - `value` string, required — Native asset amount, human-readable (raw wei divided by 10^18).
        - `data_payload` string, nullable
        - `operation` number, required — 0 = call, 1 = delegatecall
        - `confirmations_required` number, required
        - `confirmations` AccountConnectionSafeConfirmationDto[], required
          - `owner` string, required
          - `submission_date` string, required
        - `submission_date` string, nullable
    - `multisig` AccountConnectionSquadsPublicDataDto
      - `multisig_address` string, required
      - `resolved_from_address` string, required — Original address provided by the customer (may be a vault)
      - `resolved_vault_index` number — Vault index if input was a vault address
      - `threshold` number, required
      - `version` 'v3' | 'v4', required
      - `program_id` string, required
      - `create_key` string, required
      - `config_authority` string, nullable — V4 only
      - `time_lock` number — V4 only — seconds
      - `members` object[], required
      - `pending_proposals` AccountConnectionSquadsPendingProposalDto[], required
        - `address` string, required
        - `transaction_index` number, required
        - `status` 'draft' | 'active' | 'executeReady' | 'approved' | 'executing' | 'executed' | 'rejected' | 'cancelled' | 'unknown', required — V3: draft/active/executeReady/executed/rejected/cancelled. V4 adds: approved/executing.
        - `approved_count` number, required
        - `rejected_count` number, required
        - `approved` string[] — Signer pubkeys that approved (per-signer confirmation). Absent on connections persisted before this field existed, until next refresh.
        - `rejected` string[] — Signer pubkeys that rejected. Absent on connections persisted before this field existed, until next refresh.
        - `timestamp` number, nullable
      - `vaults` object[], required
    - `altitude` AccountConnectionAltitudePublicDataDto
      - `settings_address` string, required — Settings account of the smart account (the canonical config PDA)
      - `resolved_from_address` string, required — Original address provided by the customer (may be a smart-account deposit address)
      - `resolved_account_index` number — Smart-account index if the input was a smart-account (deposit) address
      - `is_altitude` boolean, required — Whether the smart account is Altitude-managed (Altitude's operational key fee-pays its transactions) vs a generic smart account.
      - `program_id` string, required
      - `settings_seed` string, required — u128 global-counter seed of the Settings PDA
      - `settings_authority` string, nullable — null = autonomous (settings changes go through signers)
      - `threshold` number, required
      - `time_lock` number, required — Seconds
      - `transaction_index` number, required
      - `stale_transaction_index` number, required
      - `signers` object[], required
      - `policies` AccountConnectionAltitudePolicyDto[], required
        - `address` string, required
        - `seed` number, required
      - `policies_truncated` boolean — Present (true) only in the edge case where the account has cycled through more than 2048 policies over its lifetime (the scan cap) — policies with seeds above 2048 are then missing from the list.
      - `pending_proposals` AccountConnectionSquadsPendingProposalDto[], required
        - `address` string, required
        - `transaction_index` number, required
        - `status` 'draft' | 'active' | 'executeReady' | 'approved' | 'executing' | 'executed' | 'rejected' | 'cancelled' | 'unknown', required — V3: draft/active/executeReady/executed/rejected/cancelled. V4 adds: approved/executing.
        - `approved_count` number, required
        - `rejected_count` number, required
        - `approved` string[] — Signer pubkeys that approved (per-signer confirmation). Absent on connections persisted before this field existed, until next refresh.
        - `rejected` string[] — Signer pubkeys that rejected. Absent on connections persisted before this field existed, until next refresh.
        - `timestamp` number, nullable
      - `smart_accounts` AccountConnectionAltitudeSmartAccountDto[], required
        - `account_index` number, required — Smart-account (vault) index
        - `address` string, required
        - `lamports` string, required
        - `token_accounts` object[], required
    - `realms` AccountConnectionRealmsPublicDataDto
      - `realm_address` string, required
      - `resolved_from_address` string, required
      - `program_id` string, required
      - `version` 'v2', required
      - `realm_name` string, required
      - `community_mint` string, required
      - `council_mint` string, nullable
      - `authority` string, nullable
      - `min_community_weight_to_create_governance` string, required
      - `council_members` object[], required
      - `community_members_count` number, required
      - `governances` object[], required
      - `treasuries` AccountConnectionRealmsTreasuryDto[], required
        - `governance` string, required
        - `native_treasury` string, required
        - `lamports` string, required
        - `token_accounts` AccountConnectionRealmsTokenAccountDto[], required
          - `pubkey` string, required
          - `owner` string, required
          - `owner_kind` 'native_treasury' | 'governance', required
          - `mint` string, required
          - `balance` string, required
          - `decimals` number, required
          - `ui_amount` string, required
      - `latest_active_proposal` AccountConnectionRealmsLatestActiveProposalDto
        - `pubkey` string, required
        - `governance` string, required
        - `governing_token_mint` string, required
        - `track` 'community' | 'council', required
        - `name` string, required
        - `state` string, required
        - `draft_at` number, required

---

[API](https://skmtc.net/range/apis/range-platform-api.md) · [All operations](https://skmtc.net/range/apis/range-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/range/range-platform-api/revisions/9926df2e476d/schema)
