ReddID RPC Documentation - reddcoin-project/reddcoin GitHub Wiki

ReddID System RPC Documentation

This document serves as the comprehensive reference for the Reddcoin Identity (ReddID) system's Remote Procedure Call (RPC) interface. The ReddID system provides a decentralized identity management solution built on the Reddcoin blockchain, consisting of namespaces, user IDs, and social identity features.

Table of Contents

  1. Introduction
  2. Authentication
  3. Error Handling
  4. Namespace Commands
  5. User ID Commands
  6. Profile Commands
  7. Reputation Commands
  8. Command Relationships
  9. Best Practices

Introduction

The ReddID system is organized into three primary components:

  1. Namespaces: Top-level domains like .redd that establish rules for users within them
  2. User IDs: Second-level identifiers like alice.redd that exist within namespaces
  3. ReddIDs: Cross-namespace identities that provide social features and reputation

This RPC interface allows developers to interact with all aspects of the system through the Reddcoin node.

Authentication

All RPC commands require standard Reddcoin RPC authentication. Commands that modify state (creating auctions, bidding, etc.) require wallet access to sign transactions.

Error Handling

The RPC commands will return standardized error codes:

  • RPC_INTERNAL_ERROR (500): System initialization issues or internal errors
  • RPC_INVALID_PARAMETER (400): Invalid command parameters
  • RPC_WALLET_ERROR (500): Issues with wallet access or transaction creation
  • RPC_MISC_ERROR (500): General operation failures
  • RPC_INVALID_ADDRESS_OR_KEY (400): Invalid address formats

Namespace Commands

These commands manage the top-level namespaces in the ReddID system.

Namespace Information Commands

getnamespacelist

Lists all registered namespaces in the system.

Parameters: None

Result:

[
  {
    "id": "namespace_identifier",
    "owner": "owner_address",
    "allow_numbers": true|false,
    "allow_hyphens": true|false,
    "allow_underscores": true|false,
    "min_length": n,
    "max_length": n,
    "renewal_period": n,
    "grace_period": n,
    "namespace_revenue_pct": n,
    "burn_pct": n,
    "node_pct": n,
    "dev_pct": n,
    "min_auction_duration": n,
    "max_auction_duration": n,
    "min_bid_increment": n,
    "last_updated": timestamp,
    "expiration": timestamp
  },
  ...
]

Example:

reddcoin-cli getnamespacelist

getnamespaceinfo

Gets detailed information about a specific namespace.

Parameters:

  1. namespaceid (string, required): The namespace identifier

Result:

{
  "id": "namespace_identifier",
  "owner": "owner_address",
  "allow_numbers": true|false,
  "allow_hyphens": true|false,
  "allow_underscores": true|false,
  "min_length": n,
  "max_length": n,
  "renewal_period": n,
  "grace_period": n,
  "namespace_revenue_pct": n,
  "burn_pct": n,
  "node_pct": n,
  "dev_pct": n,
  "min_auction_duration": n,
  "max_auction_duration": n,
  "min_bid_increment": n,
  "last_updated": timestamp,
  "expiration": timestamp,
  "pricing_tiers": [
    {
      "min_length": n,
      "min_price": amount
    },
    ...
  ]
}

Example:

reddcoin-cli getnamespaceinfo "redd"

Namespace Auction Commands

createnamespacesauction

Creates a namespace auction.

Parameters:

  1. namespaceid (string, required): The namespace identifier (1-15 characters)
  2. reserve_price (numeric, required): The minimum bid amount in RDD
  3. duration_days (numeric, required): The auction duration in days (14-30)
  4. auction_type (numeric, optional): The auction type (0=standard, 1=premium)
  5. account (string, optional): The account to use for HD wallets
  6. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  7. label (string, optional): A label for the address (HD wallet)

Result:

{
  "auction_id": "auction_identifier_hex",
  "namespace_id": "namespace_identifier",
  "start_time": timestamp,
  "end_time": timestamp,
  "reserve_price": amount,
  "auction_type": n,
  "creator_address": "creator_address"
}

Example:

