# Transfer tickets from and to implicit accounts
---
# Implicit <-> Implicit
- Intuitively, to generate this operation from `tezos-client`
```
tezos-client transfer 0 from alice to bob \
--entrypoint 'receive_tickets' \
--burn-cap 0.1 \
--arg 'Pair string
(Pair "0x...." (Pair "I am a ticket" 4))'
```
---
- Note that `Pair "0x...." (Pair "I am a ticket" 4)` is of type `ticket string`, because it is written as `Pair string ...` saying that the ticket content is of type `string`
---
# Originated -> Implicit
- Michelson
```
CONTRACT %receive_tickets (ticket string) ;
IF_NONE
{
PUSH string "should not happen" ;
FAILWITH
}
{
PUSH nat 4;
PUSH string "I am a ticket";
TICKET;
SWAP;
TRANSFER_TOKEN ;
...
}
```
- We enforce that the parameter is always `ticket 'a` for some `'a`
- `TRANSFER_TOKEN` generates a `Transaction_to_implicit` internal operation
---
# Implicit -> Originated
- It is the same as a contract call
```
tezos-client transfer 0 from alice to contract \
--entrypoint 'submit_my_ticket_and_do_whatever_you_want' \
--burn-cap 0.1 \
--arg 'Pair
(Pair "0x...." (Pair "I am a ticket" 4))
(Pair "0x...." (Pair (Pair "0xdeadbeef" Unit) 4))'
```
---
# Originated -> Originated
- It stays the same
{"metaMigratedAt":"2023-06-17T06:30:58.340Z","metaMigratedFrom":"YAML","title":"Transfer tickets from and to implicit accounts","breaks":true,"contributors":"[{\"id\":\"09ec042c-67c9-4202-a7df-0f0c8410e4fa\",\"add\":1600,\"del\":262}]"}