diff --git a/content/api/grpc.md b/content/api/grpc.md index ff41805..7e62d0e 100644 --- a/content/api/grpc.md +++ b/content/api/grpc.md @@ -168,33 +168,33 @@ For seamless integration with Pactus, you can use these client libraries: UnloadWallet
  • - - GetTotalBalance -
  • -
  • - - SignRawTransaction + + ListWallets
  • - - GetValidatorAddress + + GetWalletInfo
  • - - GetNewAddress + + IsWalletLoaded
  • - - GetAddressHistory + + UpdatePassword
  • - - SignMessage + + GetTotalBalance
  • GetTotalStake
  • +
  • + + GetValidatorAddress +
  • GetAddressInfo @@ -204,16 +204,24 @@ For seamless integration with Pactus, you can use these client libraries: SetAddressLabel
  • - - ListWallet + + GetNewAddress
  • - - GetWalletInfo + + ListAddresses +
  • +
  • + + SignMessage +
  • +
  • + + SignRawTransaction
  • - - ListAddress + + ListTransactions
  • @@ -510,6 +518,29 @@ For seamless integration with Pactus, you can use these client libraries: The signature for the transaction. + + + transaction.block_height + uint32 + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + transaction.confirmed + bool + + Indicates whether the transaction is confirmed. + + + + transaction.confirmations + int32 + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -1251,6 +1282,29 @@ For seamless integration with Pactus, you can use these client libraries: The signature for the transaction. + + + transaction.block_height + uint32 + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + transaction.confirmed + bool + + Indicates whether the transaction is confirmed. + + + + transaction.confirmations + int32 + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -1643,6 +1697,29 @@ BLOCK_VERBOSITY_TRANSACTIONS. The signature for the transaction. + + + txs[].block_height + uint32 + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + txs[].confirmed + bool + + Indicates whether the transaction is confirmed. + + + + txs[].confirmations + int32 + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -2672,6 +2749,29 @@ Message has no fields. The signature for the transaction. + + + txs[].block_height + uint32 + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + txs[].confirmed + bool + + Indicates whether the transaction is confirmed. + + + + txs[].confirmations + int32 + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -3369,6 +3469,13 @@ signing, verification, and other cryptographic operations.

    + wallet_name + string + + The name for the new wallet. + + + mnemonic string @@ -3503,11 +3610,12 @@ signing, verification, and other cryptographic operations.

    -#### GetTotalBalance +#### ListWallets -

    GetTotalBalance returns the total available balance of the wallet.

    +

    ListWallets returns a list of all available wallets. +If `include_unloaded` is set, it returns both loaded and unloaded wallets.

    -

    GetTotalBalanceRequest Request

    +

    ListWalletsRequest Request

    @@ -3515,15 +3623,15 @@ signing, verification, and other cryptographic operations.

    - - + +
    wallet_name stringinclude_unloaded bool - The name of the wallet to get the total balance. + Whether to include wallets that exist on disk but are not currently loaded.
    -

    GetTotalBalanceResponse Response

    +

    ListWalletsResponse Response

    @@ -3531,27 +3639,20 @@ signing, verification, and other cryptographic operations.

    - - - - - - - + +
    wallet_name string - The name of the queried wallet. -
    total_balance int64walletsrepeated string - The total balance of the wallet in NanoPAC. + Array of wallet names.
    -#### SignRawTransaction +#### GetWalletInfo -

    SignRawTransaction signs a raw transaction for a specified wallet.

    +

    GetWalletInfo returns detailed information about a specific wallet.

    -

    SignRawTransactionRequest Request

    +

    GetWalletInfoRequest Request

    @@ -3562,26 +3663,12 @@ signing, verification, and other cryptographic operations.

    - - - - - - - - - -
    wallet_name string - The name of the wallet used for signing. -
    raw_transaction string - The raw transaction data to be signed. -
    password string - Wallet password required for signing. + The name of the wallet to query.
    -

    SignRawTransactionResponse Response

    +

    GetWalletInfoResponse Response

    @@ -3589,27 +3676,76 @@ signing, verification, and other cryptographic operations.

    - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    transaction_idwallet_name string - The ID of the signed transaction. + The name of the wallet.
    signed_raw_transactionversion int32 + The wallet format version. +
    network string - The signed raw transaction data. + The network the wallet is connected to (e.g., mainnet, testnet). +
    encrypted bool + Indicates if the wallet is encrypted. +
    uuid string + A unique identifier of the wallet. +
    created_at int64 + Unix timestamp of wallet creation. +
    default_fee int64 + The default fee of the wallet. +
    driver string + The storage driver used by the wallet (e.g., SQLite, Legacy JSON ). +
    path string + Path to the wallet file or storage location.
    -#### GetValidatorAddress +#### IsWalletLoaded -

    GetValidatorAddress retrieves the validator address associated with a public key.

    +

    IsWalletLoaded checks whether the specified wallet is currently loaded.

    -

    GetValidatorAddressRequest Request

    +

    IsWalletLoadedRequest Request

    @@ -3617,15 +3753,15 @@ signing, verification, and other cryptographic operations.

    - +
    public_keywallet_name string - The public key of the validator. + Name of the wallet to check.
    -

    GetValidatorAddressResponse Response

    +

    IsWalletLoadedResponse Response

    @@ -3633,20 +3769,27 @@ signing, verification, and other cryptographic operations.

    - + + + + + +
    addresswallet_name string - The validator address associated with the public key. + Name of the wallet. +
    loaded bool + True if the wallet is currently loaded.
    -#### GetNewAddress +#### UpdatePassword -

    GetNewAddress generates a new address for the specified wallet.

    +

    UpdatePassword updates the password of an existing wallet.

    -

    GetNewAddressRequest Request

    +

    UpdatePasswordRequest Request

    @@ -3657,41 +3800,47 @@ signing, verification, and other cryptographic operations.

    - - + + - + + +
    wallet_name string - The name of the wallet to generate a new address. + The name of the wallet whose password will be updated.
    address_type AddressTypeold_password string - (Enum)The type of address to generate. -
    Available values:
      -
    • ADDRESS_TYPE_TREASURY = 0 (Treasury address type. -Should not be used to generate new addresses.)
    • -
    • ADDRESS_TYPE_VALIDATOR = 1 (Validator address type used for validator nodes.)
    • -
    • ADDRESS_TYPE_BLS_ACCOUNT = 2 (Account address type with BLS signature scheme.)
    • -
    • ADDRESS_TYPE_ED25519_ACCOUNT = 3 (Account address type with Ed25519 signature scheme. -Note: Generating a new Ed25519 address requires the wallet password.)
    • -
    + The current wallet password.
    labelnew_password string - A label for the new address. + The new wallet password.
    +

    UpdatePasswordResponse Response

    + + + + + + - + - +
    FieldTypeDescription
    passwordwallet_name string - Password for the new address. It's required when address_type is Ed25519 type. + The name of the wallet whose password was updated.
    -

    GetNewAddressResponse Response

    + +#### GetTotalBalance + +

    GetTotalBalance returns the total available balance of the wallet.

    + +

    GetTotalBalanceRequest Request

    @@ -3702,52 +3851,12 @@ Note: Generating a new Ed25519 address requires the wallet password.) - - - - - - - - - - - - - - - - - - - - - - - - - - +
    wallet_name string - The name of the wallet where address was generated. + The name of the wallet to get the total balance.
    address_info AddressInfo - Detailed information about the new address. -
    address_info.address string - The address string. -
    address_info.public_key string - The public key associated with the address. -
    address_info.label string - A human-readable label associated with the address. -
    address_info.path string - The Hierarchical Deterministic (HD) path of the address within the wallet. -
    - -#### GetAddressHistory - -

    GetAddressHistory retrieves the transaction history of an address.

    - -

    GetAddressHistoryRequest Request

    +

    GetTotalBalanceResponse Response

    @@ -3758,75 +3867,24 @@ Note: Generating a new Ed25519 address requires the wallet password.) - - - - - - -
    wallet_name string - The name of the wallet containing the address. -
    address string - The address to retrieve history for. + The name of the queried wallet.
    -

    GetAddressHistoryResponse Response

    - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - +
    FieldTypeDescription
    history_inforepeated HistoryInfo
    total_balance int64 - List of all historical transactions associated with the address. + The total balance of the wallet in NanoPAC.
    history_info[].transaction_id string - The transaction ID in hexadecimal format. -
    history_info[].time uint32 - Unix timestamp of when the transaction was confirmed. -
    history_info[].payload_type string - The type of transaction payload. -
    history_info[].description string - Human-readable description of the transaction. -
    history_info[].amount int64 - The transaction amount in NanoPAC. -
    -#### SignMessage +#### GetTotalStake -

    SignMessage signs an arbitrary message using a wallet's private key.

    +

    GetTotalStake returns the total stake amount in the wallet.

    -

    SignMessageRequest Request

    +

    GetTotalStakeRequest Request

    @@ -3837,33 +3895,12 @@ Note: Generating a new Ed25519 address requires the wallet password.) - - - - - - - - - - - - - - -
    wallet_name string - The name of the wallet to sign with. -
    password string - Wallet password required for signing. -
    address string - The address whose private key should be used for signing the message. -
    message string - The arbitrary message to be signed. + The name of the wallet to get the total stake.
    -

    SignMessageResponse Response

    +

    GetTotalStakeResponse Response

    @@ -3871,20 +3908,28 @@ Note: Generating a new Ed25519 address requires the wallet password.) - + + + + + +
    signaturewallet_name string - The signature in hexadecimal format. + The name of the queried wallet. +
    total_stake int64 + The total stake amount in NanoPAC.
    -#### GetTotalStake +#### GetValidatorAddress -

    GetTotalStake returns the total stake amount in the wallet.

    +

    GetValidatorAddress retrieves the validator address associated with a public key. +Deprecated: Will move into utils.

    -

    GetTotalStakeRequest Request

    +

    GetValidatorAddressRequest Request

    @@ -3892,15 +3937,15 @@ Note: Generating a new Ed25519 address requires the wallet password.) - +
    wallet_namepublic_key string - The name of the wallet to get the total stake. + The public key of the validator.
    -

    GetTotalStakeResponse Response

    +

    GetValidatorAddressResponse Response

    @@ -3908,17 +3953,10 @@ Note: Generating a new Ed25519 address requires the wallet password.) - + - - - - - @@ -3966,34 +4004,41 @@ Note: Generating a new Ed25519 address requires the wallet password.) - - - - - - - - - - - - + + - - - - - + + + + + + + + + + + + + + + + + + + +
    wallet_nameaddress string - The name of the queried wallet. -
    total_stake int64 - The total stake amount in NanoPAC. + The validator address associated with the public key.
    address string - The queried address. -
    label string - The address label. -
    public_key stringaddress_info AddressInfo - The public key of the address. + Detailed information about the address.
    path string - The Hierarchical Deterministic (HD) path of the address. -
    address_info.address string + The address string. +
    address_info.public_key string + The public key associated with the address. +
    address_info.label string + A human-readable label associated with the address. +
    address_info.path string + The Hierarchical Deterministic (HD) path of the address within the wallet. +
    #### SetAddressLabel @@ -4039,43 +4084,40 @@ Note: Generating a new Ed25519 address requires the wallet password.)

    SetAddressLabelResponse Response

    - - - - - - -
    FieldTypeDescription
    - -#### ListWallet - -

    ListWallet returns a list of all available wallets.

    - -

    ListWalletRequest Request

    - -Message has no fields. -

    ListWalletResponse Response

    - - - + + + + + + + + + + + +
    FieldTypeDescription
    walletsrepeated stringwallet_name string - Array of wallet names. + The name of the wallet where the address label was updated. +
    address string + The address where the label was updated. +
    label string + The new label for the address.
    -#### GetWalletInfo +#### GetNewAddress -

    GetWalletInfo returns detailed information about a specific wallet.

    +

    GetNewAddress generates a new address for the specified wallet.

    -

    GetWalletInfoRequest Request

    +

    GetNewAddressRequest Request

    @@ -4086,75 +4128,97 @@ Message has no fields. - -
    wallet_name string - The name of the wallet to query. + The name of the wallet to generate a new address.
    -

    GetWalletInfoResponse Response

    - - - - - - - - + + - - - - - - - + + - - - + + + - - + +
    FieldTypeDescription
    wallet_name stringaddress_type AddressType - The name of the wallet to query. -
    version int32 - The wallet format version. + (Enum)The type of address to generate. +
    Available values:
      +
    • ADDRESS_TYPE_TREASURY = 0 (Treasury address type. +Should not be used to generate new addresses.)
    • +
    • ADDRESS_TYPE_VALIDATOR = 1 (Validator address type used for validator nodes.)
    • +
    • ADDRESS_TYPE_BLS_ACCOUNT = 2 (Account address type with BLS signature scheme.)
    • +
    • ADDRESS_TYPE_ED25519_ACCOUNT = 3 (Account address type with Ed25519 signature scheme. +Note: Generating a new Ed25519 address requires the wallet password.)
    • +
    network
    label string - The network the wallet is connected to (e.g., mainnet, testnet). + A label for the new address.
    encrypted bool
    password string - Indicates if the wallet is encrypted. + Password for the new address. It's required when address_type is Ed25519 type.
    uuid
    +

    GetNewAddressResponse Response

    + + + + + + + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string - A unique identifier of the wallet. + The name of the wallet where address was generated.
    created_at int64address_info AddressInfo - Unix timestamp of wallet creation. + Detailed information about the new address.
    default_fee int64 - The default fee of the wallet. -
    address_info.address string + The address string. +
    address_info.public_key string + The public key associated with the address. +
    address_info.label string + A human-readable label associated with the address. +
    address_info.path string + The Hierarchical Deterministic (HD) path of the address within the wallet. +
    -#### ListAddress +#### ListAddresses -

    ListAddress returns all addresses in the specified wallet.

    +

    ListAddresses returns all addresses in the specified wallet.

    -

    ListAddressRequest Request

    +

    ListAddressesRequest Request

    @@ -4168,9 +4232,24 @@ Message has no fields. The name of the queried wallet. + + + + +
    address_typesrepeated AddressType + (Enum)Filter addresses by their types. If empty, all address types are included. +
    Available values:
      +
    • ADDRESS_TYPE_TREASURY = 0 (Treasury address type. +Should not be used to generate new addresses.)
    • +
    • ADDRESS_TYPE_VALIDATOR = 1 (Validator address type used for validator nodes.)
    • +
    • ADDRESS_TYPE_BLS_ACCOUNT = 2 (Account address type with BLS signature scheme.)
    • +
    • ADDRESS_TYPE_ED25519_ACCOUNT = 3 (Account address type with Ed25519 signature scheme. +Note: Generating a new Ed25519 address requires the wallet password.)
    • +
    +
    -

    ListAddressResponse Response

    +

    ListAddressesResponse Response

    @@ -4222,6 +4301,453 @@ Message has no fields.
    +#### SignMessage + +

    SignMessage signs an arbitrary message using a wallet's private key.

    + +

    SignMessageRequest Request

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet to sign with. +
    password string + Wallet password required for signing. +
    address string + The address whose private key should be used for signing the message. +
    message string + The arbitrary message to be signed. +
    +

    SignMessageResponse Response

    + + + + + + + + + + + + +
    FieldTypeDescription
    signature string + The signature in hexadecimal format. +
    + +#### SignRawTransaction + +

    SignRawTransaction signs a raw transaction for a specified wallet.

    + +

    SignRawTransactionRequest Request

    + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet used for signing. +
    raw_transaction string + The raw transaction data to be signed. +
    password string + Wallet password required for signing. +
    +

    SignRawTransactionResponse Response

    + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    transaction_id string + The ID of the signed transaction. +
    signed_raw_transaction string + The signed raw transaction data. +
    + +#### ListTransactions + +

    ListTransactions returns a list of transactions for a wallet, +optionally filtered by a specific address, with pagination support.

    + +

    ListTransactionsRequest Request

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet to query transactions for. +
    address string + Optional: The address to filter transactions. +If empty or set to "*", transactions for all addresses in the wallet are included. +
    direction TxDirection + (Enum)Filter transactions by direction relative to the wallet. +Defaults to any direction if not set. +
    Available values:
      +
    • TX_DIRECTION_ANY = 0 (include both incoming and outgoing transactions.)
    • +
    • TX_DIRECTION_INCOMING = 1 (Include only incoming transactions where the wallet receives funds.)
    • +
    • TX_DIRECTION_OUTGOING = 2 (Include only outgoing transactions where the wallet sends funds.)
    • +
    +
    count int32 + Optional: The maximum number of transactions to return. +Defaults to 10 if not set. +
    skip int32 + Optional: The number of transactions to skip (for pagination). +Defaults to 0 if not set. +
    +

    ListTransactionsResponse Response

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet queried. +
    txsrepeated TransactionInfo + List of transactions for the wallet, filtered by the specified address if provided. +
    txs[].id string + The unique ID of the transaction. +
    txs[].data string + The raw transaction data in hexadecimal format. +
    txs[].version int32 + The version of the transaction. +
    txs[].lock_time uint32 + The lock time for the transaction. +
    txs[].value int64 + The value of the transaction in NanoPAC. +
    txs[].fee int64 + The fee for the transaction in NanoPAC. +
    txs[].payload_type PayloadType + (Enum)The type of transaction payload. +
    Available values:
      +
    • PAYLOAD_TYPE_UNSPECIFIED = 0 (Unspecified payload type.)
    • +
    • PAYLOAD_TYPE_TRANSFER = 1 (Transfer payload type.)
    • +
    • PAYLOAD_TYPE_BOND = 2 (Bond payload type.)
    • +
    • PAYLOAD_TYPE_SORTITION = 3 (Sortition payload type.)
    • +
    • PAYLOAD_TYPE_UNBOND = 4 (Unbond payload type.)
    • +
    • PAYLOAD_TYPE_WITHDRAW = 5 (Withdraw payload type.)
    • +
    • PAYLOAD_TYPE_BATCH_TRANSFER = 6 (Batch transfer payload type.)
    • +
    +
    txs[].transfer PayloadTransfer + (OneOf)Transfer transaction payload. +
    txs[].transfer.sender string + The sender's address. +
    txs[].transfer.receiver string + The receiver's address. +
    txs[].transfer.amount int64 + The amount to be transferred in NanoPAC. +
    txs[].bond PayloadBond + (OneOf)Bond transaction payload. +
    txs[].bond.sender string + The sender's address. +
    txs[].bond.receiver string + The receiver's address. +
    txs[].bond.stake int64 + The stake amount in NanoPAC. +
    txs[].bond.public_key string + The public key of the validator. +
    txs[].sortition PayloadSortition + (OneOf)Sortition transaction payload. +
    txs[].sortition.address string + The validator address associated with the sortition proof. +
    txs[].sortition.proof string + The proof for the sortition. +
    txs[].unbond PayloadUnbond + (OneOf)Unbond transaction payload. +
    txs[].unbond.validator string + The address of the validator to unbond from. +
    txs[].withdraw PayloadWithdraw + (OneOf)Withdraw transaction payload. +
    txs[].withdraw.validator_address string + The address of the validator to withdraw from. +
    txs[].withdraw.account_address string + The address of the account to withdraw to. +
    txs[].withdraw.amount int64 + The withdrawal amount in NanoPAC. +
    txs[].batch_transfer PayloadBatchTransfer + (OneOf)Batch Transfer transaction payload. +
    txs[].batch_transfer.sender string + The sender's address. +
    txs[].batch_transfer.recipientsrepeated Recipient + The list of recipients with their amounts. +
    txs[].memo string + A memo string for the transaction. +
    txs[].public_key string + The public key associated with the transaction. +
    txs[].signature string + The signature for the transaction. +
    txs[].block_height uint32 + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. +
    txs[].confirmed bool + Indicates whether the transaction is confirmed. +
    txs[].confirmations int32 + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. +
    + ## Scalar Value Types diff --git a/content/api/json-rpc.md b/content/api/json-rpc.md index eda4a83..8e57853 100644 --- a/content/api/json-rpc.md +++ b/content/api/json-rpc.md @@ -218,33 +218,33 @@ curl --location 'http://localhost:8545/' \ pactus.wallet.unload_wallet
  • - - pactus.wallet.get_total_balance -
  • -
  • - - pactus.wallet.sign_raw_transaction + + pactus.wallet.list_wallets
  • - - pactus.wallet.get_validator_address + + pactus.wallet.get_wallet_info
  • - - pactus.wallet.get_new_address + + pactus.wallet.is_wallet_loaded
  • - - pactus.wallet.get_address_history + + pactus.wallet.update_password
  • - - pactus.wallet.sign_message + + pactus.wallet.get_total_balance
  • pactus.wallet.get_total_stake
  • +
  • + + pactus.wallet.get_validator_address +
  • pactus.wallet.get_address_info @@ -254,16 +254,24 @@ curl --location 'http://localhost:8545/' \ pactus.wallet.set_address_label
  • - - pactus.wallet.list_wallet + + pactus.wallet.get_new_address
  • - - pactus.wallet.get_wallet_info + + pactus.wallet.list_addresses +
  • +
  • + + pactus.wallet.sign_message +
  • +
  • + + pactus.wallet.sign_raw_transaction
  • - - pactus.wallet.list_address + + pactus.wallet.list_transactions
  • @@ -560,6 +568,29 @@ curl --location 'http://localhost:8545/' \ + + + + + + + + + + + + + + +
    The signature for the transaction.
    transaction.block_height numeric + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. +
    transaction.confirmed boolean + Indicates whether the transaction is confirmed. +
    transaction.confirmations numeric + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. +
    @@ -1301,6 +1332,29 @@ curl --location 'http://localhost:8545/' \ The signature for the transaction. + + + transaction.block_height + numeric + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + transaction.confirmed + boolean + + Indicates whether the transaction is confirmed. + + + + transaction.confirmations + numeric + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -1693,6 +1747,29 @@ BLOCK_VERBOSITY_TRANSACTIONS. The signature for the transaction. + + + txs[].block_height + numeric + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + txs[].confirmed + boolean + + Indicates whether the transaction is confirmed. + + + + txs[].confirmations + numeric + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -2722,6 +2799,29 @@ Parameters has no fields. The signature for the transaction. + + + txs[].block_height + numeric + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + txs[].confirmed + boolean + + Indicates whether the transaction is confirmed. + + + + txs[].confirmations + numeric + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + @@ -3419,6 +3519,13 @@ signing, verification, and other cryptographic operations.

    + wallet_name + string + + The name for the new wallet. + + + mnemonic string @@ -3553,9 +3660,10 @@ signing, verification, and other cryptographic operations.

    -#### pactus.wallet.get_total_balance +#### pactus.wallet.list_wallets -

    GetTotalBalance returns the total available balance of the wallet.

    +

    ListWallets returns a list of all available wallets. +If `include_unloaded` is set, it returns both loaded and unloaded wallets.

    Parameters

    @@ -3565,10 +3673,10 @@ signing, verification, and other cryptographic operations.

    - wallet_name - string + include_unloaded + boolean - The name of the wallet to get the total balance. + Whether to include wallets that exist on disk but are not currently loaded. @@ -3581,25 +3689,18 @@ signing, verification, and other cryptographic operations.

    - wallet_name - string - - The name of the queried wallet. - - - - total_balance - numeric + wallets + repeated string - The total balance of the wallet in NanoPAC. + Array of wallet names. -#### pactus.wallet.sign_raw_transaction +#### pactus.wallet.get_wallet_info -

    SignRawTransaction signs a raw transaction for a specified wallet.

    +

    GetWalletInfo returns detailed information about a specific wallet.

    Parameters

    @@ -3612,21 +3713,7 @@ signing, verification, and other cryptographic operations.

    wallet_name string - The name of the wallet used for signing. - - - - raw_transaction - string - - The raw transaction data to be signed. - - - - password - string - - Wallet password required for signing. + The name of the wallet to query. @@ -3639,25 +3726,74 @@ signing, verification, and other cryptographic operations.

    - transaction_id + wallet_name string - The ID of the signed transaction. + The name of the wallet. - signed_raw_transaction + version + numeric + + The wallet format version. + + + + network string - The signed raw transaction data. + The network the wallet is connected to (e.g., mainnet, testnet). + + + + encrypted + boolean + + Indicates if the wallet is encrypted. + + + + uuid + string + + A unique identifier of the wallet. + + + + created_at + numeric + + Unix timestamp of wallet creation. + + + + default_fee + numeric + + The default fee of the wallet. + + + + driver + string + + The storage driver used by the wallet (e.g., SQLite, Legacy JSON ). + + + + path + string + + Path to the wallet file or storage location. -#### pactus.wallet.get_validator_address +#### pactus.wallet.is_wallet_loaded -

    GetValidatorAddress retrieves the validator address associated with a public key.

    +

    IsWalletLoaded checks whether the specified wallet is currently loaded.

    Parameters

    @@ -3667,10 +3803,10 @@ signing, verification, and other cryptographic operations.

    - public_key + wallet_name string - The public key of the validator. + Name of the wallet to check. @@ -3683,18 +3819,25 @@ signing, verification, and other cryptographic operations.

    - address + wallet_name string - The validator address associated with the public key. + Name of the wallet. + + + + loaded + boolean + + True if the wallet is currently loaded. -#### pactus.wallet.get_new_address +#### pactus.wallet.update_password -

    GetNewAddress generates a new address for the specified wallet.

    +

    UpdatePassword updates the password of an existing wallet.

    Parameters

    @@ -3707,36 +3850,58 @@ signing, verification, and other cryptographic operations.

    wallet_name string - The name of the wallet to generate a new address. + The name of the wallet whose password will be updated. - address_type - numeric + old_password + string - (Enum)The type of address to generate. -
    Available values: + The current wallet password. - label + new_password string - A label for the new address. + The new wallet password. + + + + +

    Result

    + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet whose password was updated.
    + +#### pactus.wallet.get_total_balance + +

    GetTotalBalance returns the total available balance of the wallet.

    + +

    Parameters

    + + + + + + - + @@ -3752,50 +3917,22 @@ Note: Generating a new Ed25519 address requires the wallet password.) - - + + - - - - - - - - - - - - - - - - - - - - - +
    FieldTypeDescription
    passwordwallet_name string - Password for the new address. It's required when address_type is Ed25519 type. + The name of the wallet to get the total balance.
    wallet_name string - The name of the wallet where address was generated. + The name of the queried wallet.
    address_info object (AddressInfo)total_balance numeric - Detailed information about the new address. + The total balance of the wallet in NanoPAC.
    address_info.address string - The address string. -
    address_info.public_key string - The public key associated with the address. -
    address_info.label string - A human-readable label associated with the address. -
    address_info.path string - The Hierarchical Deterministic (HD) path of the address within the wallet. -
    -#### pactus.wallet.get_address_history +#### pactus.wallet.get_total_stake -

    GetAddressHistory retrieves the transaction history of an address.

    +

    GetTotalStake returns the total stake amount in the wallet.

    Parameters

    @@ -3808,14 +3945,7 @@ Note: Generating a new Ed25519 address requires the wallet password.) wallet_name string - The name of the wallet containing the address. - - - - address - string - - The address to retrieve history for. + The name of the wallet to get the total stake. @@ -3828,53 +3958,26 @@ Note: Generating a new Ed25519 address requires the wallet password.) - history_info - repeated object (HistoryInfo) + wallet_name + string - List of all historical transactions associated with the address. + The name of the queried wallet. - history_info[].transaction_id - string - - The transaction ID in hexadecimal format. - - - - history_info[].time - numeric - - Unix timestamp of when the transaction was confirmed. - - - - history_info[].payload_type - string - - The type of transaction payload. - - - - history_info[].description - string - - Human-readable description of the transaction. - - - - history_info[].amount - numeric - - The transaction amount in NanoPAC. - - - + total_stake + numeric + + The total stake amount in NanoPAC. + + + -#### pactus.wallet.sign_message +#### pactus.wallet.get_validator_address -

    SignMessage signs an arbitrary message using a wallet's private key.

    +

    GetValidatorAddress retrieves the validator address associated with a public key. +Deprecated: Will move into utils.

    Parameters

    @@ -3884,31 +3987,10 @@ Note: Generating a new Ed25519 address requires the wallet password.) - wallet_name - string - - The name of the wallet to sign with. - - - - password - string - - Wallet password required for signing. - - - - address - string - - The address whose private key should be used for signing the message. - - - - message + public_key string - The arbitrary message to be signed. + The public key of the validator. @@ -3921,18 +4003,18 @@ Note: Generating a new Ed25519 address requires the wallet password.) - signature + address string - The signature in hexadecimal format. + The validator address associated with the public key. -#### pactus.wallet.get_total_stake +#### pactus.wallet.get_address_info -

    GetTotalStake returns the total stake amount in the wallet.

    +

    GetAddressInfo returns detailed information about a specific address.

    Parameters

    @@ -3945,7 +4027,14 @@ Note: Generating a new Ed25519 address requires the wallet password.) wallet_name string - The name of the wallet to get the total stake. + The name of the wallet containing the address. + + + + address + string + + The address to query. @@ -3961,22 +4050,50 @@ Note: Generating a new Ed25519 address requires the wallet password.) wallet_name string - The name of the queried wallet. + The name of the wallet containing the address. - total_stake - numeric + address_info + object (AddressInfo) - The total stake amount in NanoPAC. + Detailed information about the address. - + + address_info.address + string + + The address string. + + + + address_info.public_key + string + + The public key associated with the address. + + + + address_info.label + string + + A human-readable label associated with the address. + + + + address_info.path + string + + The Hierarchical Deterministic (HD) path of the address within the wallet. + + + -#### pactus.wallet.get_address_info +#### pactus.wallet.set_address_label -

    GetAddressInfo returns detailed information about a specific address.

    +

    SetAddressLabel sets or updates the label for a given address.

    Parameters

    @@ -3992,11 +4109,25 @@ Note: Generating a new Ed25519 address requires the wallet password.) The name of the wallet containing the address. + + password + string + + Wallet password required for modification. + + address string - The address to query. + The address to label. + + + + label + string + + The new label for the address. @@ -4012,43 +4143,29 @@ Note: Generating a new Ed25519 address requires the wallet password.) wallet_name string - The name of the wallet containing the address. + The name of the wallet where the address label was updated. address string - The queried address. + The address where the label was updated. label string - The address label. - - - - public_key - string - - The public key of the address. - - - - path - string - - The Hierarchical Deterministic (HD) path of the address. + The new label for the address. -#### pactus.wallet.set_address_label +#### pactus.wallet.get_new_address -

    SetAddressLabel sets or updates the label for a given address.

    +

    GetNewAddress generates a new address for the specified wallet.

    Parameters

    @@ -4061,74 +4178,100 @@ Note: Generating a new Ed25519 address requires the wallet password.) wallet_name string - The name of the wallet containing the address. + The name of the wallet to generate a new address. - password - string + address_type + numeric - Wallet password required for modification. + (Enum)The type of address to generate. +
    Available values: - address + label string - The address to label. + A label for the new address. - label + password string - The new label for the address. + Password for the new address. It's required when address_type is Ed25519 type.

    Result

    - - - - - - -
    FieldTypeDescription
    - -#### pactus.wallet.list_wallet - -

    ListWallet returns a list of all available wallets.

    - -

    Parameters

    - -Parameters has no fields. -

    Result

    - - - + + - -
    FieldTypeDescription
    walletsrepeated stringwallet_name string - Array of wallet names. + The name of the wallet where address was generated.
    - -#### pactus.wallet.get_wallet_info - -

    GetWalletInfo returns detailed information about a specific wallet.

    - -

    Parameters

    - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    address_info object (AddressInfo) + Detailed information about the new address. +
    address_info.address string + The address string. +
    address_info.public_key string + The public key associated with the address. +
    address_info.label string + A human-readable label associated with the address. +
    address_info.path string + The Hierarchical Deterministic (HD) path of the address within the wallet. +
    + +#### pactus.wallet.list_addresses + +

    ListAddresses returns all addresses in the specified wallet.

    + +

    Parameters

    + + + @@ -4136,7 +4279,22 @@ Parameters has no fields. + + + + + @@ -4152,57 +4310,167 @@ Parameters has no fields. - - + + - + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string - The name of the wallet to query. + The name of the queried wallet. +
    address_typesrepeated numeric + (Enum)Filter addresses by their types. If empty, all address types are included. +
    Available values:
      +
    • ADDRESS_TYPE_TREASURY = 0 (Treasury address type. +Should not be used to generate new addresses.)
    • +
    • ADDRESS_TYPE_VALIDATOR = 1 (Validator address type used for validator nodes.)
    • +
    • ADDRESS_TYPE_BLS_ACCOUNT = 2 (Account address type with BLS signature scheme.)
    • +
    • ADDRESS_TYPE_ED25519_ACCOUNT = 3 (Account address type with Ed25519 signature scheme. +Note: Generating a new Ed25519 address requires the wallet password.)
    • +
    wallet_name string - The name of the wallet to query. + The name of the queried wallet.
    version numericdatarepeated object (AddressInfo) - The wallet format version. + List of all addresses in the wallet with their details.
    networkdata[].address string + The address string. +
    data[].public_key string + The public key associated with the address. +
    data[].label string + A human-readable label associated with the address. +
    data[].path string + The Hierarchical Deterministic (HD) path of the address within the wallet. +
    + +#### pactus.wallet.sign_message + +

    SignMessage signs an arbitrary message using a wallet's private key.

    + +

    Parameters

    + + + + + + + + - - - + + + - - + + - - - + + + + + +
    FieldTypeDescription
    wallet_name string - The network the wallet is connected to (e.g., mainnet, testnet). + The name of the wallet to sign with.
    encrypted boolean
    password string - Indicates if the wallet is encrypted. + Wallet password required for signing.
    uuid
    address string - A unique identifier of the wallet. + The address whose private key should be used for signing the message.
    created_at numeric
    message string - Unix timestamp of wallet creation. + The arbitrary message to be signed. +
    +

    Result

    + + + + + + + + + + + + +
    FieldTypeDescription
    signature string + The signature in hexadecimal format. +
    + +#### pactus.wallet.sign_raw_transaction + +

    SignRawTransaction signs a raw transaction for a specified wallet.

    + +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeDescription
    wallet_name string + The name of the wallet used for signing. +
    raw_transaction string + The raw transaction data to be signed. +
    password string + Wallet password required for signing. +
    +

    Result

    + + + + + + + + + + - - + +
    FieldTypeDescription
    transaction_id string + The ID of the signed transaction.
    default_fee numericsigned_raw_transaction string - The default fee of the wallet. + The signed raw transaction data.
    -#### pactus.wallet.list_address +#### pactus.wallet.list_transactions -

    ListAddress returns all addresses in the specified wallet.

    +

    ListTransactions returns a list of transactions for a wallet, +optionally filtered by a specific address, with pagination support.

    Parameters

    @@ -4215,7 +4483,44 @@ Parameters has no fields. wallet_name string - The name of the queried wallet. + The name of the wallet to query transactions for. + + + + address + string + + Optional: The address to filter transactions. +If empty or set to "*", transactions for all addresses in the wallet are included. + + + + direction + numeric + + (Enum)Filter transactions by direction relative to the wallet. +Defaults to any direction if not set. +
    Available values: + + + + count + numeric + + Optional: The maximum number of transactions to return. +Defaults to 10 if not set. + + + + skip + numeric + + Optional: The number of transactions to skip (for pagination). +Defaults to 0 if not set. @@ -4231,42 +4536,263 @@ Parameters has no fields. wallet_name string - The name of the queried wallet. + The name of the wallet queried. - data - repeated object (AddressInfo) + txs + repeated object (TransactionInfo) - List of all addresses in the wallet with their details. + List of transactions for the wallet, filtered by the specified address if provided. - data[].address + txs[].id string - The address string. + The unique ID of the transaction. - data[].public_key + txs[].data string - The public key associated with the address. + The raw transaction data in hexadecimal format. - data[].label + txs[].version + numeric + + The version of the transaction. + + + + txs[].lock_time + numeric + + The lock time for the transaction. + + + + txs[].value + numeric + + The value of the transaction in NanoPAC. + + + + txs[].fee + numeric + + The fee for the transaction in NanoPAC. + + + + txs[].payload_type + numeric + + (Enum)The type of transaction payload. +
    Available values: + + + + txs[].transfer + object (PayloadTransfer) + + (OneOf)Transfer transaction payload. + + + + txs[].transfer.sender + string + + The sender's address. + + + + txs[].transfer.receiver + string + + The receiver's address. + + + + txs[].transfer.amount + numeric + + The amount to be transferred in NanoPAC. + + + + txs[].bond + object (PayloadBond) + + (OneOf)Bond transaction payload. + + + + txs[].bond.sender + string + + The sender's address. + + + + txs[].bond.receiver + string + + The receiver's address. + + + + txs[].bond.stake + numeric + + The stake amount in NanoPAC. + + + + txs[].bond.public_key + string + + The public key of the validator. + + + + txs[].sortition + object (PayloadSortition) + + (OneOf)Sortition transaction payload. + + + + txs[].sortition.address + string + + The validator address associated with the sortition proof. + + + + txs[].sortition.proof + string + + The proof for the sortition. + + + + txs[].unbond + object (PayloadUnbond) + + (OneOf)Unbond transaction payload. + + + + txs[].unbond.validator + string + + The address of the validator to unbond from. + + + + txs[].withdraw + object (PayloadWithdraw) + + (OneOf)Withdraw transaction payload. + + + + txs[].withdraw.validator_address + string + + The address of the validator to withdraw from. + + + + txs[].withdraw.account_address + string + + The address of the account to withdraw to. + + + + txs[].withdraw.amount + numeric + + The withdrawal amount in NanoPAC. + + + + txs[].batch_transfer + object (PayloadBatchTransfer) + + (OneOf)Batch Transfer transaction payload. + + + + txs[].batch_transfer.sender + string + + The sender's address. + + + + txs[].batch_transfer.recipients + repeated object (Recipient) + + The list of recipients with their amounts. + + + + txs[].memo string - A human-readable label associated with the address. + A memo string for the transaction. - data[].path + txs[].public_key string - The Hierarchical Deterministic (HD) path of the address within the wallet. + The public key associated with the transaction. + + + + txs[].signature + string + + The signature for the transaction. + + + + txs[].block_height + numeric + + The block height containing the transaction. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. + + + + txs[].confirmed + boolean + + Indicates whether the transaction is confirmed. + + + + txs[].confirmations + numeric + + The number of blocks that have been added to the chain after this transaction was included in a block. +A value of zero means the transaction is unconfirmed and may still in the transaction pool. diff --git a/content/tutorials/integration-guide.md b/content/tutorials/integration-guide.md new file mode 100644 index 0000000..b308c6c --- /dev/null +++ b/content/tutorials/integration-guide.md @@ -0,0 +1,105 @@ +--- +title: Pactus Integration Guide +weight: 13 +--- + +## Preface + +This guide is intended for developers and infrastructure teams who want to connect +their applications directly to the Pactus network, including wallets, exchanges, +analytics platforms, staking services, and custom backend systems. + +In particular, this document is especially useful for **exchange integrations**, +as Pactus allows exchanges to send transactions, monitor incoming transfers, and +track balances directly via a native Pactus node, without relying on any +third-party APIs or external indexing services. + +## Run a Pactus Node + +Running a Pactus node is simple and can be done in just a few steps. Pactus is +designed to be lightweight and easy to operate. You can set up and run a Pactus +node either as a [system service](/get-started/pactus-daemon/) or using +[Docker](/get-started/pactus-docker/) on your servers. + +Although Pactus storage is optimized and running a full node is recommended, you +may run the node in [pruned mode](/tutorials/pruned-nodes/) if you have limited +storage. A pruned node does not retain the entire blockchain history; instead, +it keeps blocks and transactions only for a configured retention period. By +default, the retention period is set to 10 days, but you can increase it to +higher values (for example, 365 days) to retain transactions for a longer time. + +## Node Endpoints + +Pactus provides multiple endpoints, including [JSON-RPC](/api/json-rpc/), +[gRPC](/api/grpc/), and [HTTP](/api/http/). + +The gRPC service is the primary gateway for interacting with a Pactus node and +should be enabled. For security reasons, we recommend not exposing these +endpoints publicly and restricting access to `localhost` or a private network. + +You may use any of these endpoints depending on your integration requirements. + +## Enable Wallet Service + +Each Pactus node includes a secure, embedded wallet service for managing funds. +This service is disabled by default and can be enabled through the node +[config](/get-started/configuration/) file. + +Exercise caution when enabling the wallet service and follow security best +practices at all times. + +We strongly recommend setting a **strong password** for all wallets. Ideally, +wallet-related APIs should not be exposed publicly. If public access is +required, ensure all communications are properly secured by enabling +authentication and encryption. See +[gRPC Basic Authentication](https://docs.pactus.org/tutorials/grpc-basic-auth/) +[gRPC Basic Authentication](https://docs.pactus.org/tutorials/grpc-basic-auth/) +and +[Secure Connections](https://docs.pactus.org/tutorials/secure-connections/) for +detailed instructions on protecting Pactus endpoints and preventing +unauthorized access. + +## Manage Wallets + +By default, each Pactus node includes an integrated wallet named +`default_wallet`. However, you can create multiple wallets as needed. Each +wallet may serve a different purpose. For example, one wallet for receiving +funds and another for sending transactions. + +You may also create a **neuter wallet**, which is a special wallet without +private keys. Neuter wallets cannot sign transactions but can generate and +manage addresses for receiving funds. This is useful for deposit tracking and +monitoring incoming transactions without exposing private keys. + +Create and manage wallets according to your operational and security strategy. + +## Send Transactions + +Transactions are sent through the wallet service. To send a transaction, you +must first create a **raw (unsigned) transaction**, then sign it using a wallet, +and finally broadcast it to the network. + +To create a raw transaction, use the +[Transaction](/api/grpc/#getrawtransfertransaction) service and provide the +required information, such as the sender and receiver addresses. This returns an +unsigned transaction payload. + +You can then use the wallet service to +**[sign](/api/grpc/#signrawtransaction)** the transaction. The sender address +must belong to your wallet. The signed transaction can be broadcast to the +network using **[BroadcastTransaction](/api/grpc/#broadcasttransaction)**. + +Once a transaction is committed and included in a block, it is finalized and +confirmed. You can retrieve the confirmed transaction details using the +**[GetTransaction](/api/grpc/#gettransaction)** API. If, for any reason, your +transaction is not included in any block, the `GetTransaction` API will return +an error, indicating that the transaction has not been finalized or confirmed. + +## Check for Incoming Transactions + +Each wallet scans and monitors every block for incoming transactions and stores +them in its database. You can query and list wallet transactions using the +[ListTransaction](/api/grpc/#listtransactions) API. Transactions can be filtered +by direction (incoming or outgoing) or by address. Pagination options such as +`count` and `skip` can be used to efficiently navigate large transaction +histories. diff --git a/content/tutorials/pactus-testnet.md b/content/tutorials/pactus-testnet.md index 738c4df..b87a5a2 100644 --- a/content/tutorials/pactus-testnet.md +++ b/content/tutorials/pactus-testnet.md @@ -1,6 +1,6 @@ --- title: Join Pactus Testnet -weight: 13 +weight: 14 --- ## Preface diff --git a/content/tutorials/pruned-nodes.md b/content/tutorials/pruned-nodes.md index 865edf8..2e156bd 100644 --- a/content/tutorials/pruned-nodes.md +++ b/content/tutorials/pruned-nodes.md @@ -1,5 +1,5 @@ --- -title: Use Pruned Nodes +title: Prune Your Pactus Node weight: 4 --- @@ -69,5 +69,8 @@ pactus-daemon.exe prune -w 4. **Restart the Node** Start your Pactus node again to resume normal operation. -This process removes all blocks and transactions older than the last 10 days. -It is especially useful for users with limited storage capacity. +This process removes all blocks and transactions older than your configured `store.retention_days` +(default: 10 days). You can adjust it in your node +[config](/get-started/configuration/) if you want to keep more +or less history. +Pruning is especially useful for users with limited storage capacity. diff --git a/static/swagger-ui/pactus.swagger.json b/static/swagger-ui/pactus.swagger.json index 67900fe..f684f0e 100644 --- a/static/swagger-ui/pactus.swagger.json +++ b/static/swagger-ui/pactus.swagger.json @@ -940,45 +940,6 @@ ] } }, - "/pactus/wallet/get_address_history": { - "get": { - "summary": "GetAddressHistory retrieves the transaction history of an address.", - "operationId": "Wallet_GetAddressHistory", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/pactusGetAddressHistoryResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "walletName", - "description": "The name of the wallet containing the address.", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "address", - "description": "The address to retrieve history for.", - "in": "query", - "required": false, - "type": "string" - } - ], - "tags": [ - "Wallet" - ] - } - }, "/pactus/wallet/get_address_info": { "get": { "summary": "GetAddressInfo returns detailed information about a specific address.", @@ -1144,7 +1105,7 @@ }, "/pactus/wallet/get_validator_address": { "get": { - "summary": "GetValidatorAddress retrieves the validator address associated with a public key.", + "summary": "GetValidatorAddress retrieves the validator address associated with a public key.\nDeprecated: Will move into utils.", "operationId": "Wallet_GetValidatorAddress", "responses": { "200": { @@ -1206,15 +1167,47 @@ ] } }, - "/pactus/wallet/list_address": { + "/pactus/wallet/is_wallet_loaded": { "get": { - "summary": "ListAddress returns all addresses in the specified wallet.", - "operationId": "Wallet_ListAddress", + "summary": "IsWalletLoaded checks whether the specified wallet is currently loaded.", + "operationId": "Wallet_IsWalletLoaded", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/pactusListAddressResponse" + "$ref": "#/definitions/pactusIsWalletLoadedResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "walletName", + "description": "Name of the wallet to check.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Wallet" + ] + } + }, + "/pactus/wallet/list_addresses": { + "get": { + "summary": "ListAddresses returns all addresses in the specified wallet.", + "operationId": "Wallet_ListAddresses", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pactusListAddressesResponse" } }, "default": { @@ -1231,6 +1224,91 @@ "in": "query", "required": false, "type": "string" + }, + { + "name": "addressTypes", + "description": "Filter addresses by their types. If empty, all address types are included.\n\n - ADDRESS_TYPE_TREASURY: Treasury address type.\nShould not be used to generate new addresses.\n - ADDRESS_TYPE_VALIDATOR: Validator address type used for validator nodes.\n - ADDRESS_TYPE_BLS_ACCOUNT: Account address type with BLS signature scheme.\n - ADDRESS_TYPE_ED25519_ACCOUNT: Account address type with Ed25519 signature scheme.\nNote: Generating a new Ed25519 address requires the wallet password.", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "ADDRESS_TYPE_TREASURY", + "ADDRESS_TYPE_VALIDATOR", + "ADDRESS_TYPE_BLS_ACCOUNT", + "ADDRESS_TYPE_ED25519_ACCOUNT" + ] + }, + "collectionFormat": "multi" + } + ], + "tags": [ + "Wallet" + ] + } + }, + "/pactus/wallet/list_transactions": { + "get": { + "summary": "ListTransactions returns a list of transactions for a wallet,\noptionally filtered by a specific address, with pagination support.", + "operationId": "Wallet_ListTransactions", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pactusListTransactionsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "walletName", + "description": "The name of the wallet to query transactions for.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "address", + "description": "Optional: The address to filter transactions.\nIf empty or set to \"*\", transactions for all addresses in the wallet are included.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "direction", + "description": "Filter transactions by direction relative to the wallet.\nDefaults to any direction if not set.\n\n - TX_DIRECTION_ANY: include both incoming and outgoing transactions.\n - TX_DIRECTION_INCOMING: Include only incoming transactions where the wallet receives funds.\n - TX_DIRECTION_OUTGOING: Include only outgoing transactions where the wallet sends funds.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "TX_DIRECTION_ANY", + "TX_DIRECTION_INCOMING", + "TX_DIRECTION_OUTGOING" + ], + "default": "TX_DIRECTION_ANY" + }, + { + "name": "count", + "description": "Optional: The maximum number of transactions to return.\nDefaults to 10 if not set.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "skip", + "description": "Optional: The number of transactions to skip (for pagination).\nDefaults to 0 if not set.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], "tags": [ @@ -1238,15 +1316,15 @@ ] } }, - "/pactus/wallet/list_wallet": { + "/pactus/wallet/list_wallets": { "get": { - "summary": "ListWallet returns a list of all available wallets.", - "operationId": "Wallet_ListWallet", + "summary": "ListWallets returns a list of all available wallets.\nIf `include_unloaded` is set, it returns both loaded and unloaded wallets.", + "operationId": "Wallet_ListWallets", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/pactusListWalletResponse" + "$ref": "#/definitions/pactusListWalletsResponse" } }, "default": { @@ -1256,6 +1334,15 @@ } } }, + "parameters": [ + { + "name": "includeUnloaded", + "description": "Whether to include wallets that exist on disk but are not currently loaded.", + "in": "query", + "required": false, + "type": "boolean" + } + ], "tags": [ "Wallet" ] @@ -1522,6 +1609,52 @@ "Wallet" ] } + }, + "/pactus/wallet/update_password": { + "get": { + "summary": "UpdatePassword updates the password of an existing wallet.", + "operationId": "Wallet_UpdatePassword", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pactusUpdatePasswordResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "walletName", + "description": "The name of the wallet whose password will be updated.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "oldPassword", + "description": "The current wallet password.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "newPassword", + "description": "The new wallet password.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Wallet" + ] + } } }, "definitions": { @@ -1785,6 +1918,10 @@ "pactusCreateWalletResponse": { "type": "object", "properties": { + "walletName": { + "type": "string", + "description": "The name for the new wallet." + }, "mnemonic": { "type": "string", "description": "The mnemonic (seed phrase) for wallet recovery." @@ -1832,20 +1969,6 @@ }, "description": "Response message contains account information." }, - "pactusGetAddressHistoryResponse": { - "type": "object", - "properties": { - "historyInfo": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/pactusHistoryInfo" - }, - "description": "List of all historical transactions associated with the address." - } - }, - "description": "Response message contains address transaction history." - }, "pactusGetAddressInfoResponse": { "type": "object", "properties": { @@ -1853,21 +1976,9 @@ "type": "string", "description": "The name of the wallet containing the address." }, - "address": { - "type": "string", - "description": "The queried address." - }, - "label": { - "type": "string", - "description": "The address label." - }, - "publicKey": { - "type": "string", - "description": "The public key of the address." - }, - "path": { - "type": "string", - "description": "The Hierarchical Deterministic (HD) path of the address." + "addressInfo": { + "$ref": "#/definitions/pactusAddressInfo", + "description": "Detailed information about the address." } }, "description": "Response message contains address details." @@ -2414,7 +2525,7 @@ "properties": { "walletName": { "type": "string", - "description": "The name of the wallet to query." + "description": "The name of the wallet." }, "version": { "type": "integer", @@ -2442,39 +2553,33 @@ "type": "string", "format": "int64", "description": "The default fee of the wallet." + }, + "driver": { + "type": "string", + "description": "The storage driver used by the wallet (e.g., SQLite, Legacy JSON )." + }, + "path": { + "type": "string", + "description": "Path to the wallet file or storage location." } }, "description": "Response message contains wallet details." }, - "pactusHistoryInfo": { + "pactusIsWalletLoadedResponse": { "type": "object", "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID in hexadecimal format." - }, - "time": { - "type": "integer", - "format": "int64", - "description": "Unix timestamp of when the transaction was confirmed." - }, - "payloadType": { - "type": "string", - "description": "The type of transaction payload." - }, - "description": { + "walletName": { "type": "string", - "description": "Human-readable description of the transaction." + "description": "Name of the wallet." }, - "amount": { - "type": "string", - "format": "int64", - "description": "The transaction amount in NanoPAC." + "loaded": { + "type": "boolean", + "description": "True if the wallet is currently loaded." } }, - "description": "HistoryInfo contains transaction history details for an address." + "description": "Response message indicating wallet load status." }, - "pactusListAddressResponse": { + "pactusListAddressesResponse": { "type": "object", "properties": { "walletName": { @@ -2492,7 +2597,25 @@ }, "description": "Response message contains wallet addresses." }, - "pactusListWalletResponse": { + "pactusListTransactionsResponse": { + "type": "object", + "properties": { + "walletName": { + "type": "string", + "description": "The name of the wallet queried." + }, + "txs": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/pactusTransactionInfo" + }, + "description": "List of transactions for the wallet, filtered by the specified address if provided." + } + }, + "description": "Response message containing a list of transactions." + }, + "pactusListWalletsResponse": { "type": "object", "properties": { "wallets": { @@ -2840,7 +2963,21 @@ }, "pactusSetAddressLabelResponse": { "type": "object", - "description": "Response message for address label update." + "properties": { + "walletName": { + "type": "string", + "description": "The name of the wallet where the address label was updated." + }, + "address": { + "type": "string", + "description": "The address where the label was updated." + }, + "label": { + "type": "string", + "description": "The new label for the address." + } + }, + "description": "Response message for updated address label." }, "pactusSignMessageResponse": { "type": "object", @@ -2983,6 +3120,20 @@ "signature": { "type": "string", "description": "The signature for the transaction." + }, + "blockHeight": { + "type": "integer", + "format": "int64", + "description": "The block height containing the transaction.\nA value of zero means the transaction is unconfirmed and may still in the transaction pool." + }, + "confirmed": { + "type": "boolean", + "description": "Indicates whether the transaction is confirmed." + }, + "confirmations": { + "type": "integer", + "format": "int32", + "description": "The number of blocks that have been added to the chain after this transaction was included in a block.\nA value of zero means the transaction is unconfirmed and may still in the transaction pool." } }, "description": "Information about a transaction." @@ -2996,6 +3147,16 @@ "default": "TRANSACTION_VERBOSITY_DATA", "description": "Enumeration for verbosity levels when requesting transaction details.\n\n - TRANSACTION_VERBOSITY_DATA: Request transaction data only.\n - TRANSACTION_VERBOSITY_INFO: Request detailed transaction information." }, + "pactusTxDirection": { + "type": "string", + "enum": [ + "TX_DIRECTION_ANY", + "TX_DIRECTION_INCOMING", + "TX_DIRECTION_OUTGOING" + ], + "default": "TX_DIRECTION_ANY", + "description": "TxDirection indicates the direction of a transaction relative to the wallet.\n\n - TX_DIRECTION_ANY: include both incoming and outgoing transactions.\n - TX_DIRECTION_INCOMING: Include only incoming transactions where the wallet receives funds.\n - TX_DIRECTION_OUTGOING: Include only outgoing transactions where the wallet sends funds." + }, "pactusUnloadWalletResponse": { "type": "object", "properties": { @@ -3006,6 +3167,16 @@ }, "description": "Response message confirming wallet unloading." }, + "pactusUpdatePasswordResponse": { + "type": "object", + "properties": { + "walletName": { + "type": "string", + "description": "The name of the wallet whose password was updated." + } + }, + "description": "Response message confirming wallet password update." + }, "pactusValidatorInfo": { "type": "object", "properties": {