reddcoin-cli createnamespacesauction "redd" 50000 14
reddcoin-cli createnamespacesauction "redd" 50000 14 0 "myaccount" "legacy" "My Label"

bidonnamespacesauction

Places a bid on a namespace auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. bid_amount (numeric, required): The bid amount in RDD
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "bid_id": "bid_identifier_hex",
  "auction_id": "auction_identifier_hex",
  "bid_amount": amount,
  "deposit_amount": amount,
  "bid_time": timestamp,
  "bidder_address": "bidder_address"
}

Example:

reddcoin-cli bidonnamespacesauction "abcd1234" 100000
reddcoin-cli bidonnamespacesauction "abcd1234" 100000 "myaccount" "legacy" "My Label"

finalizenamespacesauction

Finalizes a namespace auction.

Parameters:

  1. auction_id (string, required): The auction identifier

Result:

{
  "auction_id": "auction_identifier_hex",
  "namespace_id": "namespace_identifier",
  "winner": "winner_address",
  "final_price": amount,
  "state": 3
}

Example:

reddcoin-cli finalizenamespacesauction "abcd1234"

cancelnamespacesauction

Cancels a namespace auction. Only the creator can cancel an auction, and only if there are no bids.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. account (string, optional): The account to use for HD wallets
  3. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  4. label (string, optional): A label for the address (HD wallet)

Result:

{
  "auction_id": "auction_identifier_hex",
  "namespace_id": "namespace_identifier",
  "state": 4
}

Example:

reddcoin-cli cancelnamespacesauction "abcd1234"
reddcoin-cli cancelnamespacesauction "abcd1234" "myaccount" "legacy" "My Label"

getnamespaceauctionlist / getnamespacesauctions

Lists all namespace auctions in the system.

Parameters:

  1. active_only (boolean, optional, default=false): If true, only show active auctions

Result:

[
  {
    "auction_id": "auction_identifier_hex",
    "namespace_id": "namespace_identifier",
    "creator": "creator_address",
    "start_time": timestamp,
    "end_time": timestamp,
    "reserve_price": amount,
    "current_bid": amount,
    "current_bidder": "bidder_address",
    "state": n,
    "type": n,
    "time_remaining": seconds
  },
  ...
]

Example:

reddcoin-cli getnamespaceauctionlist
reddcoin-cli getnamespaceauctionlist true
reddcoin-cli getnamespacesauctions
reddcoin-cli getnamespacesauctions true

getnamespaceauctioninfo

Gets detailed information about a specific namespace auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. verbose (boolean, optional, default=false): If true, include bid history

Result:

{
  "auction_id": "auction_identifier_hex",
  "namespace_id": "namespace_identifier",
  "creator": "creator_address",
  "start_time": timestamp,
  "end_time": timestamp,
  "reserve_price": amount,
  "current_bid": amount,
  "current_bidder": "bidder_address",
  "deposit_amount": amount,
  "state": n,
  "type": n,
  "time_remaining": seconds,
  "bids": [
    {
      "bid_id": "bid_identifier_hex",
      "bidder": "bidder_address",
      "amount": amount,
      "time": timestamp,
      "is_winner": true|false
    },
    ...
  ]
}

Example:

reddcoin-cli getnamespaceauctioninfo "abcd1234"
reddcoin-cli getnamespaceauctioninfo "abcd1234" true

getnamespacesauctionbids

Gets all bids for a specific namespace auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. sort_by (string, optional, default="time"): Sort order: 'time', 'amount'
  3. sort_dir (string, optional, default="desc"): Sort direction: 'desc', 'asc'

Result:

{
  "auction_id": "auction_identifier_hex",
  "namespace_id": "namespace_identifier",
  "total_bids": n,
  "highest_bid": amount,
  "bids": [
    {
      "bid_id": "bid_identifier_hex",
      "bidder": "bidder_address",
      "amount": amount,
      "deposit": amount,
      "time": timestamp,
      "is_winner": true|false,
      "refunded": true|false
    },
    ...
  ]
}

Example:

