syntax = "proto3";
package cosmos.nft.v1beta1;

option go_package = "cosmossdk.io/x/nft";

import "cosmos_proto/cosmos.proto";
import "cosmos/msg/v1/msg.proto";

// Msg defines the nft Msg service.
service Msg {
  option (cosmos.msg.v1.service) = true;

  // Send defines a method to send a nft from one account to another account.
  rpc Send(MsgSend) returns (MsgSendResponse);
}

// MsgSend represents a message to send a nft from one account to another account.
message MsgSend {
  option (cosmos.msg.v1.signer) = "sender";

  // class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721
  string class_id = 1;

  // id defines the unique identification of nft
  string id = 2;

  // sender is the address of the owner of nft
  string sender = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];

  // receiver is the receiver address of nft
  string receiver = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}
// MsgSendResponse defines the Msg/Send response type.
message MsgSendResponse {}