Skip to Content
ContractsSecurity

Security

Draft. Security model, permissions, and administrative controls.

Role Hierarchy

Akkadia uses a four-role model defined in the Admin contract:

RoleResponsibilitiesAssigned By
AdminFull control, role assignments, protocol settingsSelf (transfer only)
OperatorDay-to-day operations: ACR minting, chunk verifiers, world deletionAdmin
Fee CollectorReceives 5% of realm creation/expansion feesAdmin
ProtocolReceives 95% of realm creation/expansion feesAdmin

Permission Model

Contract-Level Permissions

Each contract enforces its own permission checks:

ContractAdminOperatorOwnerRole Holders
adminAll settings---
acrConfigMintTransfer own-
userAll users-Own profile-
chunkWorlds, roles, mastersVerifiersOwn chunksPer-chunk
personal_worldBiomes, rolesDeleteOwn realmsPer-realm
blockSystem blocks, config-Own blocks-

Realm Permission Checks

Primary Realm (Chunk) - Permission check order:

  1. Chunk owner
  2. Admin
  3. Realm master
  4. Role holders

Community Realm - Permission check order:

  1. Realm owner
  2. Role holders

Note: In Community Realms, admin is NOT in the permission check for actions like block:install. However, admin can:

  • Grant/revoke roles to any user
  • Configure permissions and roles globally
  • Delete worlds (emergency)

On-Chain Security

What the blockchain verifies:

Security AspectOn-Chain Verification
OwnershipNFT ownership (chunks), address ownership (realms)
PermissionsRole assignments, permission checks before actions
PaymentsFee distribution, mint prices, refunds
DeduplicationACR mint request IDs prevent double-minting
LimitsMax supply, role assignment limits (maxAssign)

Administrative Controls

Admin Capabilities

  • Transfer admin role
  • Assign Operator, Fee Collector, Protocol addresses
  • Create/update permissions and roles
  • Create system blocks
  • Grant realm masters
  • Configure protocol settings (BPS rates, limits)

Operator Capabilities

  • Mint ACR tokens (with request deduplication)
  • Set chunk verifiers
  • Delete community realms (emergency)

What Admin/Operator Cannot Do

  • Access user funds directly
  • Modify user-owned NFTs without consent
  • Bypass on-chain payment verification
  • Mint ACR without unique request ID

Event Logging

All significant actions emit on-chain events for auditability:

  • Role grants/revokes
  • Ownership transfers
  • Fee distributions
  • Configuration changes
  • Mint operations

Off-Chain Components

Some operations involve off-chain services:

ComponentSecurity Consideration
ACR mint queueDeduplication enforced on-chain via requestID
System block inventoryManaged off-chain, not tradeable
Activity trackingUsed for ACR earning criteria
Chunk verifiersHash for rendering data fetching

Emergency Response

Available Actions

  • Operator: Delete problematic community realms
  • Admin: Revoke roles, update permissions, reassign operators

Current Limitations

  • No global pause mechanism
  • No contract upgrade mechanism (immutable)
  • Role changes take effect immediately

Best Practices

For Players

  • Verify transaction details before signing
  • Understand role permissions before granting
  • Keep wallet credentials secure

For Realm Owners

  • Limit editor role grants to trusted users
  • Review role assignments periodically
  • Use maxAssign limits for sensitive roles

Status

This security model is in draft. Future updates may include:

  • Formal threat model
  • Audit reports
  • Operational runbooks
  • Emergency contact procedures
Last updated on
Docsv1.0.10