reddcoin-cli getnamespacesauctionbids "abcd1234"
reddcoin-cli getnamespacesauctionbids "abcd1234" "amount" "desc"

Namespace Management Commands

configurenamespaces

Updates configuration parameters for a namespace. Only the namespace owner can perform this operation.

Parameters:

  1. namespaceid (string, required): The namespace identifier
  2. config (object, required): Configuration parameters
    • allow_numbers (boolean, optional): Whether numbers are allowed in user IDs
    • allow_hyphens (boolean, optional): Whether hyphens are allowed in user IDs
    • allow_underscores (boolean, optional): Whether underscores are allowed in user IDs
    • min_length (numeric, optional): Minimum user ID length (1-10)
    • max_length (numeric, optional): Maximum user ID length (5-64)
    • renewal_period (numeric, optional): Days until renewal required (180-730)
    • grace_period (numeric, optional): Days in grace period (14-60)
    • namespace_revenue_pct (numeric, optional): % of auctions going to namespace owner (5-10)
    • burn_pct (numeric, optional): % of auctions being burned (50-80)
    • node_pct (numeric, optional): % of auctions going to node operators (5-25)
    • dev_pct (numeric, optional): % of auctions going to development fund (5-15)
    • min_auction_duration (numeric, optional): Minimum auction duration in days (1-7)
    • max_auction_duration (numeric, optional): Maximum auction duration in days (3-14)
    • min_bid_increment (numeric, optional): Minimum bid increment percentage (1.0-10.0)
  3. pricing_tiers (array, optional): Pricing tiers for different name lengths
    • min_length (numeric, required): Minimum length for this tier
    • min_price (numeric, required): Minimum price for names in this tier in RDD
  4. account (string, optional): The account to use for HD wallets
  5. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  6. label (string, optional): A label for the address (HD wallet)

Result:

{
  "id": "namespace_identifier",
  "owner": "owner_address",
  "allow_numbers": true|false,
  "allow_hyphens": true|false,
  "allow_underscores": true|false,
  "min_length": n,
  "max_length": n,
  "renewal_period": n,
  "grace_period": n,
  "namespace_revenue_pct": n,
  "burn_pct": n,
  "node_pct": n,
  "dev_pct": n,
  "min_auction_duration": n,
  "max_auction_duration": n,
  "min_bid_increment": n,
  "last_updated": timestamp,
  "expiration": timestamp,
  "pricing_tiers": [
    {
      "min_length": n,
      "min_price": amount
    },
    ...
  ]
}

Example:

reddcoin-cli configurenamespaces "redd" '{"allow_numbers":true,"min_length":3,"max_length":32}'
reddcoin-cli configurenamespaces "redd" '{"min_bid_increment":5.0}' '[{"min_length":1,"min_price":100000},{"min_length":3,"min_price":10000}]'

renewnamespace

Renews an existing namespace to extend its expiration period. Only the namespace owner can renew.

Parameters:

  1. namespaceid (string, required): The namespace identifier
  2. account (string, optional): The account to use for HD wallets
  3. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  4. label (string, optional): A label for the address (HD wallet)

Result:

{
  "id": "namespace_identifier",
  "owner": "owner_address",
  "previous_expiration": timestamp,
  "new_expiration": timestamp,
  "renewal_fee": amount
}

Example:

reddcoin-cli renewnamespace "redd"
reddcoin-cli renewnamespace "redd" "myaccount" "legacy" "My Label"

transfernamespace

Transfers ownership of a namespace to another address.

Parameters:

  1. namespaceid (string, required): The namespace identifier
  2. toaddress (string, required): The destination address
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "id": "namespace_identifier",
  "previous_owner": "previous_owner_address",
  "new_owner": "new_owner_address",
  "transfer_time": timestamp
}

Example:

reddcoin-cli transfernamespace "redd" "rx1qw9lfdjhn37..."
reddcoin-cli transfernamespace "redd" "rx1qw9lfdjhn37..." "myaccount" "legacy" "My Label"

User ID Commands

These commands manage the user IDs within namespaces.

User ID Information Commands

getuseridlist

