(define-map listings uint {seller: principal, nft-contract: principal, token-id: uint, price: uint, active: bool})
(define-data-var listing-count uint u0)
(define-read-only (get-listing (id uint)) (map-get? listings id))
(define-public (create-listing (nft-contract principal) (token-id uint) (price uint))
(let ((id (var-get listing-count)))
(map-set listings id {seller: tx-sender, nft-contract: nft-contract, token-id: token-id, price: price, active: true})
(var-set listing-count (+ id u1))
(ok id)))