Kromer

"Do you want to be a [BIG SHOT]?"

(Logo Pending)

Kromer is a toy economy server for Minecraft designed to be the spiritual successor to Krist, with some changes to it's philosophy as well as some new features.

Flagship Changes and Features

  • Krist API Compatibility: Kromer is compatible with the Krist API, which means that it can be used with existing Krist plugins and services. This allows for a smooth transition for players who are familiar with Krist.
  • No Proof of Work: Kromer does not use Proof of Work, which means it is more environmentally friendly and does not require expensive hardware to run.
  • No Cross-Server: Kromer is not designed to be cross-server, mostly due to the impossibility to earn money on a server that it is not fine-tuned for.
  • Playtime Based: Kromer uses a playtime based system to determine how much money you can earn, which means that you can earn money by being active on the server.
  • Player Wallets and Shared Wallets: Kromer allocates a player wallet to each player, which is used to store their money. Players can also create shared wallets with other players, which can be used to pool money together for larger purchases or for group projects. Shared wallets are taxed.
  • Subscriptions: Kromer allows players to subscribe to services, which allows them to earn money from the subscriptions. This is a way for players to support each other and earn money at the same time.

Wallets

Kromer uses a wallet system to manage player money. Each player has a personal wallet, which is used to store their money. Players can also create shared wallets with other players, which can be used to pool money together for larger purchases or for group projects. Shared wallets are taxed.

Playtime Earning

Kromer uses a playtime based system to determine how much money you can earn, the

Subscriptions and Taxes

Kromer allows players to subscribe to services, which allows them to earn money from the subscriptions.
Taxes are applied to shared wallets to prevent abuse and to encourage players to use their personal wallets for personal transactions. Under the hood, taxes are considered forced subscriptions that are paid to the server.

Subscription Flow

  1. A player creates a subscription and sets the price as well as recurring period and a suitable description(Max. 255 characters), the period can be set to any time period, but the minimum is 1 minute. A subscription is represented by an ID that is generated by the server.
  2. The subscription owner can then set up websocket listeners for subscriptions, which can be used to trigger actions when a player subscribes or unsubscribes from the subscription.
  3. The player can then share the subscription ID with other players, who can then subscribe to the subscription.
  4. When a player subscribes to a subscription, they are charged the price of the subscription and the money is added to the subscription owner's wallet.

Subscriptions REST API

Create Subscription

/subscriptions

  • Method: POST
  • Request Body:
Field Type Description
name string The receiver's name (or metaname)
price number The price of the subscription.
period number The period of the subscription in minutes. (Minimum is 1)
description string The description of the subscription. (Max. 255 Chars)
  • Success Response:
  • Status Code: 200 OK
  • Response Body:
Field Type Description
id number The ID of the subscription.

Delete Subscription

/subscriptions/:id

  • Method: DELETE
  • Query Parameters:
Field Type Description
id number The ID of the subscription to delete
privatekey string The private key of the name owner

Get Subscription

/subscriptions/:id

  • Method: GET
  • Query Parameters:
Field Type Description
id number The ID of the subscription to get
address (optional) string The address of the subscriber/owner
  • Success Response:
  • Status Code: 200 OK
  • Response Body:
Field Type Description
subscription object
- description string The description of the subscription.
- price number The price of the subscription.
- period number The period of the subscription in minutes.
- name string The name (or metaname) that owns the subscription.
- subscribers number The number of subscribers to the subscription.
- subscribed (optional) boolean Whether the user is subscribed to the subscription.
- owns (optional) boolean Whether the user owns the name of the subscription.
- next_payment (optional) date The timestamp of the next payment. (Subscriber only)
- unsubscribable (optional) boolean Whether the subscriber can unsubscribe.

Subscribe to Subscription

/subscriptions/:id/subscribe

  • Method: POST
  • Request Body:
Field Type Description
privatekey string The private key of the paying address
  • Success Response:
  • Status Code: 200 OK
  • Response Body:
Field Type Description
next_payment date The timestamp of the next payment.

Unsubscribe from Subscription

/subscriptions/:id/unsubscribe

  • Method: POST
  • Request Body:
Field Type Description
privatekey string The private key of the paying address
  • Success Response:
  • Status Code: 200 OK

List Subscriptions

/subscriptions

  • Method: GET
  • Query Parameters:
Field Type Description
address (optional) string The address of the subscriber/owner, either this or name is required.
name (optional) string A name associated with subscriptions, this supercedes address parameter.
exclude_owned (optional) boolean Whether to exclude owned subscriptions. Default is false.
only_owned (optional) boolean Whether to only return owned subscriptions, supercedes excludeOwned. Default is false.
only_unsubscribable (optional) boolean Whether to show only unsubscribable subscriptions. Default is true.
limit (optional) number The maximum number of subscriptions to return. Default is 50.
offset (optional) number The offset to start from. Default is 0.
  • Success Response:
  • Status Code: 200 OK
  • Response Body:
Field Type Description
count number The count of results.
total number The total number of subscriptions available.
subscription object[]
- description string The description of the subscription.
- price number The price of the subscription.
- period number The period of the subscription in minutes.
- name string The name (or metaname) that owns the subscription.
- subscribers number The number of subscribers to the subscription.
- subscribed (optional) boolean Whether the user is subscribed to the subscription. (address only)
- owns (optional) boolean Whether the user owns the name of the subscription. (address only)
- next_payment (optional) date The timestamp of the next payment. (Subscriber only)
- unsubscribable (optional) boolean Whether the subscriber can unsubscribe.
Edit

Pub: 24 Jul 2025 15:32 UTC

Views: 43