Lists user IDs in a specific namespace.

Parameters:

  1. namespaceid (string, required): The namespace identifier

Result:

[
  {
    "name": "user_id_name",
    "namespace_id": "namespace_identifier",
    "owner": "owner_address",
    "registration_time": timestamp,
    "expiration_time": timestamp,
    "last_transaction": timestamp,
    "transaction_count": n
  },
  ...
]

Example:

reddcoin-cli getuseridlist "redd"

getuseridinfo

Gets detailed information about a specific user ID.

Parameters:

  1. name (string, required): The user ID name
  2. namespaceid (string, required): The namespace identifier

Result:

{
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "owner": "owner_address",
  "registration_time": timestamp,
  "expiration_time": timestamp,
  "last_transaction": timestamp,
  "transaction_count": n
}

Example:

reddcoin-cli getuseridinfo "alice" "redd"

User ID Auction Commands

createuseridauction

Creates a user ID auction within a namespace.

Parameters:

  1. name (string, required): The user ID name
  2. namespaceid (string, required): The namespace identifier
  3. reserve_price (numeric, required): The minimum bid amount in RDD
  4. duration_days (numeric, required): The auction duration in days
  5. auction_type (numeric, optional): The auction type (0=standard, 1=premium)
  6. account (string, optional): The account to use for HD wallets
  7. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  8. label (string, optional): A label for the address (HD wallet)

Result:

{
  "auction_id": "auction_identifier_hex",
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "start_time": timestamp,
  "end_time": timestamp,
  "reserve_price": amount,
  "auction_type": n,
  "creator_address": "creator_address"
}

Example:

reddcoin-cli createuseridauction "alice" "redd" 5000 7
reddcoin-cli createuseridauction "alice" "redd" 5000 7 0 "myaccount" "legacy" "My Label"

bidonuseridauction

Places a bid on a user ID auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. bid_amount (numeric, required): The bid amount in RDD
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "bid_id": "bid_identifier_hex",
  "auction_id": "auction_identifier_hex",
  "bid_amount": amount,
  "deposit_amount": amount,
  "bid_time": timestamp,
  "bidder_address": "bidder_address"
}

Example:

reddcoin-cli bidonuseridauction "abcd1234" 10000
reddcoin-cli bidonuseridauction "abcd1234" 10000 "myaccount" "legacy" "My Label"

finalizeuseridauction

Finalizes a user ID auction.

Parameters:

  1. auction_id (string, required): The auction identifier

Result:

{
  "auction_id": "auction_identifier_hex",
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "winner": "winner_address",
  "final_price": amount,
  "state": 3
}

Example:

reddcoin-cli finalizeuseridauction "abcd1234"

canceluseridauction

Cancels a user ID auction. Only the creator can cancel an auction, and only if there are no bids.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. account (string, optional): The account to use for HD wallets
  3. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  4. label (string, optional): A label for the address (HD wallet)

Result:

{
  "auction_id": "auction_identifier_hex",
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "state": 4
}

Example:

reddcoin-cli canceluseridauction "abcd1234"
reddcoin-cli canceluseridauction "abcd1234" "myaccount" "legacy" "My Label"

getuserauctionlist / getuseridauctions

Lists all user ID auctions in the system.

Parameters:

  1. namespaceid (string, optional): Filter by namespace ID
  2. active_only (boolean, optional, default=false): If true, only show active auctions

Result:

[
  {
    "auction_id": "auction_identifier_hex",
    "name": "user_id_name",
    "namespace_id": "namespace_identifier",
    "creator": "creator_address",
    "start_time": timestamp,
    "end_time": timestamp,
    "reserve_price": amount,
    "current_bid": amount,
    "current_bidder": "bidder_address",
    "state": n,
    "type": n,
    "time_remaining": seconds
  },
  ...
]

Example:

reddcoin-cli getuserauctionlist
reddcoin-cli getuserauctionlist "redd"
reddcoin-cli getuserauctionlist "redd" true
reddcoin-cli getuseridauctions
reddcoin-cli getuseridauctions "redd"
reddcoin-cli getuseridauctions "redd" true

