Skip to main content

Documentation Index

Fetch the complete documentation index at: https://tech.ramses.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Transfer-restricted ERC20 governance token used by the Ramses voting system. The current implementation lives in XRam.sol and is controlled by AccessHub, Voter, and VoteModule.

Core Functions

convertEmissionsToken

function convertEmissionsToken(uint256 amount) external
Transfers amount of RAM from the caller, burns the configured slashing penalty, and mints amount of xRAM to the caller.

Parameters

NameTypeDescription
amountuint256Amount of RAM to convert

exit

function exit(uint256 amount) external returns (uint256 exitedAmount)
Burns xRAM and returns the post-penalty RAM amount to the caller. The contract applies the same slashing formula used on entry and caps the returned amount to the RAM balance currently residing in the xRAM contract.

Parameters

NameTypeDescription
amountuint256Amount of xRAM to burn

pause / unpause

function pause() external
function unpause() external
Governance-controlled circuit breakers for conversion, exit, and rebase-related flows.

setExemption / setExemptionTo

function setExemption(address[] calldata who, bool[] calldata exempt) external
function setExemptionTo(address[] calldata who, bool[] calldata exempt) external
Manages the transfer allowlists used by _update().

getBalanceResiding

function getBalanceResiding() external view returns (uint256)
Returns the amount of underlying RAM currently held by the xRAM contract.

Key Concepts

  • XRam is not a freely transferable ERC20. Transfers only succeed when the sender or receiver is exempt, or when the transfer involves recognized gauges or fee distributors.
  • convertEmissionsToken() mints xRAM 1:1 with the input amount, but it also burns at least 50% of the incoming RAM via SLASHING_PENALTY.
  • exit() burns xRAM and returns the post-penalty RAM amount, which is typically about half of the xRAM burned.
  • rebase() is still exposed for compatibility, but the current implementation notifies VoteModule with 0 rather than distributing a positive rebase amount.
  • Voting power comes from staking xRAM in VoteModule, not from simply holding xRAM in a wallet.