# Taiga's latest execution model
## Questions
1. > "For "ordinary" tokens, there is an understanding that **spent notes "produce" the state (value) that is "consumed" by creating notes**."
Although I came to understand the idea later with the example given, it is counterintuitive for me. The reason is that, in a simple instance of a UTXO model like ZCash, if Bob wants to receive 3 NAM from Alice, he creates a commitment using Alice's public key. Then Alice consumes that note by publishing its nullifier with her private key. So in my mental model, creating notes comes always before consuming/spending (for me they are indistinguishable) notes. Is my understading correct?
In the example given for bartering:
> Let's try to implement bartering. Alice has 1 of token A and wants 1 of token B; Bob has 1 of token B and wants 1 of token C. Charlie has 1 of token C and wants 1 of token A.
> Alice constructs a partial tx which looks like:
> "Alice spends her note of 1 token A, Alice creates a note sending herself 1 of token B"
> and Bob/Charlie implement similar. Then the 3 partial tx will balance and nothing more is needed.
- "Alice spends her note of 1 token A": My understanding is that for Alice to spend her note of 1 token A, someone needs to have a note of 1 token A created in the first place. Otherwise, how does this look implementation wise?
- "Alice creates a note sending herself 1 of token B": This is Alice using an application VP that says "I (owner) spend X of token Y to Z", where X, Y and Z are known inputs, but the owner is not known.
2. > The sum of all value commitments in all partial transactions must open to 0
I assume this constraint can be relaxed, parameterised or modified depending of which application is used. The proposal is using Token VP instead of Application VP, the latter being more general. Is this a correct assumption?
3. > Let's do a more complex intent. For this purpose, we will have a new token type, "intent token", whose VP allows creating arbitrary intent "notes" (of either positive or negative value) but such notes can never be spent. Alice wants a blue dolphin NFT and is willing to barter either 1 of token A or 2 of token B for it. She creates an intent token VP which allows creating an intent token of value -1 if and only if the partial tx creates notes with a blue dolphin NFT AND (1 token of A OR 2 token of B) owned by Alice's address. Then Alice can create a partial tx spending 1 of A, 2 of B, and 1 of the "intent token". This partial tx will balance if and only if another partial tx fulfulls the intent by sending Alice a blue dolphin NFT and refund the excess A or B tokens.
- When we say "She **creates an intent token VP**", do we mean "She **creates a note whose token is the intent token VP**"? I assume the value doesn't matter, so let's say it's 0, i.e.
```
Intent_Note { owner: Alice, token: intent_token, value: 0, ...}
```
The contents of the intent token VP would look like
```
if (partial_tx_exists(tx, dolphin_nft, (one_A, two_B))) {
create_intent_token(Alice, intent_token, -1)
}
```
where the first argument of `partial_tx_exists`, `tx` is the pointer to an existing (partial) transaction, the second argument is the "has" (a dolphin NFT in this case) and the third argument is the "want" (e.g. one of the two tokens). I'm still confused by the intent token VP and intent token.
- > She creates an intent token VP which allows creating an intent token of value -1 **if and only if the partial tx creates notes with a blue dolphin NFT AND (1 token of A OR 2 token of B) owned by Alice's address**. *THEN* Alice can create a partial tx spending 1 of A, 2 of B, and 1 of the "intent token".
How can an existing partial transaction specify that (1 token of A OR 2 token of B) are owned by Alice's address before Alice spends them? I assumed that intents don't specify necessarily those details. Am I understanding this part correctly?