getuserauctioninfo

Gets detailed information about a specific user ID auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. verbose (boolean, optional, default=false): If true, include bid history

Result:

{
  "auction_id": "auction_identifier_hex",
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "creator": "creator_address",
  "start_time": timestamp,
  "end_time": timestamp,
  "reserve_price": amount,
  "current_bid": amount,
  "current_bidder": "bidder_address",
  "deposit_amount": amount,
  "state": n,
  "type": n,
  "time_remaining": seconds,
  "namespace_info": {
    "id": "namespace_identifier",
    "owner": "owner_address",
    "min_length": n,
    "max_length": n,
    "renewal_period": n,
    "grace_period": n
  },
  "bids": [
    {
      "bid_id": "bid_identifier_hex",
      "bidder": "bidder_address",
      "amount": amount,
      "time": timestamp,
      "is_winner": true|false
    },
    ...
  ]
}

Example:

reddcoin-cli getuserauctioninfo "abcd1234"
reddcoin-cli getuserauctioninfo "abcd1234" true

getuseridauctionbids

Gets all bids for a specific user ID auction.

Parameters:

  1. auction_id (string, required): The auction identifier
  2. sort_by (string, optional, default="time"): Sort order: 'time', 'amount'
  3. sort_dir (string, optional, default="desc"): Sort direction: 'desc', 'asc'

Result:

{
  "auction_id": "auction_identifier_hex",
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "total_bids": n,
  "highest_bid": amount,
  "bids": [
    {
      "bid_id": "bid_identifier_hex",
      "bidder": "bidder_address",
      "amount": amount,
      "deposit": amount,
      "time": timestamp,
      "is_winner": true|false,
      "refunded": true|false,
      "bidder_reddid": "bidder_reddid"
    },
    ...
  ]
}

Example:

reddcoin-cli getuseridauctionbids "abcd1234"
reddcoin-cli getuseridauctionbids "abcd1234" "amount" "desc"

User ID Management Commands

renewuserid

Renews a user ID.

Parameters:

  1. name (string, required): The user ID name
  2. namespaceid (string, required): The namespace identifier
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "expiration_time": timestamp,
  "renewal_fee": amount
}

Example:

reddcoin-cli renewuserid "alice" "redd"
reddcoin-cli renewuserid "alice" "redd" "myaccount" "legacy" "My Label"

transferuserid

Transfers a user ID to another address.

Parameters:

  1. name (string, required): The user ID name
  2. namespaceid (string, required): The namespace identifier
  3. toaddress (string, required): The destination address
  4. account (string, optional): The account to use for HD wallets
  5. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  6. label (string, optional): A label for the address (HD wallet)

Result:

{
  "name": "user_id_name",
  "namespace_id": "namespace_identifier",
  "previous_owner": "previous_owner_address",
  "new_owner": "new_owner_address"
}

Example:

reddcoin-cli transferuserid "alice" "redd" "address"
reddcoin-cli transferuserid "alice" "redd" "address" "myaccount" "legacy" "My Label"

Profile Commands

These commands manage ReddID profiles and social connections.

Connection Commands

getuserconnections

Gets all social connections for a specific ReddID.

Parameters:

  1. reddid (string, required): The ReddID to get connections for
  2. connection_type (numeric, optional): Filter by connection type (0=follow, 1=friend, 2=endorse, 3=block)
  3. direction (string, optional, default="outgoing"): Connection direction to show: 'outgoing', 'incoming', or 'both'

Result:

{
  "reddid": "reddid",
  "outgoing_connections": [
    {
      "to_reddid": "target_reddid",
      "connection_type": n,
      "type_name": "connection_type_string",
      "creation_time": timestamp,
      "last_interaction": timestamp,
      "visibility": n,
      "metadata": "additional_metadata"
    },
    ...
  ],
  "incoming_connections": [
    {
      "from_reddid": "source_reddid",
      "connection_type": n,
      "type_name": "connection_type_string",
      "creation_time": timestamp,
      "last_interaction": timestamp,
      "visibility": n
    },
    ...
  ]
}

Example:

reddcoin-cli getuserconnections "alice"
reddcoin-cli getuserconnections "alice" 1
reddcoin-cli getuserconnections "alice" null "both"

createuserconnection

Creates a new social connection between two users.

Parameters:

  1. from_reddid (string, required): The source ReddID
  2. to_reddid (string, required): The target ReddID
  3. connection_type (numeric, required): Connection type (0=follow, 1=friend, 2=endorse, 3=block)
  4. visibility (numeric, optional, default=0): Privacy setting (0=public, 1=friends, 2=private)
  5. metadata (string, optional): Additional connection metadata
  6. account (string, optional): The account to use for HD wallets
  7. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  8. label (string, optional): A label for the address (HD wallet)

Result:

{
  "from_reddid": "source_reddid",
  "to_reddid": "target_reddid",
  "connection_type": n,
  "type_name": "connection_type_string",
  "creation_time": timestamp,
  "visibility": n,
  "metadata": "additional_metadata",
  "owner_address": "owner_address"
}

Example:

reddcoin-cli createuserconnection "alice" "bob" 0
reddcoin-cli createuserconnection "alice" "bob" 1 0 "Friends since school"

updateuserconnection

Updates an existing social connection between two users.

Parameters:

  1. from_reddid (string, required): The source ReddID
  2. to_reddid (string, required): The target ReddID
  3. connection_type (numeric, required): New connection type (0=follow, 1=friend, 2=endorse, 3=block)
  4. visibility (numeric, optional): New privacy setting (0=public, 1=friends, 2=private)
  5. metadata (string, optional): New additional connection metadata
  6. account (string, optional): The account to use for HD wallets
  7. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  8. label (string, optional): A label for the address (HD wallet)

Result:

{
  "from_reddid": "source_reddid",
  "to_reddid": "target_reddid",
  "connection_type": n,
  "type_name": "connection_type_string",
  "creation_time": timestamp,
  "last_interaction": timestamp,
  "visibility": n,
  "metadata": "additional_metadata",
  "owner_address": "owner_address"
}

Example:

reddcoin-cli updateuserconnection "alice" "bob" 1
reddcoin-cli updateuserconnection "alice" "bob" 1 0 "Close friends"

removeuserconnection

Removes an existing social connection between two users.

Parameters:

  1. from_reddid (string, required): The source ReddID
  2. to_reddid (string, required): The target ReddID
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "from_reddid": "source_reddid",
  "to_reddid": "target_reddid",
  "removed": true,
  "owner_address": "owner_address"
}

Example:

reddcoin-cli removeuserconnection "alice" "bob"
reddcoin-cli removeuserconnection "alice" "bob" "myaccount" "legacy" "My Label"

Reputation Commands

These commands manage ReddID reputation data.

getuserreputation

Gets the reputation information for a specific ReddID user.

Parameters:

  1. reddid (string, required): The ReddID to get reputation for
  2. detailed (boolean, optional, default=false): If true, include detailed breakdown of reputation components

Result:

{
  "reddid": "reddid",
  "overall_score": n,
  "last_calculated": timestamp,
  "longevity_score": n,
  "transaction_score": n,
  "engagement_score": n,
  "verification_score": n,
  "auction_score": n,
  "owner": "owner_address",
  "profile_summary": {
    "display_name": "display_name",
    "verification_status": n,
    "creation_time": timestamp,
    "active": true|false
  }
}

Example:

reddcoin-cli getuserreputation "alice"
reddcoin-cli getuserreputation "alice" true

updateuserreputation

Updates reputation information for a user. Only authorized nodes can update reputation directly.

Parameters:

  1. reddid (string, required): The ReddID to update reputation for
  2. reputation_data (object, required): Reputation data to update
    • overall_score (numeric, optional): Overall reputation score (0-100)
    • longevity_score (numeric, optional): Score component for account age (0-100)
    • transaction_score (numeric, optional): Score component for transaction history (0-100)
    • engagement_score (numeric, optional): Score component for community engagement (0-100)
    • verification_score (numeric, optional): Score component for verification depth (0-100)
    • auction_score (numeric, optional): Score component for auction behavior (0-100)
  3. auth_address (string, optional): Address of the authorized reputation calculator
  4. account (string, optional): The account to use for HD wallets
  5. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  6. label (string, optional): A label for the address (HD wallet)

Result:

{
  "reddid": "reddid",
  "overall_score": n,
  "previous_score": n,
  "last_calculated": timestamp,
  "auth_address": "auth_address",
  "updated": true
}

Example:

reddcoin-cli updateuserreputation "alice" '{"overall_score":75.5,"engagement_score":80.0}'
reddcoin-cli updateuserreputation "alice" '{"overall_score":75.5,"engagement_score":80.0}' "rX1qw9lfdjhn37..."

calculateuserreputation

Calculates or recalculates reputation for a user based on their activity and profile.

Parameters:

  1. reddid (string, required): The ReddID to calculate reputation for
  2. force (boolean, optional, default=false): Force recalculation even if recently updated
  3. account (string, optional): The account to use for HD wallets
  4. address_type (string, optional): The address type to use (legacy, p2sh-segwit, bech32)
  5. label (string, optional): A label for the address (HD wallet)

Result:

{
  "reddid": "reddid",
  "overall_score": n,
  "previous_score": n,
  "longevity_score": n,
  "transaction_score": n,
  "engagement_score": n,
  "verification_score": n,
  "auction_score": n,
  "last_calculated": timestamp,
  "calculator_address": "calculator_address",
  "recalculated": true|false
}

Example:

reddcoin-cli calculateuserreputation "alice"
reddcoin-cli calculateuserreputation "alice" true

getuserreputationhistory

Gets reputation history for a specific ReddID.

Parameters:

  1. reddid (string, required): The ReddID to get reputation history for
  2. count (numeric, optional, default=10): Number of historical entries to retrieve
  3. start_time (numeric, optional, default=current time): Start time as Unix timestamp

Result:

{
  "reddid": "reddid",
  "current_score": n,
  "history": [
    {
      "timestamp": timestamp,
      "overall_score": n,
      "longevity_score": n,
      "transaction_score": n,
      "engagement_score": n,
      "verification_score": n,
      "auction_score": n,
      "calculator_signatures": "signature_count"
    },
    ...
  ]
}

Example:

reddcoin-cli getuserreputationhistory "alice"
reddcoin-cli getuserreputationhistory "alice" 20
reddcoin-cli getuserreputationhistory "alice" 20 1703721600

Command Relationships

The ReddID RPC commands are organized in a hierarchical structure that mirrors the design of the system:

  1. Namespace Operations: Create and configure the foundation
  2. User ID Operations: Manage identifiers within namespaces
  3. Profile/ReddID Operations: Handle cross-namespace identity and social features

Dependencies

  • User IDs cannot be created in a namespace until that namespace exists
  • ReddID social connections require both source and target ReddIDs to exist
  • Configuration operations require ownership of the resources being configured
  • Auction finalization requires the auction to have ended

Best Practices

Auction Workflow

  1. Create an auction using the appropriate command
  2. Place bids using the bid commands
  3. Monitor auction status during the auction period
  4. Finalize the auction after it has ended
  5. For the winner, manage the acquired resource

Performance Considerations

  • Namespace and User ID queries are generally lightweight
  • Reputation calculations can be more resource-intensive
  • For high-volume operations, batch requests when possible
  • Cache results when appropriate to reduce load

Security Guidelines

  1. Always verify ownership before performing management operations
  2. Use secure wallet practices when signing transactions
  3. For management interfaces, implement proper permission controls
  4. Monitor auction activity for patterns of abuse

Integration Patterns

For applications integrating with the ReddID system:

  1. Identity Verification: Use ReddID reputation as a trust metric
  2. User Authentication: Build login systems using ReddID ownership verification
  3. Social Applications: Leverage the social graph features for friend discovery
  4. Marketplace Applications: Use the auction system for transparent price discovery
⚠️ **GitHub.com Fallback** ⚠️